1
ห้อง MS Access / : สอบถามError import csv fileค่ะ
« เมื่อ: 17 ม.ค. 62 , 20:34:34 »
ตรง VBA Reference ให้เพิ่ม Microsoft Office 1x.x Object Library เข้าไปด้วยครับ

โพสต์นี้ได้รับคำขอบคุณจาก: Earth
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
ขอบคุณค้า อันแรกทำได้แล้วค่ะ เหลือแสดงวันที่ค่ะทำคิวรี่แรกก่อนแบบนี้ครับโค๊ด: [Select]SELECT format(StockDate,"DD-MMM"), Takein, TakeOut, Balance
FROM StockBefore
UNION SELECT format(StockDate,"DD-MMM"), Takein, TakeOut, '' as Balance
FROM StockCard;
Option Compare Database
Public Sub MakeDate365(Optional ByVal pYear As Integer, _
Optional ByVal pTable As String = "TempDate365", _
Optional ByVal pField As String = "Stockdate")
Dim db As DAO.Database
Dim dte As Date
Dim dteLast As Date
Dim intYear As Integer
Dim rs As DAO.Recordset
Dim strMsg As String
On Error GoTo ErrorHandler
intYear = IIf(pYear = 0, Year(Date), pYear)
dte = DateSerial(intYear, 1, 1)
dteLast = DateSerial(intYear, 12, 31)
Set db = CurrentDb
Set rs = db.OpenRecordset(pTable, dbOpenTable, dbAppendOnly)
Do While dte <= dteLast
rs.AddNew
rs.Fields(pField).Value = dte
rs.Update
dte = dte + 1
Loop
rs.Close
ExitHere:
On Error GoTo 0
Set rs = Nothing
Set db = Nothing
Exit Sub
ErrorHandler:
strMsg = "Error " & Err.Number & " (" & Err.Description _
& ") in MakeDate365"
MsgBox strMsg
GoTo ExitHere
End Sub
SELECT TempDate365.StockDate, IIf(IsNull([Takein]),0,[Takein]) AS Take_in, IIf(IsNull([Takeout]),0,[Takeout]) AS Take_out, (select [BeforeQty] from [StockBeforeQuery] ) AS Before_Qty
FROM StockQuery RIGHT JOIN TempDate365 ON StockQuery.StockDate = TempDate365.StockDate
WHERE (((TempDate365.StockDate) Between [forms]![Main]![StockBefore] And [forms]![Main]![EndDate]));
SELECT T1.[Before_Qty]+(select nz(sum(T2.Take_in),0) from StockQuery2 as T2 where T2.StockDate <= T1.StockDate)-
(select nz(sum(T2.Take_out),0) from StockQuery2 as T2 where T2.StockDate <= T1.StockDate) AS TotalQty, *
FROM StockQuery2 AS T1
ORDER BY T1.StockDate;
If (Type_cmb) = "All" Then
Type_cmb = "*"
DoCmd.SetWarnings False
DoCmd.OpenQuery "StockCard"
DoCmd.OpenForm "ViewStockCard"
DoCmd.SetWarnings true
else
DoCmd.SetWarnings False
DoCmd.OpenQuery "StockCard"
DoCmd.OpenForm "ViewStockCard"
DoCmd.SetWarnings true
end if
เราเปลี่ยนแค่ว่าต้องการกำหนดให้ถ้าเป็น ALL ก็ให้แทนค่าใน Combobox เป็น * ครับ ถ้าเป็นรายการอื่นก็ให้รันคิวรี่และเปิดฟอร์มตามปกติตอนรัน Queryขึ้นแจ้งเตือนดังรูปด้านล่าง ซึ่งไม่ได้เปิด Tableดังกล่าว หรือTableใด รวมถึงไม่มีการเปิดฟอร์ม Reportใดๆไว้เลยค่ะพอเออเร่อ สั่ง Compact and Repair หรือ ซ่อมแซมฐานข้อมูล อาการนี้หายไหมครับ
ในแต่ตอนรันครั้งแรก ระบบเอาข้อมูลจากตารางMonthly_FG ไปใช้ต่ออีกหลายQuery
คิดว่าน่าจะมีProcess ค้างอยู่ แต่ไม่รู้ตรงไหน
เวลาจะรันครั้งที่สอง จึงต้องปิดและเปิดโปรแกรมใหม่ถึงจะสามารถรันได้ปกติ
อยากทราบว่ามีวิธีไหนที่จะเขียนโค้ดดักก่อนว่า ให้เคลียร์หรือปิดProcessทั้งหมดก่อน หรือปิดและเปิดโปรแกรมใหม่ไหมคะ
เพื่อจะได้ไม่มีErrorแบบนี้เกิดขึ้น
ลองคำสั่งทั้งสองแบบ ผลลัพธ์ที่ได้มีค่าเหมือนกันเลยค่ะ
แตกต่างกันยังไงหรอคะ
DoCmd.SetWarnings (0)
...คำสั่งที่ใช้
DoCmd.SetWarnings (1)
และ
DoCmd.SetWarnings (0)
...คำสั่งที่ใช้
DoCmd.SetWarnings (-1)