ht03 > 20-06-12, 05:05 PM
Sub AB()
Dim db As DAO.Database
Dim rcd As DAO.Recordset
Dim aoTenKH As String
Dim aoDonGia As Single
Set db = CurrentDb
Set rcd = db.OpenRecordset("qryDonGia")
Do Until rcd.EOF
aoTenKH = rcd!TenKH
aoDonGia = rcd!DonGia123
db.Execute "UPDATE tblDonGia " _
& "SET [DonGia] = '" & aoDonGia & "' " _
& "WHERE TenKH = '" & aoTenKH & "';"
rcd.MoveNext
Loop
db.Close
End Sub
Xuân Thanh > 20-06-12, 09:45 PM
Xuân Thanh > 21-06-12, 12:32 PM
Sub SeekUpdate()
Dim rs As Recordset
Dim qr As QueryDef
Dim rsup As Recordset
Set qr = CurrentDb.QueryDefs("qryDonGia")
Set rs = qr.OpenRecordset()
Set rsup = CurrentDb.OpenRecordset("tblDonGia")
rsup.Index = "Primarykey" 'Primarykey cua tblDonGia la TenKH
If rs.RecordCount > 0 Then
rs.MoveFirst
Dountil rs.EOF
rsup.Seek "=", rs!TenKH
If rsup.NoMatch Then
rsup.AddNew
rsup!TenKH = rs!TenKH
rsup!DonGia = rs!DonGia
rsup.Update
Else
rsup.Edit
rsup!DonGia = rs!DonGia
rsup.Update
End If
rs.MoveNext
Loop
rs.Close: rsup.Close
End Sub
Minh Tiên > 07-03-13, 05:44 PM
(21-06-12, 12:32 PM)Xuân Thanh Đã viết:Mã PHP:Sub SeekUpdate()
Dim rs As Recordset
Dim qr As QueryDef
Dim rsup As Recordset
Set qr = CurrentDb.QueryDefs("qryDonGia")
Set rs = qr.OpenRecordset()
Set rsup = CurrentDb.OpenRecordset("tblDonGia")
rsup.Index = "Primarykey" 'Primarykey cua tblDonGia la TenKH
If rs.RecordCount > 0 Then
rs.MoveFirst
Dountil rs.EOF
rsup.Seek "=", rs!TenKH
If rsup.NoMatch Then
rsup.AddNew
rsup!TenKH = rs!TenKH
rsup!DonGia = rs!DonGia
rsup.Update
Else
rsup.Edit
rsup!DonGia = rs!DonGia
rsup.Update
End If
rs.MoveNext
Loop
rs.Close: rsup.Close
End Sub
Update kiểu này thì khi bên qry có khách hàng mới nó sẽ tự động thêm mới tên khách hàng và đơn giá của khách hàng đó. Ngược lại nó chỉ sửa đơn giá của khách hàng đã tồn tại trong table
Thân mến
Xuân Thanh > 08-03-13, 10:39 AM
(07-03-13, 05:44 PM)tmtien261 Đã viết: Bài viết của Xuân Thanh rất bổ ích. Cảm ơn nhiều !
Tôi có một vấn đề nhỏ liên quan đến bài này nhờ Xuân Thanh giúp đỡ.
Theo nội dung bài viết. Nếu trong QryDongia ta đặt điều kiện 1 trường nào đó trong Query (Chẳng hạn đặt trường Dongia với điều kiện = forms!form!txtgia) thì chương trình báo lỗi tại dòng:
Set rs = qr.OpenRecordset()
Không biết để khắc phục lỗi này cần khai báo như thế nào ?
Rất mong Xuân Thanh cùng các Ac chỉ giúp. Thanks!
....
Dim DK As String
DK = forms!formXYZ!txtgia
...
Set qr = CurrentDb.QueryDefs(qryDonGia)
qr.Parameter("DonGia") = DK
Set rs = qr.OpenRecordset()
...
Minh Tiên > 08-03-13, 06:00 PM
(08-03-13, 10:39 AM)Xuân Thanh Đã viết:(07-03-13, 05:44 PM)tmtien261 Đã viết: Bài viết của Xuân Thanh rất bổ ích. Cảm ơn nhiều !
Tôi có một vấn đề nhỏ liên quan đến bài này nhờ Xuân Thanh giúp đỡ.
Theo nội dung bài viết. Nếu trong QryDongia ta đặt điều kiện 1 trường nào đó trong Query (Chẳng hạn đặt trường Dongia với điều kiện = forms!form!txtgia) thì chương trình báo lỗi tại dòng:
Set rs = qr.OpenRecordset()
Không biết để khắc phục lỗi này cần khai báo như thế nào ?
Rất mong Xuân Thanh cùng các Ac chỉ giúp. Thanks!
1/ Bài viết trên khi query QryDonGia không có Parameter. Khi đó mới Update được nhiều Record. Làm như bạn thì có sẵn đơn giá rồi thì cần gì Update nữa, cho nó bằng ngay cái giá trị mặc định của bạn trên form luôn
2/ Nếu muốn sử dụng thì thêm mấy câu lệnh sau:
Mã PHP:....
Dim DK As String
DK = forms!formXYZ!txtgia
...
Set qr = CurrentDb.QueryDefs(qryDonGia)
qr.Parameter("DonGia") = DK
Set rs = qr.OpenRecordset()
...
Thân mến
Minh Tiên > 09-03-13, 01:21 PM
Xuân Thanh > 11-03-13, 02:37 PM
(09-03-13, 01:21 PM)tmtien261 Đã viết: Xuân Thanh giúp với !
Tôi đã làm theo cách bạn hướng dẫn nhưng khi chạy Update thì báo lỗi:
"Item not found in this colection"
Nếu bỏ điều kiện thì chạy Update OK !
File demo
Minh Tiên > 11-03-13, 05:22 PM
(11-03-13, 02:37 PM)Xuân Thanh Đã viết: 1/ Không biết bạn làm như thế nào nên không góp ý được vì file demo không thể hiện
2/ Xem cái trưởng bạn muốn update là kiểu gì mà định nghĩa biến DK cho phù hợp. Nếu là chuỗi thì String, nếu là số thì Double...
Thân mến
Xuân Thanh > 12-03-13, 12:10 PM
(11-03-13, 05:22 PM)tmtien261 Đã viết: tmtien261 đặt điều kiện: DKien là trường số Long Integer. Và cũng đã đổi sang Number (Khai báo Double), đổi thử sang text (Khai báo string) nhưng vẫn ko chạy được. Không biết lỗi chỗ nào.
Trong DEMO là Private Sub CapnhatXuathangban_Chitiet()
tmtien261 gửi lại file demo. XT giúp nhé !
Cảm ơn nhiều !