INSERT INTO ステートメントに認識できないフィールド

このQ&Aのポイント
  • 下記のコードで「監督費」のフィールドを追加しようとしていますが、エラーメッセージが表示されてしまいます。
  • テーブルT物件情報とT共同受注には「監督費」フィールドは存在します。
  • INSERT INTO ステートメントに認識できないフィールド <フィールド名> があります。正しい名前を入力したかを確認して、もう一度操作してください。(Error 3127)
回答を見る
  • ベストアンサー

INSERT INTO ステートメントに認識できないフィールド

助けてください 下記のコードなのですが、新たに「監督費」のフィールドを追加したいのですが、認識してくれません 「INSERT INTO ステートメントに認識できないフィールド <フィールド名> があります。正しい名前を入力したかを確認して、もう一度操作してください。(Error 3127)」 とエラーメッセージが出てしまいます 何が原因なのかわかりません テーブルT物件情報とT共同受注には「監督費」フィールドは存在します cond = "NZ(B.結果,0) = 0 AND B.確度 IN ('B') AND " & _ "FORMAT(B.発注予定時期,""YYYY/MM"") " & _ "BETWEEN '" & 年月1 & "' AND '" & 年月3 & "' " Set db = CurrentDb Set qr = db.QueryDefs("QS_EIGYO_BC") qr.sql = "SELECT J.部署コード, FORMAT(B.発注予定時期,""YYYY/MM"") AS 年月, B.確度, " & _ "CCUR(NZ(J.受注金額,0)) AS 金額, CCUR(NZ(J.粗利,0)) AS 粗利, CCUR(NZ(J.監督費,0)) AS 監督費 " & _ "FROM T共同受注 AS J " & _ "INNER JOIN T物件情報 AS B ON J.物件番号 = B.物件番号 " & _ "WHERE " & cond & " " & _ "UNION ALL " & _ "SELECT E.部署コード, FORMAT(B.発注予定時期,""YYYY/MM"") AS 年月, B.確度, " & _ "CCUR(NZ(B.受注金額,0)) AS 金額, CCUR(NZ(B.粗利,0)) AS 粗利, CCUR(NZ(B.監督費,0)) AS 監督費 " & _ "FROM T物件情報 AS B " & _ "INNER JOIN Q部署担当者 AS E " & _ "ON B.責任者コード = E.担当者コード " & _ "WHERE " & cond & " AND " & _ "B.物件番号 NOT IN (SELECT 物件番号 FROM T共同受注)" DoCmd.SetWarnings False DoCmd.RunSQL "DELETE * FROM __B;" '下記でエラー DoCmd.RunSQL "INSERT INTO __B SELECT * FROM QS_EIGYO_BC" DoCmd.SetWarnings True

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

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.1

細かい検証はしていませんが、気になる点。 >DoCmd.RunSQL "INSERT INTO __B SELECT * FROM QS_EIGYO_BC" __B と言うテーブルに「監督費」フィールドはありますか? なければ追加してください。 上記で解決しない場合、下記を補足して下さい。 使用しているソフト名とバージョン 各テーブルの詳細(テーブル名、フィールド名、データ型の一覧) 「Q部署担当者」というクエリ?の内容(SQL文)

msaitou
質問者

お礼

>__B と言うテーブルに「監督費」フィールドはありますか? >なければ追加してください。 上記の通りでした __Bというテーブルが隠しオブジェクトになっていて、見つけられなかったのが原因でした。。 有難うございました

