アクセス2010でコンパイルエラーが出てしまいます

このQ&Aのポイント
  • Access 2010でデータ重複チェックのコードにエラーが発生しています。
  • エラーメッセージには不正な文字と修正候補が表示されています。
  • 初心者向けにわかりやすい回答をお待ちしています。
回答を見る
  • ベストアンサー

アクセス2010でコンパイルエラーが出てしまいます

顧客情報の入力時に重複データをチェックする為の以下のコードにエラーが出てしまいました。 strSQL = "Select*From 顧客情報 "&_ "Where 氏名 ='"& strName &"' "&_ "And 住所='"& strAddress &"' "&_ "And 電話番号_1_='"& strTelNo &"' " >strSQL = "Select*From 顧客情報 "&_ コンパイルエラー:不正な文字です。 >"Where 氏名 ='"& strName &"' "&_ >"And 住所='"& strAddress &"' "&_ >"And 電話番号_1_='"& strTelNo &"' " コンパイルエラー:修正候補:行番号または行ラベルまたはステートメントまたはステートメントの最後 Accessがほとんどわからないので、ネットで調べたところ コードまるまる記載されているのがあったので、同じように入力していきましたら 上記のようなエラーが出てしまいました;; これだけでは、わからないという事でしたらおっしゃってください。 お手数掛けますが、よろしくお願いいたします。 (初心者なのでわかりやすい回答ですと助かります...)

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

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

すこし変更してみましたが、 strSQL = "Select * From 顧客情報 " & _ "Where 氏名 ='" & strName & "' " & _ "And 住所='" & strAddress & "' " & _ "And 電話番号_1_='" & strTelNo & "' " ではどうですか?

NaaaaaaaN
質問者

お礼

ありがとうございます!! 問題なくできました、助かりました*

