2009-06-12 80 views
1

我使用裝入2000磅大袋並放在托盤上的產品進行操作。製造這種產品時,它有許多不同的元素經過測試,每個測試都有一個數字數據所在的字段。然後,這些測試記錄中的每一個都會分配一個數字,例如L20444。在VBA中複製記錄

現在我們有能力把這個2000磅袋子轉換成80個20磅袋子。只有40個20lb袋可以放在一個托盤上,現在取一個托盤L20444並製作兩個托盤,編號爲L20444。這會導致庫存問題,因爲編號L20444只能分配一個倉庫位置,而不是兩個。

所以我的老闆們要創建一個幾乎相同但不同的數字,以便將第二個托盤放入倉庫。第二個托盤現在是L20444B。它仍然具有所有相同的測試數字,並且是原始L20444的「複製品」。

我的問題是我可以取記錄L20444並複製該記錄的所有數據,然後將其保存爲L20444B,以便它可以放在倉庫中。

那麼VBA有可能複製記錄,重命名它,然後將它保存在同一個數據庫中作爲新記錄?

任何幫助將不勝感激,謝謝。

回答

1

如果我正在讀你,它聽起來像你想要一個SQL語句來創建一個新的記錄。

您使用的是Microsoft Access?我建議首先在查詢編輯器中創建一個查詢。這將是一個追加查詢,沿着線的東西:

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

測試此首先要確保它在做什麼,你想要什麼,並作出「L20444」爲參數(OLDID],或東西)。然後在執行此查詢的VBA腳本中添加一些代碼。當你運行它時,它應該彈出詢問你的OldID。

然後,您需要了解如何從VBA執行參數化查詢。 事情是這樣的:

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

沒有測試,爲QueryDefs搜索VBA幫助,如果我的語法是不完全正確。

1

爲什麼不創建一個新表,它跟蹤兩個托盤(和新的編號)的位置,它將鏈接回(用外鍵)到單個股票的記錄原始表格?

這應該工作,並會避免將成爲冗餘數據的惡夢。

+0

這很難解釋,但我需要它在同一張表。所以它會像兩個不同的數字產生相同的測試結果。 L20444和L20444B是兩種不同的記錄,但測試結果相同。我不知道我是否清楚解釋,但這是我的老闆想要的。我希望這有幫助。 – 2009-06-12 15:32:32