関連するQ&A

  • ソートできません

    condと年月1の二つの変数を使用してソートしたいのですが出来ません 年月1は出来るのですが、condが出来ないのです rss("請負1") = NZ(DSum("金額", "__B", cond & " AND 年月 = '" & 年月1 & "'"), 0) cond、年月1ともにString型です

  • ACCESSで、DMax関数の条件の書き方

    ACCESS2002を使用しています。 自動的に連番を採番するコードを書きましたが、DMax関数でうまく最大値を取得できません。 条件式がうまく書けていないと思うのですが、どうぞお知恵をお貸しください。 テーブル[t_受注]にあるフィールド[受注コード]は、「yyyymm000」のように9桁表示です。 「yyyymm」の部分は現在の年月から取得し、「000」の部分は年月ごとに001~連番を採番しています。 しかし年月が変わるとうまく最大値を取得できず、次のように連番が採番されてしまいました。 [受注コード] 200705001 200705002 200705003 200705004 200706001 200706005(本当は200706002と自動採番したいのです) 最大値(MaxID)取得するコードはこのように書いております。 よろしくお願いします。 ------------------------------------------------------------------------------------------- Dim NowYearMonth As String Dim MaxYearMonth As String Dim MaxID As String NowYearMonth = Format(Date, "yyyymm") MaxYearMonth = Nz(DMax("Mid$([受注コード],1,6)", "t_受注"), "") MaxID = Nz(DMax("Mid$([受注コード],7,3)", "t_受注"), "NowYearMonth=MaxYearMonth") -------------------------------------------------------------------------------------------

  • 6人分の物件表を1つのbookに自動的にまとめたい

    エクセルで作られた5人分の物件表(商品名、売値、原価、確度が入力されている)があります。この5つのbookを自動的にひとつのbook(5人分のデータが入ったbook)にまとめたいのですが、どうしたらよいかわかりません。 全体の物件表には既にデータがかなりの行数入っています。 1行目から50行目までは(1)さん、(2)さん、(3)さん、(4)さん、(5)さんの確度A(受注確実)の物件が、51行目から100行目まではそれぞれの人達の確度B (ほぼ受注確実)の物件、それ以降の行には確度C,D,Eの物件が入っています。 5人それぞれの物件表と、全体の物件表のフォーマットはまったく一緒です。 まだ、マクロはほんの少ししか使えません。 どうしたらよいのかまったくわからないので、どなたかいい方法がわかる方がいたら教えてください。お願いします。 この説明がわかりづらければ補足説明しますので、ご質問ください。

  • access一部のフィールドを他のテーブルへVBA

    先日 https://okwave.jp/qa/q10245651.html において > table2の新しいデータとして > table1のデータをコピーしたい、 単に追加で ということであれば、という 御回答: Sub Test() Dim StrSQL As String StrSQL = "INSERT INTO table2 SELECT table1.* FROM table1;" DoCmd.SetWarnings False DoCmd.RunSQL StrSQL DoCmd.SetWarnings True End Sub ---------------------- 上記の 回答をいただき うまく稼働しました 部分的にフィールドを別テーブルに 移動するとき ここでは table1のフィールド名 IDに table2のフィールド名 bに 入っている数値 にい 1を加えた数値を 移動したいのですが Public Function Test() Dim tb1 As Table Dim tb2 As Table tb1 = table1 tb2 = table2 Dim strSQL As String strSQL = "INSERT INTO table2![ID]SELECT"("[b]"FROM tablel)+1" (table1のフィールド[b]の数値に1を加えた数値を table2のフィールド[ID]に移行する、というつもりです) DoCmd.SetWarnings False DoCmd.RunSQL strSQL DoCmd.SetWarnings True End Function 稼働しません すみません 宜しくお願い致します (ついでながら ここで でてくるb というのは テーブル table3 の IDの総和 すなわち SELECT Count(table3.ID) AS b FROM table3; 要は table3の最後のレコードの次のレコードの 番号の数値を table2のIDに移動したい というわけであります) (いずれのIDや bについても 数値型 長整数型 重複あり です)

  • Access SQLについて

    下記の式で実行するとクエリ式’Format((NZ([フロントNG]))/(NZ([後確NG])+NZ([エントリー後NG])+NZ([アンテナ後確NG])+(NZ([フロントNG])+NZ([決裁者NG])+NZ([アンテナNG])+NZ([検討NG])+NZ([対象回線済NG])+NZ([NG])),"0%") AS フロントNG率 FROM t_エクセル貼り付け; の構文エラー:演算子がありません。 というエラーが出ます。 SELECT t_エクセル貼り付け.地域, Format((NZ([フロントNG]))/(NZ([後確NG])+NZ([エントリー後NG])+NZ([アンテナ後確NG])+(NZ([フロントNG])+NZ([決裁者NG])+NZ([アンテナNG])+NZ([検討NG])+NZ([対象回線済NG])+NZ([NG])),"0%") AS フロントNG率 FROM t_エクセル貼り付け; アラビア数字使ってないですし、フィールド名も[]ついています。 なにかおかしいところありますか??

  • ACCESS2000 合計の表示がおかしい

    毎日の売上と仕入れの金額をそれぞれ合計して出したいのですが、 サンプル仕入れなどで0円の売上がある日の合計が正しく表示されず、 例えば0円の売上が4つと100円の売上が1つの場合、 400円と表示されます。 仕入れに関しても同様です。 どうすれば正しく表示されるようになるのか教えてください。 以下はソースです。 SELECT T受注伝票.受注日 , Sum(T受注伝票.税込金額計) AS 合計 , T発注伝票.発注日 , Sum(T発注伝票.税込金額計) AS 合計1 FROM T受注伝票 INNER JOIN T発注伝票 ON T受注伝票.受注日 = T発注伝票.発注日 GROUP BY T受注伝票.受注日 , T発注伝票.発注日 HAVING   ((T受注伝票.受注日) Between [FROM] And [TO]) AND   ((T発注伝票.発注日) Between [FROM] And [TO])) ORDER BY    T受注伝票.受注日    , T発注伝票.発注日;

  • INSERT INTOステートメント構文エラー

    はじめまして。 急遽VB6.0、Accessで開発を行うことになりまして、小さなアプリを練習がてら作成したのですが、上記エラーが出てしまい、困っています。当方まったくの初心者で本を片手にコーディングしております。。 機能:CSVからデータを取り出して、DBにINSERTする コード Private cn As New ADODB.Connection Private Rs As New ADODB.Recordset Private Sub フォームフッター_Click() End Sub Private Sub トグル27_Click() Dim filPath As String ' [ファイルを開く]ダイアログ WizHook.Key = 51488399 damy = WizHook.GetFileName(0, "", "", "", filPath, "", "すべてのファイル (*.*)|*.*", 0, 0, 0, True) Me!fp = filPath WizHook.Key = 0 End Sub Private Sub トグル28_Click() Set cn = CurrentProject.Connection Open Me!fp For Input As #1 Dim varData As Variant Dim buf As String Dim a As String Dim b As String Dim c As String Do Until EOF(1) Line Input #1, buf varData = Split(buf, ",", , vbTextCompare) Dim mySql As String a = varData(0) b = varData(1) c = varData(2) MsgBox a MsgBox b MsgBox c mySql = "INSERT INTO COUNT(f,s,t) VALUES ('" & a & "','" & b & "','" & c & "')" Debug.Print mySql cn.Execute (mySql) MsgBox "更新されました。" Loop Close #1 cn.Close End Sub テーブル: フィールド名 f,s,t すべてテキスト型 イミディエイトウィンドウ表示内容:INSERT INTO COUNT(f,s,t) VALUES ('1','2','3') 恐れ入りますが、ご教授いただければ幸いです。 よろしくお願いします!

  • INSERT INTOステートメント構文エラーにつ

    初めましてご教授よろしくお願いします。 ■環境 office365(ExcelとAccess) INSERT INTOステートメント構文エラーについての質問です。 著:今村ゆうこさんの『Excel&Access連携 実践ガイド』を読みながら現在作業を しています。 やりたいことはExcelのデータをaccessに書き込むことです。 エラー内容は「INSERT INTO ステートメントの構文エラーです。」と表示されます。 しかし、何度も見直して見ましたが、どこがエラーの原因かわかりません。 VBAは基本的部分が分かる程度で、現在勉強中です。 正直手詰まりといった感じで何を修正すれば良いかわからないというのが現状でこちらに質問させていただきました。 皆様の知恵を貸してください。どうかよろしくお願い致します。 ▼Excelデータ Product Name / Merchant SKU / ASIN / Condition / qty ○○(商品名) / テキスト / テキスト / テキスト / 個数 strSQL = _ "INSERT INTO テーブル(" & _ "Product Name, " & _ "Merchant SKU, " & _ "ASIN, " & _ "Condition, " & _ "qty) " & _ "VALUES(" & _ "'" & Cells(n, 1) & "', " & _ "'" & Cells(n, 2) & "', " & _ "'" & Cells(n, 3) & "', " & _ "'" & Cells(n, 4) & "', " & _ Cells(n, 5) & ");" ▼書籍に記載のあった例(添付CDのデータを丸々コピペしています) strSQL = _ "INSERT INTO 販売管理(" & _ "商品コード, " & _ "商品名, " & _ "売上日, " & _ "数量, " & _ "売価, " & _ "製造場所, " & _ "定価, " & _ "原価, " & _ "取引先, " & _ "営業所, " & _ "社員名) " & _ "VALUES(" & _ "'" & Cells(n, 1) & "', " & _ "'" & Cells(n, 2) & "', " & _ "#" & CDate(Cells(n, 3)) & "#, " & _ Cells(n, 4) & ", " & _ Cells(n, 5) & ", " & _ "'" & Cells(n, 6) & "', " & _ Cells(n, 7) & ", " & _ Cells(n, 8) & ", " & _ "'" & Cells(n, 9) & "', " & _ "'" & Cells(n, 10) & "', " & _ "'" & Cells(n, 11) & "');" ▼全体の文 Option Explicit '変数の宣言を強制する '---ACCESS接続用 Private adoCn As Object 'ADOコネクションオブジェクト Private adoRs As Object 'ADOレコードセットオブジェクト Private strSQL As String 'SQL文 Sub DBconnect(flg As Boolean) 'DB接続プロシージャ Dim DBpath As String DBpath = ThisWorkbook.Path Set adoCn = CreateObject("ADODB.Connection") 'ADOコネクションオブジェクトを作成 If flg = True Then Set adoRs = CreateObject("ADODB.Recordset") 'ADOレコードセットオブジェクトを作成 adoCn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=" & DBpath & "\SampleData.accdb;" 'Accessファイルを開く End Sub Sub DBcut_off(flg As Boolean) 'DB切断プロシージャ If flg = True Then adoRs.Close 'レコードセットのクローズ adoCn.Close 'コネクションのクローズ Set adoRs = Nothing 'オブジェクトの破棄 Set adoCn = Nothing End Sub Sub DBinsert_all() 'DB一括書込 Dim start_i As Long, end_i As Long, n As Long If MsgBox("一括書込を実行しようとしています。続けますか?", vbOKCancel) <> 1 Then 'メッセージ Exit Sub 'OK以外なら終了 End If If MsgBox( _ "Accessの「販売管理」テーブルのデータを一度削除し、" & vbCrLf & _ "現在このシートにある情報のみが書き込まれます。" & vbCrLf & _ vbCrLf & _ "実行してよろしいですか?", vbOKCancel + vbExclamation, "一括書込み") <> 1 Then 'メッセージ Exit Sub 'OK以外なら終了 End If start_i = 2 'スタート行 end_i = Range("A1").End(xlDown).Row '最終行を取得 Call DBconnect(False) 'DB接続 On Error GoTo Err_Handler 'エラーが起きたら"Err_Handler"へ adoCn.BeginTrans 'トランザクション開始 strSQL = "DELETE FROM 販売管理;" 'テーブル内データを全削除 adoCn.Execute strSQL '削除実行 For n = start_i To end_i 'データのある行を繰り返す strSQL = _ adoCn.Execute strSQL '書込実行 Next n adoCn.CommitTrans 'トランザクション終了(確定処理) Call DBcut_off(False) 'DB切断 MsgBox "正常に完了しました" Exit Sub

    • ベストアンサー
    • MySQL
  • INSERT INTOステートメント構文エラー

    VB.NET2003+Access2000でデータベース開発中です。 サブフォームを使ってデータグリッドのデータを編集することができるように INSERT、DELETE、UPDATE各コマンドを作成しようとしていたら、 表記ADOエラーが出て次に進めません。 INSERT INTO [編集対象テーブル名]       (列名1,列名2,・・・・) VALUES (?,?,?,?,?・・・・) というサンプルSQLですが、構文エラーって何か記述が抜けているんでしょうか? クエリビルダから「値の挿入」を選んでできたSQLなんですけれど。 解説書を見てもぴったりのコメントがないもので、どうかよろしくお願いいたします。

  • INSERT INTOに関しまして。

    $sql = "INSERT INTO テーブル名(name,day,kg)VALUES('','$day','-1')"; 現在このようなSQL文でINSERTしていますが、データベース内にあるカラムname全てに対してINSERTするにはどうすれば良いでしょうか??現在のSQL文ではそれができず、nameが空欄の状態で更新されてしまいます。

    • ベストアンサー
    • PHP