2009-06-12 4 views
1

私は2000lbの袋に入っていて、パレットに置かれた製品を扱っています。この製品が製造されるときには、さまざまな要素がテストされ、各テストには数値データが格納されます。テストの各レコードには、L20444などの数値が割り当てられます。VBAでのレコードのコピー

これで2000lbの袋を80本の20lb袋に変換することができました。 40枚の20ポンドの袋しか1パレットに収まらず、1パレットL20444を使用し、2枚のパレットをL20444にします。 L20444の番号は2つではなく、1つの倉庫の場所にのみ割り当てることができるため、在庫に問題が発生します。

私の上司は、ほぼ同じですが、第2パレットを倉庫に置くのに十分な数を作成するものを教えてください。 2番目のパレットはL20444Bになります。それはまだすべての同じテスト番号を持っており、元のL20444の "コピー"です。

私の質問は、レコードL20444を取って、そのレコードのすべてのデータをコピーし、L20444Bとして保存して倉庫に置くことができます。

VBAがレコードをコピーして名前を変更し、新しいレコードと同じデータベースに保存することは可能ですか?

ありがとうございます、ありがとうございます。

答えて

1

私はあなたが正しいと思えば、SQL文で新しいレコードを作成するように思えます。

あなたはMicrosoft Accessを使用していますか?まず、クエリエディタでこれを行うクエリを作成することをお勧めします。この最初のは、あなたが望むものをやっていることを確認し、パラメータ([OldID]、または何か)に「L20444」を作るために

INSERT INTO TableA (ID,col1, col2) 
SELECT [ID] & "B" AS NewName,col1, col2 
FROM TableA 
WHERE (([ID]="L20444")); 

テスト:それは、追加クエリ、の線に沿って何かになります。次に、このクエリを実行するVBAスクリプトにコードを追加します。それはあなたがそれを実行するときにOldIDを求めてポップアップするはずです。

次に、VBAからパラメータ化されたクエリを実行する方法を学ぶ必要があります。

Set qdf1 = CurrentDb.QueryDefs("myQuery") 
qdf1.Parameters("OldID") = theOldID 
qdf1.Execute 

テストされていない、私の構文は非常に適切でない場合、クエリ定義のためのVBAのヘルプを検索します。このような 何か。

1

2つのパレット(および新しい番号)の場所を追跡する新しいテーブルを作成しないでください。外部のキーを使用して、元のテーブル?

これはうまくいくはずです。さもなければ、冗長なデータの悪夢となることを避けます。

+0

説明するのは難しいですが、私は同じテーブルにいなければなりません。つまり、2つの異なる数字が同じテスト結果を思いついたようなものになります。 L20444とL20444Bは、2つの異なるレコードですが、テストの結果は同じでした。私は明確に説明しているかどうか分かりませんが、それは私の上司が望むものです。私はこれが役立つことを願っています –

+0

私は答えを感謝し、私はあなたが冗長性と言っていることを正確に見ています。私はそのようにしたいと思っていますが、私の背中はコーナーに逆らっていて、そうでなければ私は上司が喜んで受け入れることができません。私はそれが大きく評価されたと言ったように感謝します –