• ベストアンサー
  • すぐに回答を!

Access2003・フォーム・データ抽出コードについて

  • 質問No.2594801
  • 閲覧数421
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 27% (3/11)

Access2003 コンボボックスで選択されたデータの、
他のレコードをテキストボックスに抽出したいです。

id,no1,no2=integer name=varchar
-----test table-----
id | no1 | no2 | name |
-----------------------
1 | 2 | 10 | abc |

例えばコンボボックスで『abc』を選択し、コマンドボタンをクリックすると
textbox1、textbox2、textbox3にそれぞれ
『idの1』、『no1の2』、『no2の10』という値を入れたいです。
phpのようにselect文で値をとって・・・ができないことにやっと気づき、Accessの場合どのような方法があるのか検討もついていません。
めちゃくちゃ簡単なコードでも参考URLでも良いのでどなたか教えていただけないでしょうか?

質問者が選んだベストアンサー

  • 回答No.2
  • ベストアンサー

ベストアンサー率 21% (25/117)

連結フォームを使う方法と非連結フォームを使う方法があります。

非連結フォームの場合を、簡単に書くと以下のような感じです。
どうでしょう?PHPと比べてもそんなに違和感ないですよね?

private sub コマンドボタン_click
 Dim cnn As Connection
 Dim rst As New Recordset
 Set cnn = CurrentProject.Connection
 Me.コンボボックス.SetFocus

 rst.Open "SELECT * FROM testtable WHERE name = '" & Me.コンボ0.Text & "';", cnn
 Me.textbox1.Value = rst!id
 Me.textbox2.Value = rst!no1
 Me.textbox3.Value = rst!no2
 rst.Close
exit sub
お礼コメント
chamasd

お礼率 27% (3/11)

レスありがとうございます。
asfdさんのコードを参考にさせていただき、欲しいデータを抽出できました!
>Dim rst As New Recordset
ここの部分でnewの使い方が正しくない・・というエラーがでましたが、ADODBっていうのを使ってみたら表示されました!
本当にありがとうございます。Accessへの学ぶ意欲が減少していたのですが、これでまたやる気復活です。
ちなみにコードです。
Private Sub buttom2_Click()
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Set cnn = CurrentProject.Connection
Set rst = New ADODB.Recordset
Me.combo1.SetFocus
rst.Open "select * from testdb where name='" & Me.combo1.Text & "';", cnn
Debug.Print rst!id
Me.tb1 = rst!id
Me.tb2 = rst!stms
Me.tb3 = rst!file
End Sub
投稿日時:2006/12/12 10:22

その他の回答 (全1件)

  • 回答No.1

ベストアンサー率 54% (457/838)

textbox1,2,3は非連結テキストボックスなんですか?
だたらDLookup関数で持ってくることは出来ますが

データベースなんですから、そんなことはあまりしないですね
>コンボボックスで『abc』を選択し、コマンドボタンをクリックすると
そのレコードをフォームなどで表示するというのが普通の方法ですよ
お礼コメント
chamasd

お礼率 27% (3/11)

レスありがとうございます。
Accessに触ってまだ一ヶ月程度なもので、
連結、非連結についてよくわからず質問してしまいすいませんでした。
Dlookup関数・・・、これも要学びです。
CHRONOS_0さんのおっしゃるように、別画面にレコードを表示するのが通常とのことですので、今後そういった普通のことも踏まえていきます。ありがとうございました。
投稿日時:2006/12/12 10:26
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