「FROM 句の構文エラーです」が表示される

このQ&Aのポイント
  • 入力フォームの内容をテーブルへ登録するFunctionプロシージャを作成したいのですが、上手くいきません。
  • DoCmd.Hourglass Trueを使用して処理中にユーザーに待機中であることを示すアイコンを表示します。
  • SELECT文とINSERT文、UPDATE文を使用してテーブルの操作を行っています。
回答を見る
  • ベストアンサー

「FROM 句の構文エラーです」が表示される

入力フォームの内容をテーブルへ登録するFunctionプロシージャを作成したいのですが上手くいきません。 ご指導いただければと思います。宜しくお願いいたします。 Function WriteMyData() As Boolean DoCmd.Hourglass True On Error GoTo errHandler WriteMyData = False Set MycnnDst = Application.CurrentProject.Connection Set MycnnrstDst = New ADODB.Recordset MycnnrstDst.Open "SELECT 整理番号,発掘者,件名,発生日,曜日,時間," _ & "天候,温度,風,体調," _ & "作業分類,作業詳細," _ & "MAN,MACHINE,MEDIA,MANAGE," _ & "内容,影響,対策,重要度,対策完了,入力日 " _ & "FROM " & MyTableName & " WHERE 整理番号='" & Me.整理番号 & "'", MycnnDst, adOpenKeyset, adLockPessimistic, adCmdText Select Case Me.MyDataMode Case "追加" If MycnnrstDst.EOF Then MystrTableDst = "INSERT INTO " & MyTableName & " " If IsNull(Me.対策完了) Then MystrItemDst = "( 整理番号, 発掘者, 発生日, 件名, 曜日, 時間, " _ & "天候, 温度, 風, " _ & "体調, 作業分類, 作業詳細, " _ & "MAN, MACHINE, MEDIA, MANAGE, " _ & "内容, 影響, 対策, 重要度, 入力日, " ') " MystrItemSrc = "VALUES ('" & Me.整理番号 & "','" & Me.発掘者 & "'," _ & "#" & Me.発生日 & "#,'" & Me.件名 & "','" & Me.曜日 & "','" & Me.時間 & "'," _ & "'" & Me.重要度 & "',#" & Me.入力日 & "#," _ & "'" & "') " Else MystrItemDst = "(整理番号,発掘者,件名,発生日,曜日,時間," _ & "天候,温度,風,体調," _ & "作業分類,作業詳細," _ & "MAN,MACHINE,MEDIA,MANAGE," _ & "内容,影響,対策,重要度,対策完了,入力日,図解ファイル,添付ファイル) " MystrItemSrc = "VALUES ('" & Me.整理番号 & "','" & Me.発掘者 & "'," _ & "#" & Me.発生日 & "#,'" & Me.件名 & "','" & Me.曜日 & "','" & Me.時間 & "'," _ & "'" & Me.内容 & "','" & Me.影響 & "','" & Me.対策 & "'," _ & "'" & Me.重要度 & "',#" & Me.対策完了 & "#," & "#" & Me.入力日 & "#," _ & "'" & "') " End If MystrTableSrc = "" MystrParmSrc = ";" MystrSqlDst = MystrTableDst & MystrItemDst & MystrItemSrc & MystrParmSrc MycnnrstDst.AddNew MycnnDst.Execute MystrSqlDst, , adCmdText Me.MyEdited = "" End If Case "修正" MystrTableDst = "UPDATE " & MyTableName & " " If IsNull(Me.対策完了) Then MystrItemDst = "SET " _ & "整理番号 = '" & Me.整理番号 & "', " _ & "発掘者 = '" & Me.発掘者 & "', 発生日 = #" & Me.発生日 & "#, " _ & "件名 = '" & Me.件名 & "', 曜日 = '" & Me.曜日 & "', " _ & "入力日 = #" & Me.入力日 & "#, " & "' " Else MystrItemDst = "SET " _ & "整理番号 = '" & Me.整理番号 & "', " _ & "発掘者 = '" & Me.発掘者 & "', 発生日 = #" & Me.発生日 & "#, " _ & "件名 = '" & Me.件名 & "', 曜日 = '" & Me.曜日 & "', " _ & "対策完了 = #" & Me.対策完了 & "#, 入力日 = #" & Me.入力日 & "#, " & "' " End If MystrItemSrc = "" MystrTableSrc = "" MystrParmSrc = "WHERE (連番 = " & Me.連番 & ");" MystrSqlDst = MystrTableDst & MystrItemDst & MystrItemSrc & MystrTableSrc & MystrParmSrc MycnnDst.Execute MystrSqlDst End Select Forms!HiyariHattoIchiran2013.Requery WriteMyData = True ExitMe: On Error Resume Next On Error GoTo errHandler DoEvents DoCmd.Hourglass False Exit Function errHandler: MsgBox "WriteMyData Error Number " & Err.Number & " : " & Err.Description WriteMyData = False Resume ExitMe End Function

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

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.3

