重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

以下のコードは、次回起動時シフトキーを無効にする方法らしいのですが、★印のところで、型が一致しませんとエラーが出てしまいます。
どうしてでしょか?対応方法を教えてください。


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

A 回答 (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
    • good
    • 0

ACCESSのバージョンは?




そもそもエラー時の動きなのでエラーが出ないようにすることを
考えるほうが本質的かと。



ちなみに該当行を
Set prp = Dbs.CreateProperty("AllowBypassKey", dbBoolean, True)

としたらどうですか?

この回答への補足

Access2000です。
Access2003では、うごきました。

補足日時:2008/01/27 18:06
    • good
    • 0

当方のAccess2003ではこのコードでそのまま通りますが ・・・



引数varPropValueを varPropValue As Booleanと型指定してもだめでしょうか
    • good
    • 0

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

今、見られている記事はコレ!