-
Xóa 1 record từ 1 file khác
Minh Tiên > 26-04-14, 11:52 AM
tmtien261 có một vấn đề nhờ các A/C/E Pro giúp:
tmtien261 muốn xóa 1 record theo điều kiện ở 1 file khác theo đoạn code:
Function Delete(strDelType As String, strSohieu as string)
Dim sql As String
Dim sFilePathName As String: "Diachi"
Dim sPass As String: sPass = "Pass"
Dim db As DAO.Database
Set db = OpenDatabase(sFilePathName, False, False, "Ms Access" & ";pwd=" & sPass & "")
Select Case strDelType
Case "All"
sql = "Delete * from tblName"
Case "Unique"
sql = "Delete * from tblName Where Sohieu='" & strSohieu & "'"
End Select
db.Execute sql
Set db = Nothing
End Function
Nhưng khi xóa hết tất cả thì Ok còn xóa 1 record theo điều kiện thì ko được. tmtien261 đã thử thay biến "strSohieu as string" thành "byval strSohieu as string" vẫn ko được.
Nhờ các Pro chỉ giáo giúp !
Cảm ơn nhiều ! -
RE: Xóa 1 record từ 1 file khác
ht03 > 26-04-14, 12:39 PM
bạn chưa gắn giá trị cho biến strSohieu kìa -
RE: Xóa 1 record từ 1 file khác
Minh Tiên > 26-04-14, 02:29 PM
Bạn ơi ! Sao không gắn mà xóa được bạn. Do mình ko ghi rõ lệnh gọi đó chứ.
Để xóa tất cả tại form mình gọi: Call Delete("All",me.Sohieu.value) (Thực ra biến strSohieu trong trường hợp xóa tất cả ko có tác dụng);
Xóa chỉ 1 record thì gọi: Delete("Unique",me.Sohieu.value)
Thanks bạn ! -
RE: Xóa 1 record từ 1 file khác
Minh Tiên > 26-04-14, 03:35 PM
tmtien261 đã tìm ra nguyên nhân của việc ko xóa được trên form của mình rồi.
Khi mình gọi bằng lệnh: Delete("Unique",me.Sohieu.value) với me.Sohieu.value là record trực tiếp trên form tức là Click vào Record nào thì là lấy record đó để làm điều kiện xóa. Việc này ko ổn định, có lúc xóa được, có lúc không.
Mình đã khắc phục bằng cách tạo 1 textbox phụ, khi Click vào record nào thì giá trị của Record đó được gán vào textbox phụ để làm điều kiện xóa ---> Thế là Ok ! -
RE: Xóa 1 record từ 1 file khác
Xuân Thanh > 26-04-14, 04:09 PM
Có thể không cần textbox phụ vẫn xóa được. Có thể. bạn làm chưa đúng cách đó thôi. Gửi file kên đi
Thân mến -
RE: Xóa 1 record từ 1 file khác
Minh Tiên > 26-04-14, 05:48 PM
-
RE: Xóa 1 record từ 1 file khác
MTNQ > 28-04-14, 02:04 AM
Bạn sửa thủ tục Sub btnXoa_Click() lại như sau là được:
Mã PHP:Private Sub btnXoa_Click()
On Error GoTo HandleError
Dim strSohieuTK As String
strSohieuTK = Me.SohieuTK.Value
strText = "Co1 d9u1ng User muo61n xo1a so61 du7 cu3a TK: " & Me.SohieuTK & " kho6ng ?"
If MsgBox(UniConvert(strText, "vni"), vbQuestion + vbYesNo + vbDefaultButton2) = vbNo Then
Exit Sub
Else
'Call Sodudauky.Delete("CurrentDB", Me.txtSohieuTKXoa.Value)
'Call Sodudauky.Delete("BackupDB", Me.txtSohieuTKXoa.Value)
Call Sodudauky.Delete("CurrentDB", strSohieuTK)
Call Sodudauky.Delete("BackupDB", strSohieuTK)
DoCmd.Requery
Call SetButton("Delete")
End If
HandleExit:
Exit Sub
HandleError:
MsgError Err.Number, Err.Description, modName, "btnXoa_Click"
Resume HandleExit
End Sub -
RE: Xóa 1 record từ 1 file khác
Minh Tiên > 28-04-14, 03:39 PM
Cảm ơn "MTNQ" đã giúp. Mình làm trên Function của cls để tiện gọi dùng trên nhiều form. Cách của bạn cũng giống như mình tạo textbox phụ thôi.
Mình đã ko hiểu tại sao khi chạy trực tiếp bằng cách Click chuột vào Record để lấy giá trị thì ko chạy được (Chạy ko ổn định) mà truyền sang 1 textbox phụ thì OK ?
Thanks ! -
RE: Xóa 1 record từ 1 file khác
MTNQ > 28-04-14, 07:52 PM
(28-04-14, 03:39 PM)tmtien261 Đã viết: Cảm ơn "MTNQ" đã giúp. Mình làm trên Function của cls để tiện gọi dùng trên nhiều form. Cách của bạn cũng giống như mình tạo textbox phụ thôi.
Mình đã ko hiểu tại sao khi chạy trực tiếp bằng cách Click chuột vào Record để lấy giá trị thì ko chạy được (Chạy ko ổn định) mà truyền sang 1 textbox phụ thì OK ?
Thanks !
Thực ra bạn chỉ cần làm như sau cũng được:
đổi thứ tự:
Mã:Call Sodudauky.Delete("CurrentDB", Me.SohieuTK.Value)
Call Sodudauky.Delete("BackupDB", Me.SohieuTK.Value)
lại thành:
Mã:Call Sodudauky.Delete("BackupDB", Me.SohieuTK.Value)
Call Sodudauky.Delete("CurrentDB", Me.SohieuTK.Value)
Nói đến đây chắc bạn suy ra nguyên nhân rùi đúng ko? -
RE: Xóa 1 record từ 1 file khác
Minh Tiên > 29-04-14, 08:54 AM
Cảm ơn bạn đã giúp. Mình cũng đã chỉ dùng 1 câu để xóa trên BackupDB là: Call Sodudauky.Delete("BackupDB", Me.SohieuTK.Value) vẫn No OK !