私は、1つのAccessデータベースから別の国の別のデータベースにデータ(単一レコード)をエクスポートするのが好きです。私は、電子メールごとにINSERT INTOステートメントを含むテキストファイルを送信し、受信側PCはこれらのINSERT INTOステートメントを実行するという考えがあります。私はすでにこれらのテキストファイルでINSERT INTOステートメントを読み込んで実行するコードを書きました。MS-AccessでINSERT INTOステートメントを生成
もちろん、INSERT INTO文を生成する必要があります。
ここは例です。
私は、次の表を持っている:
Table1
Id number
PersonName text
DoB date, can be empty
NumberOfChildern number, can be empty
は、私はこのようなデータを選択します。
SELECT Id, PersonName, DoB, NumberOfChildern FROM Table1;
私は何を生成したいことは、このような文です:すべての場合
INSERT INTO Table1 (Id, PersonName, DoB, NumberOfChildern) VALUES (1, ‘Peter’, #5-17-1990#, 1)
フィールドは常に埋め込まれているので、コードを一度書くことができます。それだけです。ただし、2つのフィールドにデータが含まれている場合や、データが含まれていない場合は問題があります。この文の4つの異なるバージョンがすでに存在しているNULL値が含まれており、多くのフィールドで、それはより多くなるとできるだけで2つのフィールドを持つ
INSERT INTO Table1 (Id, PersonName, DoB, NumberOfChildern) VALUES (1, ‘Peter’, #5-17-1990#, 1)
INSERT INTO Table1 (Id, PersonName, NumberOfChildern) VALUES (1, ‘Peter’, 1)
INSERT INTO Table1 (Id, PersonName, DoB) VALUES (1, ‘Peter’, #5-17-1990#)
INSERT INTO Table1 (Id, PersonName) VALUES (1, ‘Peter’)
:ここ
は、上記の文のいくつかの類似しているが、異なるバージョンです複雑(実際には複雑ではないが仕事が多い)。
私は、どの種類のフィールドが使用されているか(つまり日付)をチェックして上記のような文を生成するために、エクスポートするレコードとテーブルを分析するVBAでコードを書くことを考えます。 私はこれを行うことができると確信していますが、多分他の人がこれを前にしたのだろうかと思います。 私は車輪を再発明したくありません。 しかし、 "SQL insert文を生成する"の検索は本当に効率的ではありません。
アイデア?
ワウ!それは私の幸運な日です。私はちょうど試してコピーし、NULL値で作成されたSQLステートメントを貼り付け、それは正常に動作します。 INSERT INTO Table1(Id、PersonName、DoB、NumberOfChildern)VALUES(3、 'Edgar'、NULL、NULL);これは、 – Edgar