[リストへもどる]
一括表示

投稿時間:2002/10/04(Fri) 11:27
投稿者名:たま
Eメール:
URL :
タイトル:
SQLについて
VBでACCESSを読み込んでいます。

各テキストボックスにリストボックスで選択した条件に該当するデータを表示したいのですが、
SQL文の実行させる方法がわかりません。

どうすればいいのでしょうか?

投稿時間:2002/10/04(Fri) 11:39
投稿者名:A221
Eメール:
URL :
タイトル:
Re: SQLについて
> 各テキストボックスにリストボックスで選択した条件に該当するデータを表示したいのですが、
> SQL文の実行させる方法がわかりません。

SQL文の発効が分からないのか、SQL文の生成が分からないのか、
データベースとの接続が分からないのか、いまいち質問の真意がつかめません。

データベースとの接続法は下記アドレスが一番分かりやすいと思います。。

http://homepage2.nifty.com/inform/vbdb/

投稿時間:2002/10/04(Fri) 11:45
投稿者名:たま
Eメール:
URL :
タイトル:
Re^2: SQLについて
A221さん、レスありがとうございます。

> SQL文の発効が分からないのか、SQL文の生成が分からないのか、
> データベースとの接続が分からないのか、いまいち質問の真意がつかめません。
説明不足でスミマセン。現状説明は以下の通りです。
  ・DAOで接続しています。
  ・SQL文は文字型配列に格納しております。

そして・・・このSQL分を実行し、レコードセットに格納する方法がわからないのです。
どうか、ヨロシクおねがいします。

投稿時間:2002/10/04(Fri) 12:35
投稿者名:A221
Eメール:
URL :
タイトル:
Re^3: SQLについて
>   ・DAOで接続しています。
>   ・SQL文は文字型配列に格納しております。

下記、一番シンプルなかたちです。
変数mySQLの中身をリストボックスから読んだデータによって変更すれば
できます。
-----------------------------------------------------
Private Sub Form_Load()

    Dim ws As DAO.Workspace, db As DAO.Database
    Dim rs As DAO.Recordset
    Dim mysql As String
    
    Set ws = DBEngine.Workspaces(0)
    Set db = ws.OpenDatabase("C:\db1.mdb")

    mysql = "Select * From Table1"
    Set rs = db.OpenRecordset(mysql, dbOpenDynaset)

End Sub

投稿時間:2002/10/04(Fri) 13:29
投稿者名:たま
Eメール:
URL :
タイトル:
Re^4: SQLについて
レスありがとうございます。

自分なりにもその方法でやってはいたのですが、
「パラメータが少なすぎます」と言われます。
以下にソースを展開しますので、間違いを指摘してもらえませんか?

Private Sub DBList1_DblClick()
    Dim DB As Database      'データベース
    Dim TB As Recordset     'レコードセット
    Dim strSQL As String    'SQL文
    
    'SQL文の作成
    strSQL = "SELECT * "
    strSQL = strSQL & "FROM 名簿 "
    strSQL = strSQL & "WHERE "
    strSQL = strSQL & "[氏名] = "
    strSQL = strSQL & DBList1.Text

    Set DB = DBEngine.OpenDatabase("C:\My Documents\名簿データ.mdb")
    Set TB = DB.OpenRecordset(strSQL, dbOpenDynaset)
      
    Text1(0).Text = TB!ID
    Text1(1).Text = TB!氏名
    Text1(2).Text = TB!電話番号
    Text1(3).Text = TB!都道府県
    Text1(4).Text = TB!住所
    Text1(5).Text = TB!趣味
    
    TB.Close
    DB.Close
    
End Sub

投稿時間:2002/10/04(Fri) 14:21
投稿者名:Honda
Eメール:
URL :
タイトル:
Re^5: SQLについて
> 自分なりにもその方法でやってはいたのですが、
> 「パラメータが少なすぎます」と言われます。
> 以下にソースを展開しますので、間違いを指摘してもらえませんか?
>
> Private Sub DBList1_DblClick()
>     Dim DB As Database      'データベース
>     Dim TB As Recordset     'レコードセット
>     Dim strSQL As String    'SQL文
>    
>     'SQL文の作成
>     strSQL = "SELECT * "
>     strSQL = strSQL & "FROM 名簿 "
>     strSQL = strSQL & "WHERE "
>     strSQL = strSQL & "[氏名] = "
>     strSQL = strSQL & DBList1.Text
>
>     Set DB = DBEngine.OpenDatabase("C:\My Documents\名簿データ.mdb")
>     Set TB = DB.OpenRecordset(strSQL, dbOpenDynaset)
>      
>     Text1(0).Text = TB!ID
>     Text1(1).Text = TB!氏名
>     Text1(2).Text = TB!電話番号
>     Text1(3).Text = TB!都道府県
>     Text1(4).Text = TB!住所
>     Text1(5).Text = TB!趣味
>    
>     TB.Close
>     DB.Close
>    
> End Sub
strSQLが違います。
フィールドが文字型なら'で囲み日付型なら#で囲みます
     strSQL = "SELECT * "
     strSQL = strSQL & "FROM 名簿 "
     strSQL = strSQL & "WHERE "
     strSQL = strSQL & "[氏名] = '"
     strSQL = strSQL & DBList1.Text & "'"

投稿時間:2002/10/04(Fri) 14:30
投稿者名:たま
Eメール:
URL :
タイトル:
Re^6: SQLについて
Hondaさん、レスありがとうございます。

> strSQLが違います。
> フィールドが文字型なら'で囲み日付型なら#で囲みます
本当ですね。なんで気が付かなかったんだろう・・・。
ありがとうございます。助かりました。

A221さん、Hondaさん、無事解決しました。
本当にどうもありがとうございました。