レコードセットを返す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も見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
ADOを使ったDBアクセス後のメモリ解放
その他(データベース)
-
カレントレコードが無い事を判定させる方法
Visual Basic(VBA)
-
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
-
4
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
5
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
-
6
ACCESS ADOでupdateが効かない
その他(データベース)
-
7
アクセスVBAのMe!と[ ]
Access(アクセス)
-
8
Access サブフォームでの選択行の取得
その他(データベース)
-
9
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
10
[VBA] ADOの Clone と AddNew
その他(プログラミング・Web制作)
-
11
Accessでフィールド名を変数(文字列)で・・・
Access(アクセス)
-
12
VB6+SQL サーバー 2000 で 実行時エラー '3704' がでます:
Visual Basic(VBA)
-
13
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
14
accessでイベントを中止するようなコマンドはあるのでしょうか?
その他(データベース)
-
15
VBAでアクセスDBからデータの取得について
Visual Basic(VBA)
-
16
Access VBAでタブコントロールで選択するタブをしていするには。
Access(アクセス)
-
17
実行時エラー 3265「要求された名前、または序数
Visual Basic(VBA)
-
18
ADO VBA 実行時エラー3021
Visual Basic(VBA)
-
19
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データベースの1要素に複数デー...
-
Access フォームのデータがテー...
-
ACCESS2003 Aアクロバットを介...
-
Access VBAでクエリーのレコー...
-
Access2013VBA 複数のテーブル...
-
Accessで移動累計
-
ACCESSで重複データをまとめた...
-
ADOでレコードを閉じるタイミン...
-
アクセスクエリの計算
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
「直需」の意味を教えてください
-
Oracle 2つのDate型の値の差を...
-
Accessでテーブルの値をテキス...
-
FROM の中で CASE を使えるでし...
-
Access テキスト型に対する指定...
-
作番ってどういう意味でしょうか?
-
IT用語について質問です。 以前...
-
accessでの請求管理について
-
Accessでテーブル名やクエリ名...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access VBAでクエリーのレコー...
-
Access IF文でテーブルに存在し...
-
データベースの1要素に複数デー...
-
ワードでの単純作業の効率化に...
-
Access フォームのデータがテー...
-
ACCESS で マクロの中でフィ...
-
Accessデータベースで行と列を...
-
ワードで保存するファイル名の...
-
別のDBからテーブルをコピーす...
-
ADOでレコードを閉じるタイミン...
-
Accessで名寄せグループの関係...
-
シングルクォーテーションとダ...
-
Access 縦(行)のデータを横(列)...
-
顧客IDを入力すると顧客名や住...
-
Access クエリ このレコードセ...
-
(ACCESS)連番取得について
-
Access2000 単票フォーム上の...
-
Access 既に開いているフォー...
-
文字化け、記号の含まれるフィ...
-
Access2013VBA 複数のテーブル...
おすすめ情報