Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как можно проверить на наличие поля в таблице из VBA?
 
 автор: lulukyan   (21.05.2011 в 11:35)   личное сообщение
 
 

Собственно сабж :-)

  Ответить  
 
 автор: Дядя Федор   (21.05.2011 в 13:39)   личное сообщение
 
 

Как-то так:

Public Function FieldsSearh(TblName As String, fldname As String) As Boolean
Dim rst As DAO.Recordset
Dim fld As Field
On Error GoTo ErrFs
Set rst = CurrentDb.OpenRecordset("SELECT * FROM " & TblName & ";")
For Each fld In rst.Fields
 If fld.Name = fldname Then
 FieldsSearh = True
 Set rst=Nothing
 Exit Function
 End If
Next
 FieldsSearh = False
 Set rst=Nothing
 Exit Function
ErrFs:
 MsgBox Err.Number & Err.Description, vbCritical, "Ошибка"
End Function

Public Sub tst()
Debug.Print FieldsSearh("Tbl1", "Id1")
End Sub

  Ответить  
 
 автор: lulukyan   (21.05.2011 в 21:46)   личное сообщение
 
 

Спасибо!
Правда я уже как то обошёл эту проблему. Просто странно, что нет встроенного метода(типа Exist) у коллекции Fields.

  Ответить  
 
 автор: АлексейЕ   (23.05.2011 в 09:34)   личное сообщение
 
 

Использовал скрытый объект WizHook в Access'е.
Function ColumnExists(strNameTable As String, strNameColumn As String) As Boolean
Dim strNameColumns  As String
  
    WizHook.Key = 51488399
    strNameColumns = WizHook.GetColumns(strNameTable)
    ColumnExists = (InStr(1, ";" & strNameColumns, ";" & strNameColumn & ";") > 0)
End Function

Также, данной функцией можно определить наличие поля в запросе

  Ответить  
 
 автор: Дядя Федор   (23.05.2011 в 11:02)   личное сообщение
 
 

WizHook - Точно!

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList