Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


54087 / 76732 ←次へ | 前へ→

【27447】Re:レコードセットを戻り値にできる?
回答  りん E-MAIL  - 05/8/9(火) 18:03 -

引用なし
パスワード
   お塩 さん、こんばんわ。

>********************************************************************
>下記の関数をコンパイルしようとすると、「プロパティの使い方が
>不正です。」とのコンパイルエラーが必ず表示されます。RecordSet
>を戻り値として返すことはできないのか、いろいろ調べたのですが、
>不明なままです。どなたか、ご教示お願いします。
>********************************************************************
他に原因があるかは実行してみないとわかりませんが、コンパイルエラーならば関数の戻り値はオブジェクトなので、Setしないと駄目ですよ。

>Public Function SeekOrderNum() As ADODB.Recordset <----戻り値の型をレコードセット
>On Error GoTo Seek_Err
>  Dim strsql As String
>  strsql = "SELECT 注文番号 FROM 注文T ORDER BY 注文番号"
>
>  Dim rs As ADODB.Recordset
>  Set rs = New ADODB.Recordset
>  If mdlDBAccess.EnableDatabase = False Then mdlDBAccess.InitDatabase
>  rs.Open strsql, mdlDBAccess.myADOcon
>  If rs.EOF Then
>    'MsgBox "該当する注文内容は見つかりません.", vbInformation, "呼出エラー"
>    rs.Close
>    Set rs = Nothing
     '↑ここで開放しているので
     Set SeekOrderNum = Nothing   <----コンパイルエラーで落ちる個所
>    Exit Function
>  End If
   Set SeekOrderNum = rs   <----コンパイルエラーで落ちる個所
>  'showDestination rs
>  rs.Close
>  Set rs = Nothing
>On Error GoTo 0
>  Exit Function
>Seek_Err:
>  Set rs = Nothing
   Set SeekOrderNum = Nothing   <----コンパイルエラーで落ちる個所
>End Function
0 hits

【27446】レコードセットを戻り値にできる? お塩 05/8/9(火) 17:58 質問
【27447】Re:レコードセットを戻り値にできる? りん 05/8/9(火) 18:03 回答
【27451】Re:レコードセットを戻り値にできる? お塩 05/8/9(火) 18:38 お礼

54087 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free