関連するQ&A

  • Access2007 コンパイルエラーについて

    お世話になっております。 Access2003で問題なく使っていたプログラムを2007用accdbに変換して2007で動かしたところ、コンパイルエラーが出るようになりました。 エラー表示 コンパイルエラー:メソッドまたはデータ メンバが見つかりません。 コードは以下のとおりで(抜粋)、.Edit部分が反転します。 簡単なVBAはわかりますが、今回のエラーは何が原因かわかりませんので、ご教授いただければ幸いです。 よろしくお願いいたします。 Private Sub 元に戻す1_Click() Dim dbs As Database Dim rst1 As Recordset Dim rst2 As Recordset Dim strSQL As String Dim lngTmpVol As Long Dim lngSubVol As Long DoCmd.RunCommand acCmdSaveRecord Set dbs = CurrentDb '売上構成テーブルから画面上のb伝票コードのレコードセットを開く strSQL = "SELECT bbコード, 数量 FROM 売上構成 " & _ "WHERE b伝票コード = " & Me!b伝票コード & _ " ORDER BY 売上構成コード DESC" Set rst1 = dbs.OpenRecordset(strSQL) '売上構成の読み込みループ Do Until rst1.EOF 'カレントレコードの数量を変数に保存 lngTmpVol = rst1!数量 'カレントレコードのbbコードと画面上の社員コードで出庫履歴のレコードセットを開く strSQL = "SELECT 出庫数量, 確定数量, 返却数量 FROM 出庫履歴 " & _ "WHERE bbコード = " & rst1!bbコード & " AND 社員コード = " & Me!社員コード & _ " ORDER BY 出庫日 DESC, 出庫コード DESC" Set rst2 = dbs.OpenRecordset(strSQL) With rst2 If .RecordCount > 0 Then '出庫履歴の読み込みループ Do Until .EOF .Edit If Nz(!確定数量) >= lngTmpVol Then '数量すべてを確定数量から減算できるとき '減算後の数量を取得 lngSubVol = Nz(!確定数量) - lngTmpVol !確定数量 = IIf(lngSubVol <> 0, lngSubVol, Null) lngTmpVol = 0 Else '数量すべては確定数量から減算できないとき lngTmpVol = lngTmpVol - Nz(!確定数量) !確定数量 = Null End If .Update 'すべてを割り当てたらループを抜ける If lngTmpVol <= 0 Then Exit Do .MoveNext Loop End If .Close End With rst1.MoveNext Loop rst1.Close End Sub

  • Accessで

    以下のようなSQLの結果に、なぜか"々"が含まれている佐々木や奈々子なども抽出されます。"々"が含まれないようにするにはどのようなSQLにしたら良いのでしょうか?宜しくお願いします。 SELECT [T_顧客情報].[氏名] FROM [T_顧客情報] WHERE ((([T_顧客情報].[氏名]) Like "*ー*")); 動作環境 Access2003 SP1 WindousXP HomeEdition SP2

  • ACCESSのインポートエラーファイルをまとめて削除したい。

    ACCESSでインポートする度エラーファイルが自動で作成されます。 エラーの原因は問題ないので、無視して繰り返しインポートしています。 あとで、まとめてエラーファイルをVBAで削除したいのですが、名称に $ またはブランクがあるからなのか 「DROP TABLE または DROP INDEX ステートメントの構文エラーです。」になります。 下記、記述のVBAでファイル名を他の名前にすると削除できるのですが、自動で割当てられる名称だとエラーがでます。 エラーファイルだけまとめて削除する方法、またはエラーファイル自体を作成しない方法はあるのでしょうか。宜しくお願い致します。 VBA初心者なので宜しくお願いいたします。 <例> 3つのエラーファイル 東京$_インポート エラー 東京$_インポート エラー1 東京$_インポート エラー2 <VBAの一部> strSQL = "SELECT Name" & _ " FROM MSysObjects" & _ " WHERE Type=1 AND Name Like 'インポート%'" rst.Open strSQL, cn, adOpenKeyset, adLockPessimistic Do Until rst.EOF = True strSQL = "DROP TABLE " & rst("Name") cn.Execute strSQL rst.MoveNext Loop

  • ACCESS VBAの実行時エラーなんですが

    クエリ式’(・・・)’の構文エラー:演算子がありません。 とエラーがでます。 ’(・・・)’の中身は↓ (T_KYORI.02オン1= '0101' and T_KYORI.03オン2= '160' and T_KYORI.15区間距離= '1274' ) です。 お気ずき、の点がありましたら、アドバイスください。 なお、実際の文は strSql = " SELECT T_KYORI.* FROM T_KYORI " & _ " WHERE ( T_KYORI.02オン1= '0101' and T_KYORI.03オン2= '160' and T_KYORI.15区間距離= '1274' );" Set inrec1 = CurrentDb.OpenRecordset(strSql) です よろしくおねがいします

  • SQLエラーについて

    ora-00907エラー:右かっこがありませんが出ます。なぜでしょうか?? strSQL = strSQL + "select K.Hiduke 日付,S.Syouhinmei 商品名,S.Tanka 単価,K.Suryou 数量,(S.Tanka * K.Suryou) 金額"; strSQL = strSQL + " from SyohinHyo S,Kounyurireki K"; strSQL = strSQL + " where K.Syouhinbangou = S.Syouhinbangou and K.Hiduke"; strSQL = strSQL + " between to_date(" + comboBox1 +",'YYYY-MM-DD') and "; strSQL = strSQL + " to_date(" + comboBox2 + ",'YYYY-MM-DD')";

  • SQL文のWHERE句でエラー

    Access2000のMDBをADOで読み込もうとしていますが、WHERE句を指定すると例外が発生します。 strSQL = "SELECT * FROM Q住所録 ORDER BY [カナ]"; strWhere = "([カナ] Like \'ア*\')"; strSQL += " WHERE " + strWhere; ウォッチウィンドウでstrSQLを確認すると {"SELECT * FROM Q住所録 ORDER BY [カナ] WHERE ([カナ] Like 'ア*')"} とちゃんとなっていますが、 varTName = _T(strSQL); hr = pRs.CreateInstance( __uuidof( Recordset)); pRs->Open( varTName, _variant_t((IDispatch *)pdb), adOpenDynamic, adLockReadOnly, dCmdUnknown); でオープンすると例外が出ます。 エラーの内容は IDispatch error #3092 となっています。 WHRERE句をしていなければ全レコードがちゃんと表示されます。 WHERE句は使えないんでしょうか。 Filterプロパティの使い方もよくわかりません。 レコードの抽出の方法を教えてください。

  • ACCESS2007 VBA 「INSERT INTO~」について

    ACCESS2007を使用しています。 VBAにて、下記の内容を記述しています。(前後は略しています) 特にエラーも出ていなくて、最後まできちんと実行されるのですが、顧客マスタにデータが追加されません。 strSQL = "INSERT INTO 顧客マスタ(得意先ID,得意先名,得意先名カナ,郵便番号,住所,電話番号,FAX番号) " & _ "VALUES(" & tID & ",'" & rs!顧客名 & "','" & rs!カナ & "','" & rs!郵便番号 & "','" & rs!住所 & "','" & rs!電話番号 & "','" & rs!FAX & "');" db.Execute strSQL イミディエイトウィンドウで、strSQLの内容を表示してみたら、下記のようになりました。 特におかしな所もなく、テーブル名も正しいです。 INSERT INTO 顧客マスタ(得意先ID,得意先名,得意先名カナ,郵便番号,住所,電話番号,FAX番号) VALUES(9265,'テスト顧客','テスト','5555555','テスト住所','111-111-1111','222-222-2222'); その他にも、「INSERT INTO~」を使ってテーブルにデータを追加していますが、それはちゃんと追加されていて、なぜか顧客マスタのみ追加されません。 エラーも出ないので解決できなくて困っています。 よろしくお願いします。

  • access2000の構文エラー

    みなさんこんにちは。access2000で会社の住所録を作っているんですが、vbaでプログラムを作っているときにどうしても分からない構文エラーがでるので教えてください・・・ 以下の & "ORDER BY 姓カナ,名カナ;" がどうしてもひっかかります。 ちなみに全体は下です。 よろしくお願い致します。 '概要:サブフォームに個人リストを表示する Private Sub SetSubIndividual() Dim strSql As String Dim frm As Form_個人情報入力 Set frm = Form_個人情報入力 If IsNull(frm.TXT姓カナ) Then Exit Sub strSql = "SELECT 個人ID AS 番号, [姓] & ' ' & [名] & '(' & [姓カナ] & ' ' & [名カナ] & ')' AS 名前 " _ & "FROM 個人情報 " _ & "WHERE 姓カナ Like '" & frm.TXT姓カナ & "*' " & "ORDER BY 姓カナ,名カナ;" frm.FRM名簿SUB.Form.RecordSource = strSql frm.FRM名簿SUB.Requery frm.GRP選択 = fncGetHeader(frm.TXT姓カナ) End Sub

  • accessのvbaでの実行時エラーについて

    いつもお世話になっております。 Accessのvbaで下記のコードを実行して、データを 取得したいのですが、OpenRecordsetのところで 「実行時エラー'3615' 式で型が一致しません。」 というエラーがでてしまいます。 ーーーーーーーーーーーーーーーーーーーーーーー Dim db As Database Dim Rec As Recordset Dim strSql As String strSql = "SELECT 入金日 FROM 入金チェック WHERE ID IN(SELECT ID FROM 入居者管理 WHERE 物件名 = '" &  strBukken & "')" Set db = CurrentDb() Set Rec = db.OpenRecordset(strSql) ーーーーーーーーーーーーーーーーーーーーーーー 副問合せのしかたがまずいのか、 どうもよくわかりません。 お手数ですが、お分かりの方がおられましたら ご教示お願いいたします。

  • Access2000でレコードの重複チェックをするとエラーに

    ボタンをクリックすると、「品名」「色番」「ロット」「枝番」「巾」の重複が無いかチェックして、重複があればエラーテキストを表示させたいのです。 下記のコードで動かすと、 「エラー'91':オブジェクト変数またはWithブロック変数が設定されていません」と出ます。 どこが問題でしょうか? 教えて頂けると幸いです。 Private Sub 重複チェックボタン_Click() Dim Rs As ADODB.Recordset Dim strSQL As String strSQL = "" strSQL = strSQL & " Select * From 変更ロットテーブル " strSQL = strSQL & " Where 品名 = '" & Forms!変更ロット入力チェックフォーム!品名 & "'" strSQL = strSQL & " And 色番 = '" & Forms!変更ロット入力チェックフォーム!色番 & "'" strSQL = strSQL & " And ロット = '" & Forms!変更ロット入力チェックフォーム!ロット & "'" strSQL = strSQL & " And 枝番 = '" & Forms!変更ロット入力チェックフォーム!枝番 & "'" strSQL = strSQL & " And 巾 = '" & Forms!変更ロット入力チェックフォーム!巾 & "'" Rs.Open strSQL, CurrentProject.Connection If Rs.EOF = False Then If MsgBox("重複ロットが存在します!", vbOKCancel) = vbOK Then Cancel = True End If End If End Sub

専門家に質問してみよう