• 締切済み

ACCESSフォームでSELECTSQLを発行したい

教えてください。 アクセスのフォームを使ってSELECTするフォームを作りたいと思っています。 前にudpateのフォームをつくったことはあるのですが、 SQLをSELECT文に変えたらエラーになってしまいまいした。 よく考えたら CurrentDb.Execute SQL というのは、 SELECTは無理なのでしょうか? よろしくお願いします。

みんなの回答

  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.1

MSDNライブラリで該当項を見つけられなかったので、ヘルプからの Copy&Pasteになりますが、 > Execute メソッドは、アクション クエリーに対してのみ有効です。 > ほかのクエリーに対して Execute メソッドを使用すると、エラーが > 発生します。アクション クエリーではレコードが返されないため、 > Execute メソッドを実行しても Recordset は返されません とありますので、ご想像の通り、Selectにした場合(アクションクエリ ではなく選択クエリ相当)はエラーになるものと思います。 (なお、上記の抜粋元「Execute メソッド(DAO)」の項をAccessの  ヘルプで確認する場合は、VBEのヘルプで、「DAO Execute」で  検索してみてください:Access2003で確認) 一時的にデータの表示をしたいということでしたら、表示用に 一旦テーブルを作成した後、用が済んだらそのテーブルを削除、 という方法もあるかと思いますので、参考まで。 http://oshiete.quick.co.jp/qa4751240.html

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Access2007の、フォーム入力について

    下記のようなコマンドを、ボタンに追加しました。 名前の欄に入力して、ボタンを押すと、レコードの名前フィールドに入力されます。 Private Sub コマンド10_Click() If Nz(Me.名前1, "") <> "" Then CurrentDb.Execute "INSERT INTO 氏名 (名前) SELECT '" & Me.名前1 & "'" End If If Nz(Me.名前2, "") <> "" Then CurrentDb.Execute "INSERT INTO 氏名 (名前) SELECT '" & Me.名前2 & "'" End If If Nz(Me.名前3, "") <> "" Then CurrentDb.Execute "INSERT INTO 氏名 (名前) SELECT '" & Me.名前3 & "'" End If If Nz(Me.名前4, "") <> "" Then CurrentDb.Execute "INSERT INTO 氏名 (名前) SELECT '" & Me.名前4 & "'" End If If Nz(Me.名前5, "") <> "" Then CurrentDb.Execute "INSERT INTO 氏名 (名前) SELECT '" & Me.名前5 & "'" End If DoCmd.Close acForm, "フォーム1" End Sub テキストボックスには、それぞれ名前1~5、という名前がつけられています。レコードが追加されるテーブルは「氏名」です。 そこで、さらにテーブルに部署フィールドを追加して、フォームに上から、部署1~5のテキストボックスを追加し、 名前と部署のテキストボックスの、それぞれ対応しているものが、同じレコードに追加されるようにするには どうすればよいでしょうか? 有識者の皆さま、どうぞよろしくお願いいたします。

  • アクセスにて、フォームのテキストボックスの値をテーブルにコピーしたい

    初めて質問させていただきます。宜しくお願いします。 アクセスで、 ===フォーム上にある非連結テキストボックスに、日付を入力し、コマンドボタンをクリックすると、テーブルにある日付のデータをクリアし、その後フォーム上のテキストボックスに入力した日付を挿入===の方法を教えていただきたいと思います。 CurrentDb.Execute "DELETE * FROM T_設定日;" CurrentDb.Execute "INSERT INTO T_設定日(設定日) VALUES ('Me![年月日]');" 上記でやってみたところ、データのクリアはされるのですが、その後、テキストボックスに入れた日付は入りません。エラーは出ません。 アクセス初心者で、分かりにくい説明と思いますが、宜しくお願いします。

  • ACCESSをWebに発行

    はじめまして。ACCESSのフォームを社内のイントラで表示しデータの抽出をしたいのですが可能でしょうか?ASPに知識がないと無理でしょうか?自分で調べたところACCESS2003だと簡単にWebに発行出来るとのことですが手法がよく解りません。ACCESSのクエリ、簡単なSQL文の知識で出来るかどうか、又参考サイトがあれば教えてください。 宜しくお願いします。

  • ExecuteとRunSQLの違いって・・・?

    AccessのモジュールでSQLを流す処理ですが、 Insert Into テーブル名(フィールド名…) Select フィールド名… From テーブル名 Where フィールド名 = N(Double型変数) このようなSQLを実行する場合に CurrentDB.Execute SQL文  で実行するとオーバーフローのエラーがつきます。 同じ文を DoCmd.RunSQL SQL文  で実行すると正常に動作します。 変数Nの値がLONGの範囲内だとExecuteを使っても正常に動作するようです。 Insert先、元のデータ型はあってますので変数Nの内容に関係していると思うのですが… Nの値がLongの範囲内であれば、Executeでも正常に動作するようです。 Executeで扱える数値の制限みたいなものはあるのでしょうか?

  • Microsoft Accessのフォームについて

    不可能かもしれませんが、お願い致します。 Accessのフォームから、既存のクエリ(もしくはSQL文)の式を書き換える事は出来ますか?? もし可能であれば、教えて下さい!

  • ACCESSのADPでのフォームコントロール参照

    ACCESSのADPでのフォームコントロール参照式はForms![フォーム名]![コントロール名]でフォームのデータコントロールのSQL文の抽出条件に設定したのですがエラーがでます。教えてください。

  • Access2000でDAOを使用したときエラーにならない

    Access2000のVBAでプログラムを組んでいて、一見うまく処理されているように見えるのに、実際データが登録されていないということがあり、どうすればエラーを起こせるのか悩んでいます。 Dim db As DAO.Database Set db = CurrentDb db.Execute "insert into TEST values ('10','AAAAAAAAAA')" db.Execute "insert into TEST values ('10','AAAAAAAAAA')" 1つ目のフィールドが主キーになっており、2回目のInsert文はエラーになるはずですが、何も起こりません。 On Error Goto等は全く記述していません。 テーブルには最初の1行のデータだけが登録されています。 これ以外にも、2桁のフィールドに3桁のデータをInsertしても無視されるだけでエラーになりません。 潜在バクになる可能姓があるので、エラーを発生させたいのですが何か設定があるのでしょうか? 因みに、SQL文をいじって文法エラーにすると、ちゃんと実行時エラーは発生します。 SQLの文法が正しくて、テーブルの定義に反している時のエラーが拾いたいのです。 よろしくお願いします。

  • ACCESS 処理の件数を取得したい

    どうやっていいのか困っています。 DAOで処理をしています。 下記のような処理があり、それぞれの更新、検索、追加の件数を とりたいのですがどなたか教えていただけないでしょうか? もしくはサンプル、どこかいいサイトはありませんか? よろしくおねがいします。 UPDATEの場合 CurrentDb.Execute "UPDATE T_A SET WHERE Flag = '0'", dbFailOnError SELECTの場合 strSQL = "SELECT * FROM T_N " CurrentDb.Execute strSQL, dbFailOnError INSERTの場合 strSQL = "INSERT INTO FROM T_Y " CurrentDb.Execute strSQL, dbFailOnError

  • ACCESSのフォームって?

    SQL言語を使って検索した結果をフォームに反映したいと思っているのですが、フォームには「ヘッダ」「詳細」「フッタ」がありこの違いがよく分かりません。 SQLだけで使う場合関係ないのでしょうか? 今まではMYSQL+PHP3を使っていましたが今回ローカルで動くデータベースが必要になりACCESSを使うことにしてみました。 変な書込みですいませんが宜しくお願いします。

  • Accessのサブフォームつきフォームを使い回しをしたい

    Accessでサブフォームを使っていくつかの表を表示させたいと思っています。 それで表示させたい表はテーブルは違いますがフィールドは似たようなものなので、 1つのフォーム(とサブフォーム)ですべての表を表示させたいと思っています。 つまり前の画面でどのボタンをクリックしたかによってフォームのRecordSource(SQL文)を変更したいのです。 それで色々やってみたのですがどうもうまくいきません。 1.まずどの部分でRecordSource(フォーム、サブフォーム両方とも)の設定をすればよいのかよくわからない。 2.色々試行錯誤して設定して表が表示されるようになったが、なぜかデータが1件もない時にサブフォームが表示されない(サブフォームに表のタイトルが書いてありますがそれが表示されない)。 3.それも試行錯誤してうまく表示させることができるようになったが、そこでも問題がありました、1つの表のデータだけそこで編集できるようにしたいのですがなぜか編集できません(SQL文でRecordSourceを設定していますがそのSQL文はクエリで書くと編集できます)。 もしかしたら根本的に間違っているかもしれませんので、プログラムやプロパティの設定をどのようにしたらよいか最初からご説明していただけますでしょうか?

専門家に質問してみよう