[英]Set Access form record source based on SQL Server temporary table
我將 MS Access 與 SQL Server 2019 一起使用。該應用程序可以處理交付 - 這意味着我掃描帶有序列號的條形碼,這些條形碼被保存到 SQL 服務器臨時表中。 在該過程完成並驗證后,臨時表中的數據將被移動到“真實”表中,並且臨時表被處理掉。
像這樣的東西:
pub_Conn.Execute "INSERT INTO #TempUnits " & _
"(ProductID, PurchaseOrderDetailID, DeliveryDetailID, SerialNumber, Config, SupWarrantyEnds) " & _
"VALUES (" & pub_rsDelivery("ProductID") & ", " & _
pub_rsDelivery("PurchaseOrderDetailID") & ", " & _
pub_rsDelivery("DeliveryDetailID") & ", " & _
"'" & strSerialNumber & "', " & _
strConfig & ", " & _
"'" & Format(DateAdd("m", pub_rsDelivery("Warranty"), pub_rsDelivery("DateShipped")), "yyyy-mm-dd") & "')"
這是轉移到我的生產表:
pub_Conn.BeginTrans
pub_Conn.Execute "INSERT INTO tbl1Units (ProductID, PurchaseOrderDetailID, DeliveryDetailID, SerialNumber, Config, SupWarrantyEnds) " & _
"SELECT ProductID, PurchaseOrderDetailID, DeliveryDetailID, SerialNumber, Config, SupWarrantyEnds FROM #TempUnits"
pub_Conn.Execute "SELECT DeliveryDetailID, COUNT(*) AS QtyDelivered INTO #TempUnitsQty FROM #TempUnits GROUP BY DeliveryDetailID"
pub_Conn.Execute "INSERT INTO #TempUnitsQty (DeliveryDetailID, QtyDelivered) " & _
"SELECT DeliveryDetailID, Quantity FROM #TempProducts"
pub_Conn.Execute "UPDATE tbl1DeliveryDetails " & _
"SET ActualQuantity = T.QtyDelivered " & _
"FROM #TempUnitsQty T JOIN tbl1DeliveryDetails D ON T.DeliveryDetailID = D.DeliveryDetailID"
pub_Conn.Execute "DROP TABLE IF EXISTS #TempProducts"
pub_Conn.Execute "DROP TABLE IF EXISTS #TempUnitsQty"
pub_Conn.Execute "DROP TABLE IF EXISTS #TempUnits"
pub_Conn.Execute "UPDATE tbl1Deliveries SET DateReceived = GETDATE() WHERE DeliveryID = " & Forms!frmDeliveryDetails!DeliveryID
pub_Conn.CommitTrans
MsgBox "Dodávka byla v pořádku přijata.", vbInformation + vbOKOnly, "Úspěch"
效果很好,但我希望能夠看到掃描的進度,例如:
產品 A(已掃描 0/5 件商品)
當我使用本地 Access 表和幾個查詢時,這沒有問題,但我想知道是否以及如何從 SQL 服務器臨時表中提供表單記錄源。 就像是:
Me.RecordSource = pub_Conn.Execute "SELECT * FROM #TempUnits"
(語法錯誤,但只是為了澄清我在尋找什么)
我自己已經弄清楚了。 我在 Access 中創建了一個直通查詢:
SELECT A.ID, D.ProductName, C.PurchaseOrderCode, A.SerialNumber
FROM ##TempUnits A
JOIN tbl1PurchaseOrderDetails B ON A.PurchaseOrderDetailID = B.PurchaseOrderDetailID
JOIN tbl1PurchaseOrders C ON B.PurchaseOrderID = C.PurchaseOrderID
JOIN tbl1Products D ON B.ProductID = D.ProductID
ORDER BY A.ID DESC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.