2017-12-14 19 views
0

こんにちは、現在、提供されている行を使用して、データベースにフォームに入力されたいくつかの値を追加しようとしています。フォーム上のボタンを使用してMicrosoft Accessデータベースに値を挿入する

Private Sub btnInsert_Click() 
    DoCmd.RunSQL "INSERT INTO Band (BandID, BandName, BandAddress, ContactName, PhoneNumber)" 
End Sub 

3431ランタイムエラーが発生しました。私はここでうんざりしていますか?

+0

あなたはそれをgoogledした後何がエラーですか? INSERTステートメントの形式に関してどのような研究を行っていますか? – nicomp

+0

私は他のstackoverflowの投稿を見て、エラーは、おそらくDoCmd.RunSQLセクションのどこかに位置していることが判明しました。これは、これがシンタックスに焦点を当てていて、構文を残そうとしています... – Jonhalo

+0

いいえ、それはそうじゃない。あなたの問題はRunSQLではありません。とにかく、アクセスコードにはありません。 – nicomp

答えて

0

自動インクリメントフィールドを含める必要はありません。しかし、すべてのフィールド値を挿入しない場合は、フィールドを指定する必要があります。

INSERT INTO Band (fieldName1, fieldName2, fieldName3) 
VALUES (1, 'DEF', 'ABC') 

オルタナティブ:Accessで

sql ="INSERT INTO Band (fieldName1, fieldName2, fieldName3) " & _ 
"VALUES (1, 'DEF', 'ABC') " & _ 
" 
currentDb.execute sql 
1

「値」という用語を使用する必要があります。あなたはすべてのフィールドが含まれている場合

:あなたはすべてのフィールドを追加していない場合

INSERT INTO Band Values BandID, BandName, BandAddress, ContactName, PhoneNumber 

は、

INSERT INTO Band (BandID, BandName, BandAddress) 
VALUES (1, 'blah', 'blahblah') 

最初のフィールドを指定し、私はあなたの場合はIDフィールドを追加する必要はないと思います自動増分IDです。

0

、フォームは、テーブルへの最高の結合している - そして、その後必要に応じて何の追加クエリはありません。それをフォームに入力すると、テーブルに入ります。

バインドされていないフォームを持つ魅力的な理由がある場合、事態はさらに複雑になり、まずレコードセットとして存在するようにこれらの値をSelect Queryに設定する必要があります。それをあなたのAppendクエリの出発点として使用してください....しかし、私が言ったように - これは一般的に行く方法ではありません.....

関連する問題