プロが教えるわが家の防犯対策術!

初めまして。
Access初心者でとても困っています。
Access2000で他の入力者が裏をいじれないようにShiftキーの設定をしていました。
ネットで教えて頂いた構文で動いていたのですが

Public Function ShiftkeyChange(st As Boolean)
Dim DB As Database
Dim PRO As Property
Dim BLN As Boolean

Set DB = CurrentDb
BLN = False
For Each PRO In DB.Properties
If PRO.Name = "AllowBypassKey" Then
PRO = st
BLN = True
Exit For
End If
Next PRO

If BLN = False Then
Set PRO = DB.CreateProperty("AllowBypassKey", dbBoolean, st)
DB.Properties.Append PRO
End If
Set PRO = Nothing
DB.Close
Set DB = Nothing
End Function


Access2007に変更したら型が一致しませんと出て動かなくなりました。
DAOとADOの違いだということまではわかったのですが、参照設定でMicrosoft Offic 12.0 Access database engine object をチェック、Microsoft Visual Basic for Applications Extensibility5.3をチェックしています。
構文で直さないといけない箇所が分かりません。
型式が一致しないとでるのはFor Each PRO In DB.Propertiesです。
教えて頂きたいです。。。とても困っています。

A 回答 (3件)

アクセス2016で確認したところDAOの参照がされてましたので


Dim DB As Database
Dim PRO As Property

Dim d As DAO.Database
Dim pro As DAO.Property
と明示的にDAOのプロパティとすればいいかもしれません
明示無しのPropertyでは他の参照をとってきてるかもしれません。
    • good
    • 1
この回答へのお礼

ご指摘の通りでした。
問題が解決出来ました。本当にありがとうございました。助かりました。

お礼日時:2020/01/09 11:35

関係あるか分かりませんが


>Microsoft Offic 12.0 Access database engine object をチェック
チェックだけではなく、優先順位を上げてみて下さい。
    • good
    • 0
この回答へのお礼

ご回答頂きありがとうございました。

お礼日時:2020/01/09 11:34

参照設定で、DAO(3.6あたり)のチェックは入っていますか?

    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

お礼日時:2020/01/09 11:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!