2017-06-29 9 views
0

私はMS AccessとSQLが比較的新しいです。MS Access追加のSQL文

あるテーブルを別のテーブルに追加するクエリをアクセスデータベースに追加し、特定の列の昇順に並べ替えてから、一意の識別子を割り当てる目的で列を追加します。

クエリ自体がアクセスでうまく動作しますが、ボタンをクリックすると、フォームのVBAコードにこれを書きたいと思います。

アクセスのSQLビューは私に次のコードを与えますが、私のコードに記述すると、演算子が見つからないと言われています。誰でも提案できますか?

コード:クエリの保存

DoCmd.RunSQL ("INSERT INTO tblImport (CustomerAccount, OrderReference, OrderDate, DueDate, CustomerRef," & _ 
    "StockNo, OrderQuantity, AddressName, Add1, Add2, Add3, Town, County, PostCode, Country, ServiceLine)" & _ 
    "SELECT tblImport2.CustomerAccount, tblImport2.OrderReference, tblImport2.OrderDate, tblImport2.DueDate," & _ 
    "tblImport2.CustomerRef, tblImport2.StockNo, tblImport2.OrderQuantity, tblImport2.AddressName, tblImport2.Add1," & _ 
    "tblImport2.Add2, tblImport2.Add3, tblImport2.Town, tblImport2.County, tblImport2.PostCode, tblImport2.Country," & _ 
    "tblImport2.ServiceLine" & _ 
    "FROM tblImport2" & _ 
    "ORDER BY tblImport2.OrderReference") 
+0

エラーを表示している 'vba'コードを表示できますか?表示されている 'SQL'はうまく見えますが、おそらくVBAに入れ替えた方法にエラーがあります – Dave

+0

少し長すぎます:) – Tim

+0

文法のエラーに基づいて、私は素早く推測しましたが、あなたの 'SQL'を設定する' vba'ステートメントを投稿しても、問題を特定するのに十分であるはずです(私の推測が正しいとは思わないと仮定して) – Dave

答えて

1

。そして、あなたは、コードからそれを呼び出すことができます。

CurrentDb.QueryDefs("NameOfYourAppendQuery").Execute 

またはクエリなし:

Dim Sql As String 

Sql = "<Your SQL string>" 
Debug.Print Sql  ' Check SQL. 
CurrentDb.Execute Sql 
+0

ありがとうGustav。私はフォームコードからクエリを実行する方法を知っている、私は実際にコードにクエリを書くことを望んでいた。私はこのフォームでいくつかのことを続けています。だから、私は何をリンクしているのか分からないように、dbのクエリの数を最小限に抑えたいと思っていました。 – Tim

+0

ああ。私は答えにそれを加えました。 – Gustav

+0

グスタフありがとう、私はそれを試みた、私の元のコードと同じ方法で失敗しています。クエリ式 'tblImport2.ServiceLine From tblImport2 Order by tblimport2.orderReference'に構文エラー(演算子がありません)があります。私がコンマやセミコロンなどを見つけていないように見えますが、私はあまり気にしていません。 – Tim

1

あなたはVBAに(あなたのクエリがここにあるように)複数行の文字列を指定することを知っている、あなたが参加する必要があります一緒にこのようなライン?さもなければVBAはそれが単一の文字列であることを知りません。

mySql = "INSERT INTO tblImport (CustomerAccount, OrderReference, OrderDate, DueDate, CustomerRef, StockNo, OrderQuantity, AddressName, Add1, Add2, Add3, Town, County, PostCode, Country, ServiceLine) " & _ 
"SELECT tblImport2.CustomerAccount, tblImport2.OrderReference, tblImport2.OrderDate, tblImport2.DueDate, tblImport2.CustomerRef, tblImport2.StockNo, tblImport2.OrderQuantity, tblImport2.AddressName, tblImport2.Add1, tblImport2.Add2, tblImport2.Add3, tblImport2.Town, tblImport2.County, tblImport2.PostCode, tblImport2.Country, " & _ 
"tblImport2.ServiceLine " & _ 
"FROM tblImport2 " & _ 
"ORDER BY tblImport2.OrderReference; " 
+0

これは正しいDaveです。私が最初に入れたコードはDoCmd.RunSQLなどでした。すべての行は "&_と次の行の開始"を終了します。私はアクセスをクエリを実行すると完全に実行されます。ここに添付ファイルを追加する方法はありませんか? – Tim

+0

いいえ、しかし、あなたは単にその文自体をコピーして質問の編集に貼り付けることができます。構文エラーは文が正しくないことを意味するので、文を見ることはそれを解決するのに必要です。 – Dave

+0

が完璧です。ここでそれをポップしようとしましたが、200の奇妙な文字で長すぎました:) – Tim