Средства разработки приложений

         

Как из макроса Excel программно создать таблицу Access?


Q: Подскажите, пожалуйста, как из под Excel программно создать таблицу Access

A: Вот  фрагмент кода, который создаёт таблицу "BalanceShifr" базе  данных MS Access:

Нint: Не забудьте выставить в Excel ссылки на объекты DAO!
[VBA] Tools/References/Available References/ [x] MicroSoft DAO?.? Library ' Function CreateTable ' Create temporary table "BalanceShifr" into temporary database

Public Function CreateTable(ByVal dbTemp As Database) As Boolean

Dim tdfTemр As TableDef
Dim idx As Index
Dim fld As Field

On Error GoTo errhandle

  CreateTable = True
  '  CREATE TABLE "BalanceShifr"
  Set tdfTemp = dbTemp.CreateTableDef("BalanceShifr")
  Set fld = tdfTemp.CreateField("ConditionId", dbLong)
  fld.Required = True
  tdfTemp.Fields.Append fld
  Set fld = tdfTemp.CreateField("Account", dbText, 4)
tdfTemp.Fields.Append fld
  Set fld = tdfTemp.CreateField("SubAcc", dbText, 4)
  tdfTemp.Fields.Append fld
  Set fld = tdfTemp.CreateField("Shifr", dbLong)
  tdfTemp.Fields.Append fld
  Set fld = tdfTemp.CreateField("Date", dbDate)
fld.Required = True
  tdfTemp.Fields.Append fld
  Set fld = tdfTemp.CreateField("SaldoDeb", dbCurrency)
  tdfTemp.Fields.Append fld
  Set fld = tdfTemp.CreateField("SaldoKr", dbCurrency)
  tdfTemp.Fields.Append fld
  dbTemp.TableDefs.Append tdfTemp

  '  CREATE INDEX "BalanceShifr"
  Set tdfTemp = dbTemp.TableDefs("BalanceShifr")
  Set idx = tdfTemp.CreateIndex("ForeignKey")
  Set fld = idx.CreateField("ConditionId")
  idx.Fields.Append fld
  tdfTemp.Indexes.Append idx
  Exit Function

errHandle:
  MsgBox "Table creating error!", vbExclamation, "Error"
  CreateTable = False
End Function



Содержание раздела