accessで作成したデータベースの内容を表示させるには?

解決


なぎ  2002-10-25 08:06:24  No: 105251

はじめまして、最近VBをやりはじめたのですが現在、accessで作成したデータベースをSQL文で条件を与えてVBのオブジェクトのtxt_KNoに番号を入力した時accessのk_noと一致したらFORMに作ったテキストボックスにデータを読み込みたいと思っているのですがWHERE句でどういう風に条件かいていいかわかりません。
ご教授お願いします。明日の朝またきますのでよろしくお願いします。


なぎ  2002-10-25 20:26:18  No: 105252

Dim mDb     As Database
    Dim mRs     As Recordset
    Dim strSQL  As String
Private Sub Form_Load() 
   'データベースをオープン
    Set mDb = _
        OpenDatabase("accessのデータベース")
    '選択クエリーを作成
    strSQL = "SELECT * FROM kokyaku " & _
             "WHERE k_no = 'K0003'  "        ←ここがわかりません
    '条件に一致するレコードを取得
    Set mRs = mDb.OpenRecordset(strSQL, dbOpenDynaset)
        '取得したデータを表示
    lbl_KName.Caption = mRs.Fields("k_name")
    lbl_Post.Caption = mRs.Fields("post")
    lbl_Address.Caption = mRs.Fields("address")
    lbl_Tel.Caption = mRs.Fields("tel")
    'オブジェクトを閉じる
    mRs.Close
    mDb.Close
    'オブジェクトを解放
    Set mRs = Nothing
    Set mDb = Nothing

このようなソースです


とろ  2002-10-25 20:58:03  No: 105253

>    strSQL = "SELECT * FROM kokyaku " & _
>             "WHERE k_no = 'K0003'  "        ←ここがわかりません

    strSQL = "SELECT * FROM kokyaku " & _
             "WHERE k_no = '" & txt_kNo.Text & "'  "
で良いのでは?


なぎ  2002-10-25 22:01:23  No: 105254

とろさんありがとうございます。
変更してみたところ今度はカレントレコードがありませんといわれ
デバックしようとすると
    lbl_KName.Caption = mRs.Fields("k_name")
のところが示されました。
いろいろ試してみます。


あんちゃん  2002-10-26 01:58:45  No: 105255

多分
mRs.Fields("k_name")は
mRs.Fields(0)だと思います。

mRs.Fields("k_name")の形でしたら
mRs("k_name")やmRs!k_nameとなるでしょう。


なぎ  2002-10-26 08:52:52  No: 105256

あんちゃんさんありがとうございます
う〜ん、まだ同じエラーでちゃいます。。。
基本的なところが間違っているかもしれませんね
上のソースも自分で試行錯誤して書いた物なので間違ってる
可能性大ですね。


あき☆彡  2002-10-27 03:24:01  No: 105257

カレントレコードがありません。というエラーなら、
条件に一致したレコードがないという事だと思いますが・・・

条件に一致したデータがあった場合のみ
ラベルに設定すれば良いと思います。

変更してエラーが出るようになったという事は、
>strSQL = "SELECT * FROM kokyaku WHERE k_no = 'K0003'  "
と書いていた時にはエラーが出なかったんですよね?

>strSQL = "SELECT * FROM kokyaku WHERE k_no = '" & txt_kNo.Text & "'  "
txt_kNo.Textに K0003 が入力されていますか?

修正前と修正後のSQLの編集結果が同じになっているか確認してみましょう。


なぎ  2002-10-27 07:02:23  No: 105258

あきさんレスありがとうございます。
K0003をソースに書いて実行した場合は実行した際にすでに
他の4つのラベルにaccessのデータベースのK0003の情報が
表示されてしまいます。その時はエラーはでていませんでした。


なぎ  2002-10-30 18:03:42  No: 105259

情報取得ボタンを付けて押したときにデータを取得するようにしたら
うまくいきました。いろいろありがとうございました。
あらたにわからないところがでてきたのでよろしくお願いします。


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

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






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