レコードセットを返すFuncitonプロシージャーを作ってみたのですが。。。
下のGet_Recordsの方のレコードセットをCloseすると上の方のDisp_Dataでオブ
ジェクトが閉じているといって怒られます。しかし、閉じないと下の方では開きっ
ぱなしになると思うのですが。。。どのように処理すればいいのでしょうか?
Public P_CN As ADODB.Connection
Private Sub Disp_Date()
Dim RS As ADODB.Recordset
Dim SQL AS String
Set RS = Get_Records(SQL)
With RS
If .RecordCount > 0 Then
.MoveLast: .MoveFirst
.Debug.Print !顧客_ID
End If
End With
RS.Close
Set RS = Nothing
End Sub
Public Function Get_Records(pSQL As String) As ADODB.Recordset
Dim RS As ADODB.Recordset
Set RS = New ADODB.Recordset
RS.Open pSQL, P_CN, adOpenKeyset, adLockOptimistic
Set Get_Records = RS
''' RS.Close
''' Set RS = Nothing
End Function
No.2ベストアンサー
- 回答日時:
Get_Recordsで閉じる必要はないと思いますけど
##私は引数でADODB.Recordsetを渡している関数を作っていますが、問題ないですね。
##もちろんレコードセットを閉じる為の関数も作ってますけどね。
No.3
- 回答日時:
>下のGet_Recordsの方のレコードセットをCloseすると上の方のDisp_Dataでオブジェクトが閉じているといって怒られます。
>しかし、閉じないと下の方では開きっぱなしになると思うのですが。。。
Function や Sub の引数で ByVal と ByRef というのがありますよね。Get_Records の戻り値も ByRef と同じようなものと考えるとわかりやすいと思います。Get_Records の中でオープンしたレコードセットと Disp_Date に返ってきたレコードセットは同一のものです。なので、Get_Records の中では Close せずに、呼び出し側 ( Disp_Date ) で Close するのが正解です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) Excel VBA メール作成について 本文の中にExcel でコピーした図を上下に2つ 貼り付けを 2 2023/06/14 01:48
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
ADOを使ったDBアクセス後のメモリ解放
その他(データベース)
-
カレントレコードが無い事を判定させる方法
Visual Basic(VBA)
-
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
-
-
4
[VBA] ADOの Clone と AddNew
その他(プログラミング・Web制作)
-
5
Accessでフィールド名を変数(文字列)で・・・
Access(アクセス)
-
6
CSVファイルの中で、「 , 」カンマを使いたい
その他(コンピューター・テクノロジー)
-
7
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
8
ACCESS ADOでupdateが効かない
その他(データベース)
-
9
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
10
accessでイベントを中止するようなコマンドはあるのでしょうか?
その他(データベース)
-
11
Access VBAでタブコントロールで選択するタブをしていするには。
Access(アクセス)
-
12
Accessのテーブルデータを一気にVBAで追加したい・・
その他(データベース)
-
13
VBAでアクセスDBからデータの取得について
Visual Basic(VBA)
-
14
親フォームからサブフォームのレコードソースを設定
Access(アクセス)
-
15
ADO VBA 実行時エラー3021
Visual Basic(VBA)
-
16
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access VBAでクエリーのレコー...
-
ワードで保存するファイル名の...
-
ACCESS で マクロの中でフィ...
-
シングルクォーテーションとダ...
-
データベースの1要素に複数デー...
-
ワードでの単純作業の効率化に...
-
Access 縦(行)のデータを横(列)...
-
別のDBからテーブルをコピーす...
-
Access IF文でテーブルに存在し...
-
Access クエリ このレコードセ...
-
Accessデータベースで行と列を...
-
Accessのクエリ。日付と顧客で...
-
工事管理データベースで月締め...
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
Access テキスト型に対する指定...
-
「直需」の意味を教えてください
-
Accessでテーブル名やクエリ名...
-
Accessでテーブルの値をテキス...
-
必須入力項目と入力必須項目
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access IF文でテーブルに存在し...
-
Access VBAでクエリーのレコー...
-
データベースの1要素に複数デー...
-
ワードでの単純作業の効率化に...
-
ACCESS2003 Aアクロバットを介...
-
Access フォームのデータがテー...
-
ワードで保存するファイル名の...
-
Accessデータベースで行と列を...
-
Access 既に開いているフォー...
-
ACCESS で マクロの中でフィ...
-
Accessで名寄せグループの関係...
-
顧客IDを入力すると顧客名や住...
-
ADOでレコードを閉じるタイミン...
-
文字化け、記号の含まれるフィ...
-
Access クロス集計クエリについて
-
Access 縦(行)のデータを横(列)...
-
シングルクォーテーションとダ...
-
テーブル1 2 3 の結合
-
Access レコードロックについて...
-
Accessフォームからのデータ登...
おすすめ情報