-Поиск по дневнику

Поиск сообщений в rss_sql_ru_access_programming

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 16.03.2006
Записей:
Комментариев:
Написано: 4


VBA Как добавить программно таблицу и создать в ней поля в б/д Access ?

Четверг, 11 Февраля 2016 г. 14:18 + в цитатник
Private Sub Form_Load()
  Set BD = DAO.OpenDatabase("D:\Prohect\MySite.mdb")


        CmdCommand.CommandText = "SELECT * FROM " & List5.List(f)
        Set Rec = CmdCommand.Execute()
        
        Set tdfNew = BD.CreateTableDef(s)
        
        For f3 = 0 To Rec.Fields.Count - 1
          
          If Rec.Fields(f3).Type = 3 Or Rec.Fields(f3).Type = 19 Or Rec.Fields(f3).Type = 17 Then 'Long (Длинное целое) AUTO_INCREMENT
            Set fld = tdfNew.CreateField(Rec.Fields(f3).name, dbLong)
          ElseIf Rec.Fields(f3).Type = 203 Then 'Текст
            Set fld = tdfNew.CreateField(Rec.Fields(f3).name, dbMemo)
            'fld.size = Tbl.Fields(f3).size
          ElseIf Rec.Fields(f3).Type = 16 Or Rec.Fields(f3).Type = 2 Then
            Set fld = tdfNew.CreateField(Rec.Fields(f3).name, dbInteger)
          ElseIf Rec.Fields(f3).Type = 202 Or Rec.Fields(f3).Type = 130 Then 'CHAR
            Set fld = tdfNew.CreateField(Rec.Fields(f3).name, dbText)
'            fld.size = Tbl.Fields(f3).size
          
          ElseIf Rec.Fields(f3).Type = 11 Then
            Set fld = tdfNew.CreateField(Rec.Fields(f3).name, dbBoolean)
          
          ElseIf Rec.Fields(f3).Type = 4 Then
            Set fld = tdfNew.CreateField(Rec.Fields(f3).name, dbCurrency)
            
          ElseIf Rec.Fields(f3).Type = 5 Then
            Set fld = tdfNew.CreateField(Rec.Fields(f3).name, dbDouble)
          ElseIf Rec.Fields(f3).Type = 135 Or Rec.Fields(f3).Type = 133 Then 'Date
            Set fld = tdfNew.CreateField(Rec.Fields(f3).name, dbDate)
        
          Else
            Stop
            tdfNew.Fields.Append tdfNew.CreateField(Rec.Fields(f3).name, dbText)
          End If
          
          
          
          If Rec.Fields(f3).Properties("ISAUTOINCREMENT").value Then
            fld.Attributes = dbAutoIncrField
          End If
          
          tdfNew.Fields.Append fld
        Next


Вот такой пример повсюду. Каждая строка срабатывает без ошибок, но результата никакого. Как впустую.
Чуть переделал пример под себя для синхронизации. Уже интересуюсь SQL запросом, но еще надеюсь может быть есть объяснение по этому коду.

http://www.sql.ru/forum/1200067/vba-kak-dobavit-programmno-tablicu-i-sozdat-v-ney-polya-v-b-d-access


 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку