
以下のコードは、次回起動時シフトキーを無効にする方法らしいのですが、★印のところで、型が一致しませんとエラーが出てしまいます。
どうしてでしょか?対応方法を教えてください。
Function NoShiftKey()
ChangeProperty "AllowBypassKey", dbBoolean, False
End Function
Function ChangeProperty(strPropName As String, varPropType, varPropValue) As Integer
On Error GoTo エラー
Dim dbs As Database, prp As Property
Const conPropNotFoundError = 3270
Set dbs = CurrentDb
dbs.Properties(strPropName) = varPropValue
ChangeProperty = True
Exit Function
エラー:
If Err = conPropNotFoundError Then
Set prp = dbs.CreateProperty(strPropName, varPropType, varPropValue) '★この行でエラーがでます。
dbs.Properties.Append prp
Resume Next
Else
ChangeProperty = False
Exit Function
End If
End Function
No.3ベストアンサー
- 回答日時:
no.2回答者です。
私がAC2000で使ってたコードです。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Public Function notshift()
Dim Dbs As Database
Dim prp As Property
On Error GoTo error1
Set Dbs = CurrentDb '外部DBの場合はOpenDatabaseでフルパス指定
'shiftキーが利かないようにする
E2:
If Dbs.Properties!AllowBypassKey = True Then
Dbs.Properties!AllowBypassKey = False
MsgBox ("バイパスキー使用不可になりました")
Else
Dbs.Properties!AllowBypassKey = True
MsgBox ("バイパスキー使用可になりました")
End If
Dbs.Properties.Refresh
Exit Function
error1:
If Err = 3270 Then
'プロパティーが見つからない場合createする
Set prp = Dbs.CreateProperty("AllowBypassKey", dbBoolean, True)
'プロパティーに追加する
Dbs.Properties.Append prp
Resume E2
End If
MsgBox "設定失敗しました。"
End Function
No.2
- 回答日時:
ACCESSのバージョンは?
そもそもエラー時の動きなのでエラーが出ないようにすることを
考えるほうが本質的かと。
ちなみに該当行を
Set prp = Dbs.CreateProperty("AllowBypassKey", dbBoolean, True)
としたらどうですか?
No.1
- 回答日時:
当方のAccess2003ではこのコードでそのまま通りますが ・・・
引数varPropValueを varPropValue As Booleanと型指定してもだめでしょうか
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
レコード登録時に「演算子があ...
-
エクセル 足し算引き算で 空...
-
ActiveCell.FormulaR1C1の変数
-
【VB.NET】 パワポ操作を非表示で
-
【VBAエラー】Nextに対するFor...
-
「実行時エラー '3167' レコー...
-
VBA データ(特定値)のある最...
-
VB.NETでMessageBoxが表示され...
-
【Access】Excelインポート時に...
-
ACCESSで値を代入できないとは?
-
paizaで下記コードを提出すると...
-
mailstorehomeのエクスポートで...
-
CATIA注釈について教えて下さい。
-
String""から型'Double'への変...
-
エクセル関数式=ABSで#VALUE!...
-
文字を数字に変換したい
-
UBoundに配列がありませんとエ...
-
VB6のプログラムをWIN7で使いたい
-
オートシェイプの削除時のエラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
【VBA】ワークブックを開く時に...
-
マクロで"#N/A"のエラー行を削...
-
文字列内で括弧を使うには
-
String""から型'Double'への変...
-
【Access】Excelインポート時に...
-
VBA データ(特定値)のある最...
-
On ErrorでエラーNoが0
-
インポート時のエラー「データ...
-
ACCESSで値を代入できないとは?
-
VBA エクセル で FIND でのエラ...
-
Filter関数を用いた結果、何も...
-
レコード登録時に「演算子があ...
-
ApplicationとWorksheetFunctio...
-
Excel vbaについての質問
-
【VBAエラー】Nextに対するFor...
-
実行時エラー 438 の解決策をお...
-
「実行時エラー '3167' レコー...
おすすめ情報