|
|
Список всех полей таблицы - Вывод в Immediate Window + Заготовка для RecordSet (DAO)
Выводит в Immediate Window (Ctrl + G) список полей указанной в аргументе таблицы, что очень полезно при написании процедур обработки записей
Если второй аргумент поставить = True (-1) - напечатает заготовку для работы DAO.RecordSet
Просто напечатайте в Immediate Window esTableFieldsPrint "ИМЯ_ТАБЛИЦЫ"
или:
esTableFieldsPrint "ИМЯ_ТАБЛИЦЫ", True
Public Sub esTableFieldsPrint(sTableName As String, Optional bForRST As Boolean = False)
Dim dbs As DAO.Database
Dim objField As DAO.Field
Dim sTab As String
Dim s As String
Dim iNo%
On Error GoTo esTableFieldsPrint_Err
Set dbs = CurrentDb
If bForRST = False Then
s = "Таблица: " & sTableName & " - содержит поля:" & vbCrLf
s = s & String(70, "-") & vbCrLf
For Each objField In dbs.TableDefs(sTableName).Fields
iNo = iNo + 1
s = s & Format(iNo, "000") & " : " & objField.Name & vbCrLf
Next
Else
s = String(70, "-") & vbCrLf
s = s & "Dim rst as DAO.RecordSet" & vbCrLf
s = s & "Dim sSQL as String" & vbCrLf
s = s & vbTab & "sSQL = ""SELECT * FROM " & sTableName & " WHERE " & dbs.TableDefs(sTableName).Fields(0).Name & " = 0""" & vbCrLf
s = s & vbTab & "Set rst = CurrentDb.OpenRecordset(sSQL, dbOpenDynaset)" & vbCrLf
s = s & vbTab & "
s = s & vbTab & "With rst" & vbCrLf
s = s & vbTab & vbTab & "
sTab = vbTab & vbTab & vbTab
For Each objField In dbs.TableDefs(sTableName).Fields
s = s & sTab & "
Next
s = s & vbTab & vbTab & "
s = s & vbTab & "End With" & vbCrLf
s = s & vbTab & vbCrLf
s = s & vbTab & "On Error Resume Next" & vbCrLf
s = s & vbTab & "rst.Close" & vbCrLf
s = s & vbTab & "Set rst = Nothing" & vbCrLf
End If
Debug.Print s
esTableFieldsPrint_Bye:
On Error Resume Next
dbs.Close
Exit Sub
esTableFieldsPrint_Err:
MsgBox "Error " & Err.Number & vbCrLf & Err.Description & vbCrLf & _
"in procedure esTableFieldsPrint", vbCritical, "Error!"
Resume esTableFieldsPrint_Bye
End Sub
|
|