- ベストアンサー
アクセスでデータを分配するには
フォームにテキストボックスが3つあり 企業名を入力するテキストボックスと 駅名を入力するテキストボックスが2つあり登録ボタンを 押下すればテーブルに2つレコードが作成されるようにしたいのですが どうすればいいのでしょうか? 例えばテキスト1の企業名に ●●商事 テキスト2の駅名に銀座 テキスト3の駅名に有楽町と入力し登録ボタンを押下すればテーブル のフィールド名、企業名に●●商事フィール名 駅名に銀座というデータともうひとつ とフィールド名、企業名に●●商事フィール名 駅名に有楽町というデータの2つのデータが テーブルに作成されるようにしたいのですが。。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
失礼しました。 >ra.Close: se rs = Nothing 何を勘違いしていたのか、上記は rs.Close: Set rs = Nothing としてください。これは、 rs.Close Set rs = Nothing と縦に記述するのを横に連続して記述し、 処理する表現方法です。 最後の後始末なので必ず処理を入れる ようにします。 [ ADOについて ] ADOはAccessだけでなく、他の言語たとえばVisual Basicなどの 言語においても使用しており、たとえばVB6.0という言語で 使用している形式はほぼそのままAccessでも使用できます。 なかなかADOのみというのは少ないのですが、以下が比較的 ADOの要点をつかんでいるのではと思います。これらの中で わからない点が出てきたら、WEBで検索したり質問したり されればかなりいい効率で習得できると思います。 本家(2000などが主ですがそのまま他のバージョンでも 使用できます) http://msdn.microsoft.com/ja-jp/library/cc376607.aspx その他 http://www.ken3.org/ http://www.red.oit-net.jp/tatsuya/vb/ADO.htm http://kiyoeri.gotdns.org/~kiyoeri/pukiwiki/?Access%2FADO%A4%C8DAO http://pcdn.int21.co.jp/pcdn/vb/noriolib/vbmag/9812/vb6da/ http://www.happy2-island.com/access/ http://www.accessclub.jp/ado/index.html http://jsajax.com/accessOtehon/
その他の回答 (3)
- piroin654
- ベストアンサー率75% (692/917)
本家のADOの場所がわかりにくいかもしれないので、 http://msdn.microsoft.com/ja-jp/library/cc377101.aspx にあります。その他のところでもADOについての記述が あります。
- piroin654
- ベストアンサー率75% (692/917)
#1のQ1、Q2で >[フォーム2] となっているのはフォーム名です。 実際に合わせて変更してください。
- piroin654
- ベストアンサー率75% (692/917)
一応データを追加するものとします。 方法はいろいろですが、 フォームの企業名、駅名をいれるテキストボックスを tx企業名、tx駅名1、tx駅名2とし、 テーブルのフィールドを企業名、駅名とします。 (1) 方法1 クエリを二つ作ります。 テーブル名はデータを追加するテーブル名です。 Q1: INSERT INTO テーブル名 ( 企業名, 駅名 ) SELECT [Forms]![フォーム2]![tx企業名] AS 企業, [Forms]![フォーム2]![tx駅名1] AS 駅; Q2: INSERT INTO テーブル名 ( 企業名, 駅名 ) SELECT [Forms]![フォーム2]![tx企業名] AS 企業, [Forms]![フォーム2]![tx駅名2] AS 駅; フォームのボタンクリック時に、 Private Sub コマンド0_Click() DoCmd.SetWarnings False DoCmd.OpenQuery ("Q1") DoCmd.OpenQuery ("Q2") DoCmd.SetWarnings True End Sub (2) 方法2 DAOを使用した例。DAOを使っているので コード表の参照設定でDAOにチェックが入っているか 確認してください。 Private Sub コマンド0_Click() Dim db As DAO.Database Dim rs As DAO.Recordset Set db = CurrentDb Set rs = db.OpenRecordset("テーブル名", dbOpenDynaset) rs.AddNew rs!企業名 = Me!tx企業名 rs!駅名1 = Me!tx駅名1 rs.Update rs.AddNew rs!企業名 = Me!tx企業名 rs!駅名1 = Me!tx駅名2 rs.Update ra.Close: se rs = Nothing db.Close: Set db = Nothing End Sub
お礼
piroin654 さんご回答ありがとうございます。 ADOを使用したコードで実行させたらテーブルに条件通りの データが作成されました!!! ただ↓でエラーがでてしまうのでコメント化し読み込ませないようにしました。 ra.Close: se rs = Nothing これにおいては問題ないので大丈夫です。 また予断ですがADOにおいてもう少し勉強したいのですが何かお勧め のサイトなどありますでしょうか?
お礼
返信ありがとうございます。 私もraがrsの間違えかと思い当初変更してみたんですが やっぱり実行できませんでした。。 >最後の後始末なので必ず処理を入れる >ようにします。 ということなので、頂いたURLを参考に検証 してみようと思います。 ADOにつてい詳しくありがとうございました! 参考にさせて頂きます。 年末の慌しい中ご丁寧な対応誠に感謝しております。 良いお年をお過ごしください(^◇^)