エラーについては、既出の3つの回答で解決されるかと思います。 私からはそのエラーが解消したとして・・・やっておきたい事を(他の部分も提示されていたので) やりたい処理を整理されてみてはどうでしょう。 MycnnrstDst は、(「追加」時に)ある/ない判別にしか使ってない様ですね。 MycnnrstDst を得ているのなら、追加時には MycnnrstDst.AddNew してから MycnnrstDst("整理番号") = Me.整理番号  等羅列して最後に Update すれば良いような気がします。 例) MycnnrstDst.AddNew MycnnrstDst("整理番号") = Me.整理番号 ・・・ MycnnrstDst("重要度") = Me.重要度 If (Not IsNull(Me.対策完了)) Then   MycnnrstDst("内容") = Me.内容   ・・・   MycnnrstDst("対策完了") = Me.対策完了 End If ・・・ MycnnrstDst.Update そうすれば、INSERT文に記述しているフィールド部分と VALUES 部分の個数/順があっていない 等、間違いがなくなるような気がします。 If IsNull(Me.対策完了) Then 側では、天候, 温度, 風,・・・ に対する VALUES が無さそう その Else 側では、上記に加え、件名,発生日が "#" & Me.発生日 & "#,'" & Me.件名 で逆 とか また、「追加」の最後の方で MycnnrstDst.AddNew してますが、この後どうなるのでしょう 変数の宣言部分( Dim なんチャラ )がないので、他の処理で使っているのかもしれませんが・・・ MycnnrstDst.Close しないまま、また MycnnrstDst.Open するとエラーになったような (実際には Set MycnnrstDst = New ADODB.Recordset しているので大丈夫かと思いますが、Close は必要な気がします) 「修正」時の方では、 > Me.入力日 & "#, " & "' " ここは、Me.入力日 & "# " で良さそうなんですが

shigetaka46
質問者

お礼

質問以外の部分についてもご教授いただき有難うございます。 全体的に見直して整理して行きたいと思います。

その他の回答 (2)

回答No.2

Dim sql As String としておいて sql = "SELECT 整理番号,発掘者,件名,発生日,曜日,時間," _ & "天候,温度,風,体調," _ & "作業分類,作業詳細," _ & "MAN,MACHINE,MEDIA,MANAGE," _ & "内容,影響,対策,重要度,対策完了,入力日 " _ & "FROM " & MyTableName & " WHERE 整理番号='" & Me.整理番号 & "'" Debug.Print sql MycnnrstDst.Open sql, MycnnDst, adOpenKeyset, adLockPessimistic, adCmdText でSQL文が正しいか確認したらどうなりますか?

shigetaka46
質問者

お礼

確認方法をご教授いただき有難うございました。 色々やり過ぎて原因は分かりませんでしたが、エラーは出なくなりました。

  • MSZ006
  • ベストアンサー率38% (390/1011)
回答No.1

DBアクセス?でしょうか。 詳しくは分からないのですが、上から12行目あたりに、 & "FROM " & MyTableName & がありますが、MyTableName  というのはどこかで定義されていますか?

shigetaka46
質問者

お礼

どこまで投稿してらよいか分からず、必要な情報が不足しており申し訳ありません。他で定義されております。

