dポイントプレゼントキャンペーン実施中!

http://oshiete.goo.ne.jp/qa/8782706.html

上記について標準モジュールも作成して、先のクエリーを実行しましたが、
その際に

!コンパイル エラー:
ユーザー定義型は定義されていません。

と出ます。


5行目の
rst As ADODB.Recordset

箇所が反転されています。


一回でできるのは魅力なのですが、本当に実装できるのでしょうか。
(クエリーはたしかに保存できました)





Public Function DBLookup(ByVal strQuerySQL As String, _
             Optional ByVal ReturnValue = Null) As Variant
On Error GoTo Err_DBLookup
  Dim DataValue
  Dim rst     As ADODB.Recordset

  Set rst = New ADODB.Recordset
  With rst
    .Open strQuerySQL, _
       CurrentProject.Connection, _
       adOpenStatic, _
       adLockReadOnly
    If Not .BOF Then
      .MoveFirst
      DataValue = .Fields(0)
    End If
  End With
Exit_DBLookup:
On Error Resume Next
  rst.Close
  Set rst = Nothing
  DBLookup = IIf(Len(DataValue & ""), DataValue, ReturnValue)
  Exit Function
Err_DBLookup:
  MsgBox "SELECT 文の実行時にエラーが発生しました。(DBLookup)" & Chr$(13) & Chr$(13) & _
      "・Err.Description=" & Err.Description & Chr$(13) & _
      "・SQL Text=" & strQuerySQL, _
      vbExclamation, " 関数エラーメッセージ"
  Resume Exit_DBLookup
End Function




Public Function DBLookup(ByVal strQuerySQL As String, _
             Optional ByVal ReturnValue = Null) As Variant
On Error GoTo Err_DBLookup
  Dim DataValue
  Dim rst     As ADODB.Recordset

  Set rst = New ADODB.Recordset
  With rst
    .Open strQuerySQL, _
       CurrentProject.Connection, _
       adOpenStatic, _
       adLockReadOnly
    If Not .BOF Then
      .MoveFirst
      DataValue = .Fields(0)
    End If
  End With
Exit_DBLookup:
On Error Resume Next
  rst.Close
  Set rst = Nothing
  DBLookup = IIf(Len(DataValue & ""), DataValue, ReturnValue)
  Exit Function
Err_DBLookup:
  MsgBox "SELECT 文の実行時にエラーが発生しました。(DBLookup)" & Chr$(13) & Chr$(13) & _
      "・Err.Description=" & Err.Description & Chr$(13) & _
      "・SQL Text=" & strQuerySQL, _
      vbExclamation, " 関数エラーメッセージ"
  Resume Exit_DBLookup
End Function

A 回答 (2件)

> この場合は、参照設定を最初に疑って下さい。



これは、リスクというよりも心構えの問題。で、本当のリスクはADOがサポートされなくなること。し、しかし、それはありえない話と思いますよ。そんなことをしたら、世の中大混乱。心配は無用と言えます。ADO機能を活用するのは、Accessソフトの開発者としては当たり前のことですから・・・。
    • good
    • 0

http://www.accessclub.jp/actips/tips_32.htm
http://accessvba.pc-users.net/ado/

ADO機能を利用する場合は、参照設定を!
    • good
    • 0
この回答へのお礼

おおおーーすごい。できました!


参考までにW7以上、ACCESS2007以降であれば、以下リスクは問題ないのでしょうか。
(それとも随時いずれかが変わった際には、検証必要でしょうか)



同じAccess、OSのバージョンであれば問題は発生しませんが、これらバージョンが異なればAccessが動作しないという現象が現れます。 この場合は、参照設定を最初に疑って下さい。

お礼日時:2014/10/08 13:46

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