Страница: 1 |
Вопрос: MS ACCESS... Очень нужно | Добавлено: 19.05.05 20:26 |
Автор вопроса: ![]() |
У меня такой вопрос:
Я создаю таблицы в 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 |
Ответы | Всего ответов: 1 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #1 | Добавлено: 19.05.05 21:25 |
Project>References "Microsoft DAO 3.6 Object Library"
Public Sub CreateDB(ByVal pDatabaseUNC As String, Table As String, Stolbec) '+ 'Создаём базу с нуля ![]() ![]() 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) '+ ![]() ![]() On Error GoTo Routine_Error ' Создаём таблицу с указанным именем в базе Set tbl = pDB.CreateTableDef(pTableName) With tbl ' Добавляем поля For i% = LBound(Stolbec) To UBound(Stolbec) Set fld = .CreateField(Stolbec(i ![]() .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 '-------------------------------------------------------------------------------- Вызывать вроде так Private Sub CreateNewDB_() '+ 'создаёт новую базу Dim Stolbec(2) Stolbec(0) = "Stolb1" Stolbec(1) = "Stolb2" Stolbec(2) = "Stolb3" Call CreateDB("C:\Base1.mdb", "new", Stolbec()) End Sub И нормально создаёт вроде... Посмотри код внимательно, мой и свой, может ты что-то пропустил |
Страница: 1 |
|