関連するQ&A

  • Access レコードのロック

    Access2000 フォームを読み込んだとき,テキストボックス"受付No."欄が 入力されている場合,テキストボックス"件名"欄をデータの変更が 出来ないようにロックを掛けたいのです。 下記のイベントプロシージャを組んだのですが,全くロックされません。 VBA初心者なので多分とんでもない間違いをしていると思いますが, どこが違うのかご指摘下さい。 Private Sub Form_Load() If Me.受付No. <> "" Then Me.件名.Locked = True Me.件名.Enabled = False End If End Sub

  • アクセスVBAのエラーメッセージ

    次のようなVBAを更新前のイベントとして書いたのですが、実行しようとすると「抽出条件のデータ型が一致してません」というエラーメッセージが出ます。 これは、どういう意味のエラーメッセージなのでしょうか? よろしくお願いいたします。 If IsNull(DLookup("作業日", "T交通費マスター", "作業日 ='" & Me!作業日 & "'")) Then Exit Sub End If

  • 二つの構文を繋げるのには

    よろしくお願いいたします。 WIN7 EXCELL2010 です。 重複を防止するために入力規則で防ごうとしましたがユーザーフォームでデーターシートに記入すると データー 入力規則 では コピー ペーストになりできないことが調べて分かりました。 そこでマクロを適用しようとおもいます。 現在下記のマクロは適用しています。 Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("K2:M100")) Is Nothing Then Exit Sub 'ココで範囲指定 Application.EnableEvents = False If Target.Value = 1 Then Target.Value = "入昼" If Target.Value = 2 Then Target.Value = "入夕" If Target.Value = 3 Then Target.Value = "入朝" If Target.Value = 4 Then Target.Value = "退朝" If Target.Value = 5 Then Target.Value = "退昼" If Target.Value = 6 Then Target.Value = "退夕" If Target.Value = 11 Then Target.Value = "パ" If Target.Value = 12 Then Target.Value = "米" If Target.Value = 13 Then Target.Value = "粥" If Target.Value = 14 Then Target.Value = "ミ" If Target.Value = 15 Then Target.Value = "毎" Application.EnableEvents = True End Sub 上記のマクロに下記のマクロを追加したいのですがどう繋げていいいのかが分かりません。 END IF, END WITHでいろいろ試しましたがうまくいきません。 どう繋げればいいいかをご指導いただけませんでしょうか。 Private Sub Worksheeet_Change(ByVal Target As Rage) If Targeet.Count <> 1 Then Exit Sub If Targeet.Row > 10 Then Exit Sub If Targeet.Column <> 1 Then Exit Sub If Application.WorksheetFunction.CountIf(Range("O:O"), Target.Value) > 1 Then MsgBox "部屋番号と入所日が重複しています" Target.Value End If End Sub

  • AccessのエラーチェックでFキーcmdボタンから反映されない

    こんにちは! 質問なのですが、Accessの入力フォームでエラーチェックをかけてます。 「txtMsg」って名前のテキストボックスを1つ用意してエラーの内容を 反映させてます。チェックの内容ですが、Nullチェックと文字数チェック ・禁止文字チェックをかけてます。 >エラーはちゃんと反映します。SetFocusでカーソルをエラー個所に立て て修正します。ここからが問題なのですが、エラー個所を修正したママの 状態(修正個所にFocusがある状態)でFキーcmdボタンの「更新」ボタン を押してもテキストボックスにエラーが出たママなんです。 ちなみにFキーを使用できるようにcmdボタンを12個並べて使っております。 >状況 ・Fキーを使用して更新した場合のみエラー表示が消えない。 >たぶんfocusが移動してないからかな? >Me.事項.SetFocusのような作業が出来ない状況(現状の >txtBOXの「Enterキー入力動作」を「行を追加」にして >いる為)で、Fキーを使用しつつ更新出来るようにするには? ・クリックで「更新」ボタンを押すとちゃんと更新される。 ってわけで困ってます。 何かいい方法を知っていらしゃいましたらご教授願います。 '------------------必須項目の未入力チェック------------------- Me.txtMsg = "" If IsNull(Me.郵便番号) Or Me.郵便番号 = "" Then Me.txtMsg = "郵便番号データが未入力です。( ̄▽ ̄;)!!" Me.郵便番号.SetFocus Exit Sub End If '--------------------図版CD文字数チェック-------------------- strYbn = Len(Me.郵便番号) If strYbn <> 10 Then Me.txtMsg = "『〒000-0000』形式にして下さい! (´∞`)" Me.郵便番号.SetFocus Exit Sub End If

  • Countと受付状態の表示について

    現在、Access2007にて、会社の顧客管理システムを作成している超初心者です。 本を数冊買い込んで、作成しているのですが、どうしてもわからず、質問をさせていただきました。どなたかご教授いただければと願っております。 基本的には、自社で取得するオリジナルの管理番号にて、商品の修理受付状態を管理するデーターベースです。 なお、管理番号は、商品別に取得しているので、商品が異なれば、同じ管理番号が存在します。 例えば、   商品   管理番号   AAA    001   AAA    002   BBB    001   BBB    002 商品AAAの管理番号001というものは、1つしか存在しません。また、重複登録をしないような設定もしたいと思っていますが、そのやり方もよくわかっておりません。 現在、作成したテーブルならびにフォームは、 入力者テーブル   フィールドは、入力者ID(主キー)、入力者名、ふりがな 顧客テーブル    フィールドは、顧客ID(主キー)、顧客名、ふりがな、備考 商品テーブル    フィールドは、商品ID(主キー)、商品名、顧客参照ID、備考 管理番号テーブル  フィールドは、管理番号ID(主キー)、顧客名参照ID、商品参照ID、管理番号、備考 です。 このあとに、修理受付入力と修理受付明細、作業完了入力、作業完了明細、修理履歴の検索テーブル及び、フォームを作成する予定です。 (実際には、少し作成しているのですが、まったく機能していません。。) 1つの管理番号に対して、最終的に数回の修理を受付します。 現在、私が考えている、修理受付入力と修理受付明細、作業完了入力、作業完了明細フォームに関しては、以下の内容を必要とします。 ■修理受付入力フォーム  ・修理受付ID(主キー)  ・入力日(自動入力)  ・入力者(コンボボックス)  ・顧客名(コンボボックス)  ・商品名(コンボボックス) 修理受付入力フォームのサブフォームとして、 ■修理受付明細テーブル  ・修理受付明細ID(主キー)  ・修理受付親ID  ・明細行番号(入力した行について、行数を表示したい)  ・管理番号(手入力)  ・現在の状態(管理番号を入力したら自動的に状態が表示されるようにしたい。)  ・修理回数(管理番号を入力したら自動的に過去の修理回数が表示されるようにしたい。)  ・受付日(手入力)  ・備考 *「現在の状態」については、受付をする際は、前回の修理分が「納品済」となっているので「納品済」、または、初めての受付の場合は、「新規」と表示したいです。また、修理受付が終わり、受付ボタンにて、作業完了フォームにコピーされた後は、作業完了明細にて、「受付中」と表示され、作業完了登録をすると、また「納品済」と表示したい。 *修理回数は、作業完了明細の完了日を入力した数をCountして、それに作業完了明細にて、修理不能返却をしたものは、完了日のCountマイナス1の数字を表示したい。 *商品AAAに対して、管理番号が異なるものをまとめて20個受付したりすることがあるため、サブフォームにて、異なる管理番号のものを、まとめて入力できるようにしたく、サブフォームを作りました。 ■作業完了入力フォーム(修理受付をすると、内容が作業完了にコピーされるようにするつもりです。)  ・作業完了受付ID(主キー)  ・入力日  ・入力者  ・顧客名  ・商品名 作業完了入力フォームのサブフォームとして、 ■作業完了明細テーブル (基本的には、作業完了入力フォームと同様、コピーされ、商品受付明細のフォームに、追加したフィールドがあります。)  ・作業完了受付明細ID(主キー)  ・作業完了受付親ID  ・明細行番号  ・管理番号  ・現在の状態  ・修理回数  ・受付日  ・完了日(手入力)  ・修理不能返却(Yes/No型)←修理不能の場合はチェックを入れる。  ・備考 今、つまずいている部分は数か所あります。  ・商品AAAの管理番号001という商品は、1つしか存在しません。管理番号テーブルにて、重複登録をしない設定をしたい。  ・明細行番号の表示の仕方  ・修理受付明細フォームでの、現在の状態、修理回数の自動表示の方法。(クエリの作り方から、フォームへの反映の仕方が全くわかりません。) どなたか、ご教授くださいませ。どうぞよろしくお願いいたします。

  • SQL文 Where句の複数検索

    先日教えて頂いたところから自分なりに複数検索をする方法を考えて書いてみたのですが、これだとテキストボックスに複数検索条件を入力するとSQLの構文エラーになってしまいうまくいきません。 先日教えて頂いた方、見ていたらまたアドバイスを頂けたら助かります。 Private Sub コマンド11_Click() '変数の設定 Dim myDB As DAO.Database Dim myRS As Recordset Dim strCnd As String Dim strWhr As String Dim strSQL As String '定数の宣言 Const conSQL As String = "Select * From T_障害票マスタ" ' テキストボックスの値を確認 ' Nz関数を使用して、テキストとして扱える空文字に変換 strCnd = Nz(Me!テキスト1, "") '←◆コントロールの値を参照◆ '「テキスト1」の入力値を元に、Where条件句を作成 If strCnd <> "" Then '条件指定時は曖昧検索 strWhr = strWhr & " " & strWhi & " 起票日 Like '*" & strCnd & "*'" End If strCnd = Nz(Me!テキスト3, "") '←◆コントロールの値を参照◆ '「テキスト3」の入力値を元に、Where条件句を作成 If strCnd <> "" Then '条件指定時は曖昧検索 strWhr = strWhr & " And 依頼者 Like '*" & strCnd & "*'" End If strCnd = Nz(Me!テキスト5, "") '←◆コントロールの値を参照◆ '「テキスト5」の入力値を元に、Where条件句を作成 If strCnd <> "" Then '条件指定時は曖昧検索 strWhr = strWhr & " And 部署 Like '*" & strCnd & "*'" End If strCnd = Nz(Me!テキスト7, "") '←◆コントロールの値を参照◆ '「テキスト7」の入力値を元に、Where条件句を作成 If strCnd <> "" Then '条件指定時は曖昧検索 strWhr = strWhr & "And 社員番号 Like '*" & strCnd & "*'" End If strCnd = Nz(Me!テキスト9, "") '←◆コントロールの値を参照◆ '「テキスト9」の入力値を元に、Where条件句を作成 If strCnd <> "" Then '条件指定時は曖昧検索 strWhr = strWhr & "And 対象システム Like '*" & strCnd & "*'" End If 'SQL文を作成 strSQL = conSQL & vbCrLf & strWhr '自身のレコードソースに設定 Me.RecordSource = strSQL '検索結果の表示 DoCmd.OpenForm ("データ修正画面") Forms("データ修正画面").RecordSource = strSQL

  • Access 非連結からレコード追加について

    標記の件。 不明な点がありご教授頂きたくお願い致します。 今まで普通に使えていたのですが急にエラー「実行時エラー2147467259・(80004005)エラーを特定できません」が出るようになりました。 Windowsのヘルプを参照しましたが、全然ヘルプどころか謎が深まるばかりという状況です。 2つあるチェックボックスの2つ目でエラーになります。 下記コードで全体の改善点含め原因等ありましたらご教授をお願い致します。クエリに変更はありませんでした。 Private Sub btn_登録_Click() Dim con As ADODB.Connection Dim rst As ADODB.Recordset Set con = CurrentProject.Connection Set rst = New ADODB.Recordset If IsNull(txt_工数ロットCD = "" Or _ txt_部品CD = "" Or _ txt_図面番号 = "" Or _ txt_数量 = "" Or _ txt_品名 = "" Or _ cmb_社員名 = "" Or _ txt_作業日 = "" Or _ cmb_工程 = "" Or _ txt_工数 = "") Then MsgBox " 未入力項目があります", vbCritical, "確認" Exit Sub End If If txt_工数ロットCD = "" Or _ txt_部品CD = "" Or _ txt_図面番号 = "" Or _ txt_数量 = "" Or _ txt_品名 = "" Or _ cmb_社員名 = "" Or _ txt_作業日 = "" Or _ cmb_工程 = "" Or _ txt_工数 = "" Then MsgBox "未入力項目が有ります", vbCritical, "確認" Exit Sub End If rst.Open "Q_工程進捗確認", con, adOpenForwardOnly, adLockPessimistic On Error GoTo err_handler 'エラーなら con.BeginTrans ' With rst .AddNew .Fields("工数ロットCD") = Me!txt_工数ロットCD .Fields("部品CD") = Me!txt_部品CD .Fields("数量") = Me!txt_数量 .Fields("社員名") = Me!cmb_社員名 .Fields("作業日") = Me!txt_作業日 .Fields("工程") = Me!cmb_工程 .Fields("工数") = Me!txt_工数 If IsNull(Me.chk_自工程完了) Then .Update Else .Fields("自工程完了") = Me.chk_自工程完了 .Update '更新 End If If IsNull(Me.chk_製作完了) Then .Update '更新 Else .Fields("製作完了") = Me.chk_製作完了.Value ←ここでエラー .Update End If End With con.CommitTrans '確定 Set rst = Nothing Set con = Nothing Call btn_クリア_Click Exit Sub err_handler: con.RollbackTrans Call dbcut_off MsgBox Error$ Debug.Print Error$ End Sub

  • VBA マクロ 修正

    Private Sub UserForm_Initialize() Me.lbl行番号.Caption = Worksheets("顧客情報").Range("A1").CurrentRegion.Rows.Count + 1 End Sub Private Sub cmd検索_Click() frm顧客検索.Show vbModal If rtnNo > 1 Then With Worksheets("顧客情報") Me.lbl行番号.Caption = rtnNo Me.txt顧客番号 = .Cells(rtnNo, 1) Me.txt顧客名 = .Cells(rtnNo, 2) Me.txt生年月日 = .Cells(rtnNo, 3) Me.txt年齢 = .Cells(rtnNo, 4) Me.txt性別 = .Cells(rtnNo, 5) Me.txt郵便番号 = .Cells(rtnNo, 6) Me.txt住所 = .Cells(rtnNo, 7) Me.txt電話番号1 = .Cells(rtnNo, 8) Me.txt電話番号2 = .Cells(rtnNo, 9) Me.txt携帯番号 = .Cells(rtnNo, 10) End With End If End Sub Private Sub cmd登録_Click() Dim wRow As Long If Me.txt顧客番号 = "" Then MsgBox "顧客番号を入力してください。", vbExclamation + vbOKOnly, "入力エラー" Exit Sub End If If Me.txt顧客名 = "" Then MsgBox "顧客名を入力してください。", vbExclamation + vbOKOnly, "入力エラー" Exit Sub End If With Worksheets("顧客情報") wRow = .Range("A" & Rows.Count).End(xlUp).Row + 1 .Cells(wRow, 1) = Me.txt顧客番号 .Cells(wRow, 2) = Me.txt顧客名 .Cells(wRow, 3) = Me.txt生年月日 .Cells(wRow, 4) = Me.txt年齢 .Cells(wRow, 5) = Me.txt性別 .Cells(wRow, 6) = Me.txt郵便番号 .Cells(wRow, 7) = Me.txt住所 .Cells(wRow, 8) = Me.txt電話番号1 .Cells(wRow, 9) = Me.txt電話番号2 .Cells(wRow, 10) = Me.txt携帯番号 End With Unload Me End Sub エクセルのマクロを設定しました。 登録時ここでエラーがでてしまうのですがなぜでしょうか? Cells(wRow, 10) = Me.txt携帯番号 Cells(wRow, 10) = Me.txt携帯番号ここの部分を消し 登録してみると登録ができるのですが・・・ わからなくなり書き込みました 宜しくお願いします

  • エクセルVBAでの繰り返し処理について

    1行目には1ヶ月分の日付がはいっています。 2行目にはWEEKDAY関数で1行目の日付の曜日をいれています。 3行目に月曜日(WEEKDAY関数では2)なら公休日の"公"と表示したいのですがどのようにしたらよいでしょうか? Sub 公休日() If Range("A2").Value = 2 Then Range("A3").Value = "公" End If End Sub このような作業を繰り返すにはどうすればよいでしょうか? 補足として、エクセル2007を使用しています。 3行目には数字を入力するためIF関数を使うことができません。

  • Accessフォームでの複数条件検索

    検索用テキストが4つとコンボボックスが1つあり、検索ボタンというコマンドボタンを押すと 該当するレコードを表示させるフォームを作りました。 以下がそのVBAです。 Private sub 検索ボタン_click() Dim strfilter As String, strexp As String, aryope As Variant If Not IsNull (me.一) Then strfilter = "And 出版社 Like '*" & Me.一 & "*'" End If If Not IsNull (me.コンボ62) Then strfilter = "And 種類 Like '*" & Me.コンボ62 & "*'" End If If Not IsNull (me.三) Then strfilter = "And 番号 Like '*" & Me.三 & "*'" End If If Not IsNull (me.四) Then strfilter = "And 発刊日 = # " & Format (me.四. "yyyy-mm-dd") & "#" End If If Not IsNull (me.一) Then strfilter = strfilter & " AND " & BuildCritera ( "タイトル", dbText, "*" Replace ( me.五, "", "*AND*") & "*") End If 改正したいことは   1. 検索用テキストボックスに入力された値全てを満たすレコードを表示したい(現在は例えば     出版社、タイトル、番号の3つを入力するとそれぞれの項目にヒットする物がすべて検出さ     れる)   2. テキストボックス[三]の番号は完全一致で抽出したい(26を抽出したいのに126や2673     等も抽出されてしまう)   3. テキストボックス[四]の発刊日は西暦表示から和暦で入力して検索したい     (テキストボックス[四]をコンボボックスに変え、西暦・和暦両方表示にし、[四A]を追加して     月日という名前にしてこれら年月日をくっつけて完全一致で検索する方法を考えましたが     記述がわかりません)   5.タイトルがWeb検索の様に複数曖昧検索ができない     中途半端な検索で抽出してる状態です。     どなたか手直しいただけますでしょうか?