標準モジュールでレコードセットオブジェクトを開くには?

解決


さあや  2005-07-15 23:49:07  No: 123536

Form1に条件を入力し  標準モジュールでレコードセットオブジェクトを開き  それをForm2で表示したいのですが
「この操作を実行するために接続を使用できません。このコンテキストで閉じているかあるいは無効です。」
というエラーが出ます。
どうすればいいでしょうか?

・標準モジュール
Public Function rsSYAIN()

    Set rs1 = New ADODB.Recordset
    rs1.CursorLocation = adUseClient
    strsql = "SELECT * FROM SYAIN WHERE iSyainNo BETWEEN " & Form1.Text1.Text & " AND " & Form1.Text2.Text & ""
    rs1.Open strsql, cn, adOpenStatic, adLockOptimistic

End Function


もげ  2005-07-15 23:54:39  No: 123537

cnはOpenしていますか?


さあや  2005-07-19 19:36:37  No: 123538

>cnはOpenしていますか?

cnは  標準モジュールの方ではなくて  Form_Loadの方で開いているのですが  それでは駄目なのでしょうか?


ガッ  2005-07-19 19:46:49  No: 123539

Formに書かれているとか、標準モジュールに書かれているとかじゃなくて、
問題は、cnを使うとき、cnが生存していてcnがOpenされているか…ということなのでは?


いな  2005-07-19 20:44:34  No: 123540

>cnは  標準モジュールの方ではなくて  Form_Loadの方で開いているのですが  それでは駄目なのでしょうか?

「このコンテキストで閉じているかあるいは無効です。」
ということは、駄目なんでしょうね?

Form_Loadの方で開いた後、閉じていませんか?


さあや  2005-07-19 22:46:35  No: 123541

どうでもいいけど  掲示板おかしくないですか?


さあや  2005-07-19 23:19:44  No: 123542

一応  レコードセットオブジェクトを開けるようになったのですが
Form側で  Callで呼び出しても  ①のところで
「オブジェクト変数または With ブロック変数が設定されていません」
というエラーが出ます。

・標準モジュール
Public Function cnSYAIN()
    
    Set cn = New ADODB.Connection
    cn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;" & "Data Source = M:KENSYUUDB_VB.mdb"
    cn.Open

End Function

Public Function rsSYAIN()

    Set rs1 = New ADODB.Recordset
    rs1.CursorLocation = adUseClient
    strsql = "SELECT * FROM SYAIN WHERE iSyainNo BETWEEN " & Form1.Text1.Text & " AND " & Form1.Text2.Text & ""
    rs1.Open strsql, cn, adOpenStatic, adLockOptimistic

End Function

・Form
Private Function chkErr() As Boolean

    Call rsSYAIN

    If Text1.Text = "" Then '社員番号が空白の場合
      〜
      〜
      〜
    ElseIf IsNumeric(Text1.Text) And IsNumeric(Text2.Text) Then
        If rs1.RecordCount > 0 Then・・・① '該当データがある場合
            Form2.Show
            Form1.Enabled = False
        〜
        〜
        〜

End Function


ぶぶ  2005-07-19 23:33:25  No: 123543

cn rs1の変数はどこで定義していますか?


さあや  2005-07-20 19:46:05  No: 123544

>cn rs1の変数はどこで定義していますか?

標準モジュールです。


さあや  2005-07-20 20:52:55  No: 123545

自己解決しました。


名無し  2005-07-20 21:27:50  No: 123546

>>自己解決しました。
だけで済ませるくらいなら質問しないでくれるかな
それじゃ何の情報も残らないよ


...  2005-07-21 00:53:13  No: 123547

問題の解決で恩恵を受けた人が、問題・解決・参照リンクなどを簡潔に記述し、
 まとめとして投稿しましょう。
情報を送ってくれた人たちへのお礼も大事ですけれど、
もっと大事なのは掲示板を支えている人々への情報のフィードバックです。
そうすれば同じようなトラブルが起きたときの助けとなります。
そしてまとめの掲示することによって、
あなたは、掲示板から恩恵を受ける(take)立場から、貢献する(give)立場に変わるのです。 
ギブ・アンド・テイク(give & take)、これがコミュニティを支えます。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加