2013-03-21 2 views
1

У меня есть разделенная база данных. Экспериментируя с интерфейсом, я смог добавить поля в таблицу в связанном бэкэнде с помощью VBA, пока я не зашифровал бэкэнд паролем.Возможно ли изменить структуру зашифрованного бэкэнда Access?

Можно ли добавлять поля в таблицы в бэкэнд, используя VBA в интерфейсе БЕЗ расшифровки бэкэнда вручную?

Спасибо за любой ответ.

ответ

1

Должно быть. Попробуйте эти примечания:

Sub AlterDB() 
    Dim db As DAO.Database 
    Dim sDB As String 
    Dim tdf As TableDef 
    Dim fld As Field 

    ''Encrypted 
    sDB = "Z:\Docs\Test.enc" 

    ''http://msdn.microsoft.com/en-us/library/office/ff193474.aspx 
    ''Password is case sensitive 
    Set db = OpenDatabase(sDB, False, False, "MS Access;PWD=pW") 

    ''Option with tabledef 
    ''The table is currently closed 
    Set tdf = db.TableDefs("table1") 
    Set fld = tdf.CreateField("NewField", dbText, 20) 
    tdf.Fields.Append fld 

    ''Option with DDL 
    ssql = "ALTER TABLE table1 ADD COLUMN AnotherNew Int" 
    db.Execute ssql, dbFailOnError 

End Sub 

Sub ListFields() 
    sDB = "Z:\Docs\Test.enc" 
    Set db = OpenDatabase(sDB, False, False, "MS Access;PWD=FB") 

    Set tdf = db.TableDefs("table1") 
    For Each f In tdf.Fields 
     Debug.Print f.Name 
    Next 

End Sub 
+0

Конечно, это сработало. Мне не хватало части PWD. Еще раз спасибо @Remou. Я просто не понимаю, почему это не работает, когда я оставляю «False» из параметра «Параметры» в синтаксисе. – ome

+0

Я боюсь, что ложь - это причуда. Всюду еще вы можете уйти ни с чем, но, насколько я помню, здесь вы не можете. – Fionnuala

Смежные вопросы