2010 - [решено] Access. Выбор данных

Ответить
Аватара пользователя
ab.random

2010 - [решено] Access. Выбор данных

Сообщение ab.random »

Помогите, пожалуйста, выбрать данные из БД *.mdb. База очень большая, и изменять значения вручную просто бессмысленно.

Задача такая. В БД имеется большое количество таблиц, сделанных по одному шаблону. В частности, в каждой таблице имеется колонка с названием "ОУ". Требуется из всех таблиц вывести строки, у которых в столбце ОУ содержится число 21 (с любыми комбинациями остальных слов). В одной таблице может быть несколько строк, удовлетворяющих этому требованию. Затем, во всех выбранных строках надо увеличить значение столбца "стаж" на единицу. Так же желательно, чтобы в найденной строке отображалось название таблицы, из которой она взята.

Заранее спасибо.
Аватара пользователя
Iska

Re: 2010 - [решено] Access. Выбор данных

Сообщение Iska »

ab.random, примерно так:



Код:

Код: Выделить всё

Option Compare Database
Option Explicit
Sub ExecFromAllTables()
    Dim objTableDef As TableDef
    With CurrentDb
        For Each objTableDef In .TableDefs()
            If objTableDef.Properties.Item("Attributes") And dbSystemObject = dbSystemObject Then
            Else
                If FieldExist(objTableDef, "ОУ") And FieldExist(objTableDef, "стаж") Then
                    .Execute _
                        "UPDATE [" & objTableDef.Name & "] " & _
                        "SET [стаж] = [стаж] + 1 " & _
                        "WHERE [ОУ] LIKE '*21*'"
                    Debug.Print objTableDef.Name, vbTab, "обновлено: " & .RecordsAffected & " записей"
                End If
            End If
        Next
    End With
End Sub
Function FieldExist(objTableDef As TableDef, strFieldName As String)
    Dim objField As Field
    FieldExist = False
    For Each objField In objTableDef.Fields
        If objField.Name = strFieldName Then
            FieldExist = True
            Exit For
        End If
    Next
End Function
Аватара пользователя
ab.random

Re: 2010 - [решено] Access. Выбор данных

Сообщение ab.random »

Спасибо, конечно, но где это прописывать?

Я Access открыл второй или третий раз в жизни Изображение и рассчитывал на подсказку, как это сделать с помощью конструкторов и мастеров из стандартной панели инструментов, если это возможно
Аватара пользователя
ferget

Re: 2010 - [решено] Access. Выбор данных

Сообщение ferget »

ab.random, у меня нет Microsoft Access 2010. В 2003-ем это может выглядеть так:



* открыть базу данных;

* перейти на вкладку «Модули»;

* нажать кнопку «Создать»;

* выделить (если есть) текст нового модуля и заменить его на код из
2010 - [решено] Access. Выбор данных
;

* сменить, по потребности, имя модуля нужное и сохранить.



Вывод через «Debug.Print» заменить потребным выводом. Вызов процедуры также назначить, через что нужно.
Аватара пользователя
ab.random

Re: 2010 - [решено] Access. Выбор данных

Сообщение ab.random »

Всё, разобрался Изображение Всем откликнувшимся огромное спасибо!)
Ответить

Вернуться в «Microsoft Office (Word, Excel, Outlook и т.д.)»