VBA
VBA
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strSql As String
Dim strResult As String
Set db = CurrentDb
If rs.EOF Then
Me.Text1.Value = "Invoice is valid"
If Me.Text1.Value = "Invoice is valid" Then
Me.subForm8Control.Requery
End If
Else
rs.MoveFirst
End If
Dim rowIndex As Integer
rowIndex = 0
Do Until rs.EOF
rowIndex = rowIndex + 1
' Ki?m tra t?ng tru?ng và xây d?ng thông báo "mismatch" tuong ?ng
Dim mismatchFields As String
mismatchFields = ""
If IsNull(DLookup("[MBS No]", "Query_Master", "[MBS No] = '" &
rs.Fields("MBS No").Value & "'")) Then
mismatchFields = mismatchFields & "MBS No, "
End If
If IsNull(DLookup("[Container]", "Query_Master", "[Container] = '" &
rs.Fields("Container number").Value & "'")) Then
mismatchFields = mismatchFields & "Container number, "
End If
DoCmd.RunSQL sql
sql = "INSERT INTO tbl_ChartInvoice ( INVOICE, [MBS NO], [Container number],
[Date] ) SELECT DISTINCT TBL.INVOICE, TBL.[MBS NO], TBL.[Container number],Date() "
& _
"FROM tbl_Input AS TBL;"
DoCmd.RunSQL sql
Me.subForm8Control.Requery
Me.subForm7Control.SourceObject = ""
Dim strSql As String
strSql = "INSERT INTO tbl_RRRR " & _
"SELECT * FROM ( " & _
"SELECT tbl_NEW2.*, " & _
"IIF(tbl_NEW2.ID IS NULL, " & _
"IIF(DLOOKUP(""ID"",""Query_NCPMODIFIED"",""[ESAM No#] = '"" & tbl_NEW2.[PO
Number] & ""' "") IS NULL, 'ESAM Not Found In NCP Database', " & _
"IIF(DLOOKUP(""ID"",""Query_NCPMODIFIED"",""[ESAM No#] = '"" & tbl_NEW2.[PO
Number] & ""' AND LEFT(REPLACE(PARTNUMBER, ' ', ''), 11) = '"" &
LEFT(tbl_NEW2.Material, 11) & ""' "") IS NULL,'Wrong Or Change Part Number'))) AS
Remark " & _
"FROM (SELECT tbl_NEW.Invoice, tbl_NEW.[MBS No], tbl_NEW.[Container number],
[Date],tbl_NEW.Item, tbl_NEW.[PO Number], tbl_NEW.Material, tbl_NEW.[Material
Description], ColorCode, tbl_NEW.Qty, Query_NCPMODIFIED.Quantity AS ClaimQty,
Query_NCPMODIFIED.NCPDate, Query_NCPMODIFIED.[Small part number], tbl_NEW.PHANLOAI,
Query_NCPMODIFIED.ID " & _
"FROM (SELECT * FROM Query_EX33) AS tbl_NEW " & _
"LEFT JOIN Query_NCPMODIFIED ON (LEFT(REPLACE(tbl_NEW.Material, ' ', ''), 11)
= LEFT(Query_NCPMODIFIED.PARTNUMBER, 11)) AND (tbl_NEW.[PO Number] =
Query_NCPMODIFIED.[ESAM No#]) " & _
"ORDER BY tbl_NEW.[MBS No] ASC, tbl_NEW.Item ASC " & _
") AS tbl_NEW2 " & _
") AS subquery_alias;"
DoCmd.RunSQL strSql
Me.subForm7Control.SourceObject = "subForm7"
End Sub
Private Sub Command40_Click()
Dim db1 As DAO.Database
Set db1 = CurrentDb
rs1.MoveFirst
Do Until rs1.EOF
foundRecord = False
If rs2.EOF And rs2.BOF Then
Set rs2 = db1.OpenRecordset(strTableName2, dbOpenDynaset)
Else
rs2.MoveFirst
End If
Do Until rs2.EOF
If rs2("Invoice") = rs1("Invoice") And rs2("MBS No") = rs1("MBS No")
Then
foundRecord = True
rs2.Edit
rs2("Receiver") = rs1("Receiver")
rs2("Remark") = rs1("Remark")
If rs1("Return") = True Then
rs2("Action") = "Return"
ElseIf rs1("Storage") = True Then
rs2("Action") = "Storage"
ElseIf rs1("Delivery") = True Then
rs2("Action") = "Delivery"
End If
rs2.Update
Exit Do
End If
rs2.MoveNext
Loop
rs1.MoveNext
Loop
rs2.Close
rs1.Close
db1.Close
End Sub
____________________________________________________________________
Option Compare Database
Set db = CurrentDb
Set rst = db.OpenRecordset("tbl_Invoice")
rst.MoveFirst
Do While Not rst.EOF
With rst
.Edit
If Not IsNull(!Materials) Then
!Materials = Not !Materials
Else
!Materials = True
End If
.Update
End With
rst.MoveNext
Loop
Me.subForm8Control.Requery
End Sub
' L?y danh sách các MBS No t? subForm8Control có tru?ng Status là True
strSql = "SELECT [MBS No] FROM tbl_Invoice WHERE Status=True"
Set rsFilter = db1.OpenRecordset(strSql)
' Duy?t qua t?ng MBS No và l?y d? li?u tuong ?ng t? tbl_RRRR
rsFilter.MoveFirst
Do Until rsFilter.EOF
strSql = "SELECT tbl_RRRR.Invoice, tbl_RRRR.[MBS No], tbl_RRRR.[Container
number],tbl_Invoice.[Date], tbl_RRRR.Material, tbl_RRRR.[Material Description],
tbl_RRRR.Qty, tbl_RRRR.ID, tbl_INVOICE.Delivery, tbl_RRRR.Remark, tbl_RRRR.Action "
& _
"FROM tbl_RRRR LEFT JOIN tbl_INVOICE ON tbl_RRRR.[MBS No] = tbl_INVOICE.
[MBS No] WHERE tbl_RRRR.[MBS No]='" & rsFilter("MBS No") & "'"
Dim rsRRRR As DAO.Recordset
Set rsRRRR = db1.OpenRecordset(strSql)
' Ki?m tra d? li?u trong rsRRRR d? th?c hi?n chuy?n d? li?u vào
tbl_dulieuEX33
If Not rsRRRR.EOF Then
rsRRRR.MoveFirst
Do Until rsRRRR.EOF
rs2.AddNew
rs2("Invoice") = rsRRRR("Invoice")
rs2("MBS No") = rsRRRR("MBS No")
rs2("Container number") = rsRRRR("Container number")
rs2("Material") = rsRRRR("Material")
rs2("Material Description") = rsRRRR("Material Description")
rs2("Qty") = rsRRRR("Qty")
rs2("ID") = rsRRRR("ID")
rs2("Receiving date") = rsRRRR("Date")
rs2("Date") = Date$
rs2("Receiver") = rsRRRR("Delivery")
rs2("Remark") = rsRRRR("Remark")
If rsRRRR!Action = True Then
rs2("Status") = "Done"
ElseIf rsRRRR!Action = False Then
rs2("Status") = "Not Done"
End If
rs2.Update
ReDim Preserve arrMBSNo(i)
arrMBSNo(i) = rsRRRR("MBS No")
i = i + 1
rsRRRR.MoveNext
Loop
End If
For i = LBound(arrMBSNo) To UBound(arrMBSNo)
strSql = "DELETE * FROM tbl_RRRR WHERE [MBS No]='" & arrMBSNo(i) & "'"
db1.Execute strSql
Next i
rsFilter.MoveNext
Loop
rsFilter.Close
rs2.Close
rs1.Close
db1.Close
Set db = CurrentDb
Set otherTable = db.OpenRecordset("tbl_InvoiceDone")
Do Until selectedRow.EOF
If selectedRow!Status = True Then
otherTable.AddNew
For Each fld In selectedRow.Fields
otherTable.Fields("Invoice").Value =
selectedRow.Fields("Invoice").Value
otherTable.Fields("MBS No").Value = selectedRow.Fields("MBS
No").Value
otherTable.Fields("Container number").Value =
selectedRow.Fields("Container number").Value
otherTable.Fields("Date").Value = Date
Next fld
otherTable.Update
selectedRow.Delete
End If
selectedRow.MoveNext
Loop
subform.Form.Requery
Me.subForm11.Requery
selectedRow.Close
otherTable.Close
' L?y danh sách các MBS No t? subForm8Control có tru?ng Status là True
strSql = "SELECT [MBS No] FROM tbl_Invoice WHERE Status=True"
Set rsFilter = db1.OpenRecordset(strSql)
' Duy?t qua t?ng MBS No và l?y d? li?u tuong ?ng t? tbl_RRRR
rsFilter.MoveFirst
Do Until rsFilter.EOF
strSql = "SELECT tbl_RRRR.Invoice, tbl_RRRR.[MBS No], tbl_RRRR.[Container
number],tbl_Invoice.Date, tbl_RRRR.Material, tbl_RRRR.[Material Description],
tbl_RRRR.Qty,tbl_RRRR.ID,tbl_INVOICE.Delivery,tbl_RRRR.Remark ,tbl_RRRR.Action" & _
"FROM tbl_RRRR LEFT JOIN tbl_INVOICE ON tbl_RRRR.[MBS
No]=tbl_INVOICE.[MBS No] WHERE tbl_RRRR.[MBS No]='" & rsFilter("MBS No") & "'"
Dim rsRRRR As DAO.Recordset
Set rsRRRR = db1.OpenRecordset(strSql)
' Ki?m tra d? li?u trong rsRRRR d? th?c hi?n chuy?n d? li?u vào
tbl_dulieuEX33
If Not rsRRRR.EOF Then
rsRRRR.MoveFirst
Do Until rsRRRR.EOF
rs2.AddNew
rs2("Invoice") = rsRRRR("Invoice")
rs2("MBS No") = rsRRRR("MBS No")
rs2("Container number") = rsRRRR("Container number")
rs2("Material") = rsRRRR("Material")
rs2("Material Description") = rsRRRR("Material Description")
rs2("Qty") = rsRRRR("Qty")
rs2("ID") = rsRRRR("ID")
rs2("Receiving date") = rsRRRR("Date")
rs2("[Date]") = Date$
rs2("Receiver") = rsRRRR("Delivery")
rs2("Remark") = rsRRRR("Remark")
If rsRRRR!Action = True Then
rs2("Status") = "Done"
rs2.Update
rsRRRR.MoveNext
Loop
End If
rsFilter.MoveNext
Loop
rsFilter.Close
rs2.Close
rs1.Close
db1.Close
End Sub