У меня такой вопрос:
Я создаю таблицы в msaccess и сразу же записываю в нее данные, выглядит это так:
Dim dbsNorthwind As Database
Dim tdfNew As TableDef
Dim prpLoop As Property
Set dbsNorthwind = OpenDatabase(App.Path & "\DataBaseName.mdb")
Set tdfNew = dbsNorthwind.CreateTableDef("TAbName")
With tdfNew
.Fields.Append .CreateField("TypeData", dbText)
For i = 0 To List1.ListCount - 1
.Fields.Append .CreateField("id" & i, dbText)
Next i
dbsNorthwind.Close
DoEvents
Set rs = cn.Execute("insert into " & "Tabel" & a + 1 & " ([TypeData]) values ('" & Text1.Text & "')")
А он пишет :"Run time error:'-2147217865(80040e37)' Неудается найти выходную таблицу 'TAbName'"
Короче, он записывает в таблицу, которая еще не успела создаться (я так понимаю). Как же проверять создалась ли таблица или нет?
Пробовал вставлять sleep - тут работает через раз. Вставлял кучу DoEvents, тоже не помогает, а On
Project>References "Microsoft DAO 3.6 Object Library"
Public Sub CreateDB(ByVal pDatabaseUNC As String, Table As String, Stolbec) '+
'Создаём базу с нуля
 im ws As Workspace
 im db As Database
On Error GoTo Routine_Error
' Создать базу данных с указанным именем
Set ws = DBEngine.Workspaces(0) 'Default Workspace
Set db = ws.CreateDatabase(pDatabaseUNC, dbLangGeneral)
' Добавить новую таблицу во вновь созданную базу
Call CreateTable(db, Table, Stolbec)
Routine_Error:
Set db = Nothing
Set ws = Nothing
If Err.Number <> 0 Then Err.Raise Err.Number, Err.Source, Err.Description
End Sub
Public Sub CreateTable(ByRef pDB As Database, ByVal pTableName As String, Stolbec) '+
 im tbl As TableDef
 im fld As Field
On Error GoTo Routine_Error
' Создаём таблицу с указанным именем в базе
Set tbl = pDB.CreateTableDef(pTableName)
With tbl
' Добавляем поля
For i% = LBound(Stolbec) To UBound(Stolbec)
Set fld = .CreateField(Stolbec(i, dbText, 10)
.Fields.Append fld
Next i%
End With
' Добавляем таблицу к базе данных
pDB.TableDefs.Append tbl
Routine_Error:
Set fld = Nothing
Set tbl = Nothing
If Err.Number <> 0 Then Err.Raise Err.Number, Err.Source, Err.Description
End Sub
'--------------------------------------------------------------------------------