• ベストアンサー

accessVBA 「フォームが見つかりません」

コードをいろいろいじっていたら「F仕分伝票というフォームは見つかりません」というメッセージが出るようになりました。 Me.RecordSource = "SELECT * FROM 仕分伝票 WHERE 伝票番号 = " & Forms!F仕分伝票![伝票番号] & ";" このようなメッセージはどのような原因が多いのでしょうか。

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

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

フォームの名前をきちんと確認してみてください。 例えば、「F仕分伝票」の最初の文字のFが全角文字か半角文字かとか。 フォーム名は一字一句違わないように指定しなければなりません。 あと、SQL文のFROM句は後にテーブル名がくるのでフォーム名を書いてはいけません。

s-holmes
質問者

お礼

回答ありがとうございました。 私がばかでした・・ (^^; ○仕訳伝票 ×仕分伝票

その他の回答 (1)

  • chupark
  • ベストアンサー率41% (90/218)
回答No.1

 FROM のあとが 「仕分伝票」になってますよね?  それを「F仕分伝票」にするべきではないでしょうか?  ご自分でおつけになったフォーム名と一致させないと…。

s-holmes
質問者

お礼

回答ありがとうございました。 私がばかでした・・ (^^; ○仕訳伝票 ×仕分伝票

関連するQ&A

  • accessフォームのボタン→レポートへ伝票番号

    access初心者です。 accessのフォームがあります。 コマンドボタンを押すとその伝票番号★を引き継いで、レポートの★の部分に入れたいのですが。 【コマンドボタン】 DoCmd.OpenReport "伝票印刷", acPreview #「伝票番号」という変数に番号は入っています。 【レポート伝票印刷】 Sub Report_Open(Cancel As Integer) Me.RecordSource = "SELECT * FROM 仕分伝票 WHERE 伝票番号 = ★" End Sub #★に番号が入るとレポートはその番号のレポートを表示します。 #切り貼り作成しているので、ほとんどVBAはわかっていません。 #質問の仕方も自信なし。 #画面に表示されている伝票を印刷しようというのが目的です。

  • アクセス:like以下に変数を使って書くには?

    アクセスで困っています。 フォーム上にテキストボックスを設置し, そのテキストを検索ワードとしてレコードを抽出しようとしています。 レコードソースに入力する方式です。 以下のコードはきちんと動作しました。 Dim KENword As String KENword = [Forms]![Fその1]![検索ボックス] Me.RecordSource = "select * FROM テーブル WHERE (名前 like '*" & KENword & "*') or (所属 like '*" & KENword & "*')" さらに,likeの後ろを丸ごと変数にしたいと思い,次のように書きました。 Dim KENword As String Dim KENlike As String KENword = [Forms]![Fその1]![検索ボックス] KENlike = "'*" & KENword & "*'" Me.RecordSource = "select * FROM テーブル WHERE (名前 like KENlike) or (所属 like KENlike)" しかしこうすると, パラメーターの入力 KENlike の画面が出てしまいます。 msgboxなども使って試したのですが, どこが間違っているか分からず困っています。 どう直せばよいのでしょうか。 教えていただけると助かります。

  • AccessVBA RecordSourceのリセットについて

    こんにちは。 フォーム上で、データベースを検索するものを作っています。 SELECT ~ WHERE ~ で条件に合致するレコードを、サブフォームを連続表示しています。 リセットボタンを作成して、検索結果を消したい(カラにしたい)と思うのですが、 Me![subform].Form.RecordSource = "" Me![subform].Requery 上記のVBAを実行すると、1レコードだけ表示され、コントロール上では「#Name?」が出てしまっています。 参照するテーブルが無いためにこういうことが起きているのだと思うのですが、防ぐ方法が分かりません。 教えてください。 宜しくお願いします。

  • ACCESS 別フォームから別フォームの処理を

    ACCESSでメインフォームから別フォームを 【メインフォーム】 DoCmd.OpenForm "FM_商品検索", , , , , acWindowNormal 【商品検索フォーム】 検索画面でJANコードを選んだらJANコードをセットして、商品マスタの読込等の処理をしたい Forms!F_仕入!F_仕入sub.Form!JANコード = Me.JANコード ↑これは動く Forms!F_仕入!F_仕入sub.JANコード_BeforeUpdate ↑これがエラーになります 「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」 でエラーになります。 Forms!F_仕入!F_仕入sub.JANコード_BeforeUpdate Public Sub JANコード_BeforeUpdate(Cancel As Integer) 何がおかしいのでしょうか? 宜しくお願いします

  • クエリーから入力フォームの作成

    access2000を使って簡単な注文用のフォームを作っています。VBAは初心しゃです。 テーブルとしては、納品伝票(伝票番号、顧客コード)、顧客管理(顧客コード)を作り( )ないのものでリレーション組んでます。 クエリーでリレーションを組み、それを元にフォームを作りました。 希望としては(1)伝票番号の重複がないようにする。 (2)顧客コードから住所を表示させる、顧客コードが登録されていないときにはメッセージを出し、正しい顧客コード(顧客コードのみ)を入力させる。 (1)はクエリーでテキストのデータを条件にし、フォームのVBAで Private Sub 伝票番号_AfterUpdate() If DCount("伝票番号", "Q_納品伝票") >= 1 Then MsgBox "すでに登録されています" Me.Undo DoCmd.GoToControl "顧客名" DoCmd.GoToControl "伝票番号" End If End Sub で上手くできましたが、同じクエリーで(2)も(1)と同様なVBAを組んだところ(顧客デーブルの顧客コードに重複があるときをチェックさせる)、(1)の重複をチェックしなくなってしましまいました。 うまく説明できたが心配ですが、根本的に何か違っていますでしょうか?

  • アクセスでのコマンドボタンでの上書き保存について。

    Private Sub cmd_修正_Click() Dim fname As String fname = "F_kihonn" '転送先のフォーム名 If SysCmd(acSysCmdGetObjectState, acForm, fname) = 0 Then DoCmd.OpenForm fname, acNormal '転送先フォームが開いてない場合は開く End If DoCmd.GoToRecord acDataForm, fname, acNewRec '転送先フォームの新規レコードをカレントにする '値の代入 Forms!F_kihonn!更新日 = Me!更新日 Forms!F_kihonn!コード = Me!コード Forms!F_kihonn!カナ = Me!カナ Forms!F_kihonn!発注者名 = Me!発注者名 Forms!F_kihonn!担当部署 = Me!担当部署 Forms!F_kihonn!郵便番号 = Me!郵便番号 Forms!F_kihonn!住所 = Me!住所 Forms!F_kihonn!ビル名等 = Me!ビル名等 Forms!F_kihonn!電話番号 = Me!電話番号 Forms!F_kihonn!FAX番号 = Me!FAX番号 Forms!F_kihonn!URL = Me!URL Forms!F_kihonn!特記事項 = Me!特記事項 End Sub というのを書きました。これだとコードにキーを持たせているので、転送先フォームでコード以外の内容を修正すると、「重複しているので変更できませんでした」とエラー表示が出ます。上書き保存ができればいいのでしょうけど。上書き保存のコマンドボタンとかを作ればいいのでしょうか??何かいい方法はありますか?わかる方いましたらご教示ください。初心者の質問ですみません。宜しくお願いします。

  • Access2000フォーム/サブフォームにつおて

    Access2000でフォーム/サブフォーム(売上伝票)を作っています。 フォーム(売上伝票メイン)には伝票番号、売上先などを入力・・・ サブフォーム(売上伝票サブ)は商品、数量、金額などを入力します。 そこで質問ですが、サブフォームの商品は商品コード(コンボボックス)を入力すると該当する商品名、単価などを商品台帳から引いてくる、としたいと思い、商品コードの「更新処理後」に以下のコードを記述しました。   Me![商品名] = DLookup("[商品名]", "[商品台帳]","[商品コード]= Forms![売上伝票メイン]![売上伝票サブ]![商品コード]")     サブフォーム上の商品名に商品台帳の商品名を入力するとしたつもりなのですが、何も表示されません。  単価も単位も同様です。  この方法ではだめなのでしょうか?  

  • AccessVBAフォームデータソースについて

    お伺いします。 サブフォームにSQLで指定したテーブルを表示しようと、標準モジュールの中で、 myRS = "SELECT * FROM イベントテーブル WHERE (((イベントテーブル.年度)=" & DirObj & ")) ORDER BY イベントテーブル.htmlファイル名;" Forms!目次作成!イベント一覧.SourceObject = myRS としたのですが、エラーが出てしまいます。 Accessで標準モジュールを使い慣れていないので、先達の皆様に、援助を乞う次第です。 よろしくお願いいたします。

  • サブフォームのRecordSourceの件数を取得したい

    <環境>access2007、db:sqlserver2005 メインフォームに日付のテキストボックスがあり、その日付に一致したデータをサブフォームに表示しています。 メインフォームのOPEN時処理 Set FM = Forms![FTop] Set FS = Forms![FTop]![FTop_sub].Form FS.RecordSource = "select * from aaa where day = '"& fm!day &"'" この時、RecordSourceにセットしたデータの件数を取得したいのですが、 サブフォームのフォームヘッダーにテキストボックスを配置して、 そのコントロールソースを =Count(*) としました。 しかし、"#エラー"と表示されてしまいます。 サブフォームは"帳票フォーム"です。 どこが悪いのか困っています。どなたかご教授お願いします。

  • ACCESS VBAについて

    accessフォームにて実験データを入力するシステムを考えています。 添付画像のように空白のフォームに3つのサブフォーム(A.B.C)を設置しています。 動きとしては空白フォームに非連結のテキストボックス(日付カレンダー)があり、日付を変えるとフォームAのリストがその日付のサンプルリストが抽出されます。 次にフォームAの帳票リストのレコード選択するとそのレコードのSampleIDを参照してフォームBおよびフォームCのリクエリをかけたいのですがフォームBは連動するのですがフォームCが連動しません。 vbaは独学でしており、コードもネットからコピペばかりです(汗) エラーが出て、どう対処していいのかわかりません、 ご教授お願いいたします。 参考コード フォームAのレコードが選択(更新)する際のイベントです。 Private Sub Form_Current() SampleIDtemp = Me.TextSampleID.Value On Error GoTo KAIHI1 Forms(Screen.ActiveForm.Name).Controls("B").Form.RecordSource = "SELECT * FROM B WHERE B.SampleID = " & SampleIDtemp & ";" Forms(Screen.ActiveForm.Name).Controls("B").Form.Requery KAIHI1: On Error GoTo KAIHI2 Forms(Screen.ActiveForm.Name).Controls("C").Form.RecordSource = "SELECT * FROM C WHERE C.SampleID = " & SampleIDtemp & ";" Forms(Screen.ActiveForm.Name).Controls("C").Form.Requery KAIHI2: End Sub ちなみにいくつか出たエラーを示します (1)実行時エラー'2475': 指定した式では、フォームがアクティブウィンドウである必要があります。 (2)実行時エラー'2450': 参照されているフォーム'A'が見つかりません。