Tải bản đầy đủ (.doc) (12 trang)

Lập trình cơ sở dữ liệu với ADO docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (113.53 KB, 12 trang )

LẬP TRÌNH CƠ SỞ DỮ LIỆU VỚI ADO
Bài 1: Tạo 1 form dùng để quản lý Khóa học trong CSDL SinhVien.mdb, có các
chức năng: duyệt các mẫu tin, thêm mới, sửa dữ liệu, lưu, xóa và thoát.
CÁCH 1: DÙNG CONTROL ADODC1 (không viết dòng cod nào) -> frmKhoa
CÁCH 2: DÙNG CONTROL ADODC1 VÀ ĐỐI TƯỢNG RECORDSET (giao diện
không dùng control ADODC, mà thiết kế lại) -> frmKhoaTest
Option Explicit
Dim rs As New ADODB.Recordset
Private Sub cmdCuoi_Click()
rs.MoveLast
txtDem.Text = rs.AbsolutePosition & "/" & rs.RecordCount
End Sub
Private Sub cmdDau_Click()
rs.MoveFirst
txtDem.Text = rs.AbsolutePosition & "/" & rs.RecordCount
End Sub
Private Sub cmdLuu_Click()
'kiem tra cac text box da nhap
If txtMaKhoa.Text = vbNullString Then
MsgBox "Phao nhap Ma khoa", vbInformation, "Loi nhap lieu"
txtMaKhoa.SetFocus
Exit Sub
End If
If txtTenKhoa.Text = vbNullString Then
MsgBox "Phao nhap Ten khoa", vbInformation, "Loi nhap lieu"
txtTenKhoa.SetFocus
Exit Sub
End If

'cap nhat vao bang
rs.Update


'cap nhat lai text dem
txtDem.Text = rs.AbsolutePosition & "/" & rs.RecordCount
'cap nhat lai text box
txtTenKhoa.Locked = True
txtDienThoai.Locked = True
'cap nhat lai button
cmdLuu.Enabled = False
cmdThem.Enabled = True
cmdSua.Enabled = True
cmdXoa.Enabled = True
End Sub
Private Sub cmdSau_Click()
rs.MoveNext
If rs.EOF = True Then rs.MoveLast
txtDem.Text = rs.AbsolutePosition & "/" & rs.RecordCount
End Sub
Private Sub cmdSua_Click()
'cho text box sua
Dieu_Khien_TextBox False
'dieu kien cac button
cmdThem.Enabled = False
cmdSua.Enabled = False
cmdXoa.Enabled = False
cmdLuu.Enabled = True
End Sub
Private Sub cmdThem_Click()
rs.AddNew
txtMaKhoa.Locked = False
txtDienThoai.Locked = False
txtTenKhoa.Locked = False

txtMaKhoa.SetFocus
'dieu kien cac button
cmdThem.Enabled = False
cmdSua.Enabled = False
cmdXoa.Enabled = False
cmdLuu.Enabled = True
End Sub
Private Sub cmdThoat_Click()
Unload Me
End Sub
Private Sub cmdTruoc_Click()
rs.MovePrevious
If rs.BOF = True Then rs.MoveFirst
txtDem.Text = rs.AbsolutePosition & "/" & rs.RecordCount
End Sub
Private Sub cmdXoa_Click()
'hoi xac nhan tu user
Dim n As Integer
n = MsgBox("Ban muon xoa khong?", vbCritical + vbYesNo, "Xoa du lieu")
If n = vbNo Then
rs.MoveFirst
Else
'xoa record
rs.Delete
MsgBox "Ban da xoa thanh cong", vbInformation, "Xac nhan xoa"
'cap nhat lai button
rs.MoveLast
cmdLuu.Enabled = False
cmdThem.Enabled = True
cmdSua.Enabled = True

cmdXoa.Enabled = True
End If
'cap nhat text box dem
txtDem.Text = rs.AbsolutePosition & "/" & rs.RecordCount
End Sub
Private Sub Form_Load()
'khoi tao gia tri
Set rs = Adodc1.Recordset
txtDem.Text = rs.AbsolutePosition & "/" & rs.RecordCount
'dieu khien text box va button
Dieu_Khien_TextBox True
cmdLuu.Enabled = False
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
'giai phong cac tai nguyen (record set)
rs.Close
Set rs = Nothing
End Sub
Private Sub Dieu_Khien_TextBox(khoa As Boolean)
'dieu khien text box
txtTenKhoa.Locked = khoa
txtDienThoai.Locked = khoa
End Sub
CÁCH 3: KHÔNG DÙNG CONTROL ADODC1, DÙNG ĐỐI TƯỢNG
CONNECTION VÀ RECORDSET (thiết kế lại màn hình) -> frmKhoaAdv
Option Explicit
Dim rs As New ADODB.Recordset
Dim cnn As New ADODB.Connection
Dim fThem As Boolean
Private Sub cmdCuoi_Click()

rs.MoveLast
Lien_Ket_Du_Lieu_Khoa
txtDem.Text = rs.AbsolutePosition & "/" & rs.RecordCount
End Sub
Private Sub cmdDau_Click()
rs.MoveFirst
Lien_Ket_Du_Lieu_Khoa
txtDem.Text = rs.AbsolutePosition & "/" & rs.RecordCount
End Sub
Private Sub cmdLuu_Click()
'kiem tra cac text box da nhap
If txtMaKhoa.Text = vbNullString Then
MsgBox "Phao nhap Ma khoa", vbInformation, "Loi nhap lieu"
txtMaKhoa.SetFocus
Exit Sub
End If
If txtTenKhoa.Text = vbNullString Then
MsgBox "Phao nhap Ten khoa", vbInformation, "Loi nhap lieu"
txtTenKhoa.SetFocus
Exit Sub
End If

'cap nhat vao bang
'neu la them moi
If fThem = True Then rs.AddNew
'ghi len bang
rs("makhoa") = txtMaKhoa.Text
rs("tenKhoa") = txtTenKhoa.Text
rs("dienthoai") = txtDienThoai.Text
rs.Update

'cap nhat lai text dem
txtDem.Text = rs.AbsolutePosition & "/" & rs.RecordCount
'cap nhat lai text box
txtTenKhoa.Locked = True
txtDienThoai.Locked = True
'cap nhat lai button
cmdLuu.Enabled = False
cmdThem.Enabled = True
cmdSua.Enabled = True
cmdXoa.Enabled = True
End Sub
Private Sub cmdSau_Click()
rs.MoveNext
If rs.EOF = True Then rs.MoveLast
Lien_Ket_Du_Lieu_Khoa
txtDem.Text = rs.AbsolutePosition & "/" & rs.RecordCount
End Sub
Private Sub cmdSua_Click()
'cho text box sua
Dieu_Khien_TextBox False
txtTenKhoa.SetFocus
'dieu kien cac button
cmdThem.Enabled = False
cmdSua.Enabled = False
cmdXoa.Enabled = False
cmdLuu.Enabled = True
'cap nhat lai co them
fThem = False
End Sub
Private Sub cmdThem_Click()

txtMaKhoa.Locked = False
txtMaKhoa.Text = vbNullString
txtDienThoai.Locked = False
txtDienThoai.Text = vbNullString
txtTenKhoa.Locked = False
txtTenKhoa.Text = vbNullString
txtMaKhoa.SetFocus
'dieu kien cac button
cmdThem.Enabled = False
cmdSua.Enabled = False
cmdXoa.Enabled = False
cmdLuu.Enabled = True
'cap nhat lai co them
fThem = True
End Sub
Private Sub cmdThoat_Click()
Unload Me
End Sub
Private Sub cmdTruoc_Click()
rs.MovePrevious
If rs.BOF = True Then rs.MoveFirst
Lien_Ket_Du_Lieu_Khoa
txtDem.Text = rs.AbsolutePosition & "/" & rs.RecordCount
End Sub
Private Sub cmdXoa_Click()
'hoi xac nhan tu user
Dim n As Integer
n = MsgBox("Ban muon xoa khong?", vbCritical + vbYesNo, "Xoa du lieu")
If n = vbNo Then
rs.MoveFirst

Else
'xoa record
rs.Delete
MsgBox "Ban da xoa thanh cong", vbInformation, "Xac nhan xoa"
'cap nhat lai button
rs.MoveLast
cmdLuu.Enabled = False
cmdThem.Enabled = True
cmdSua.Enabled = True
cmdXoa.Enabled = True
End If
'cap nhat text box dem
txtDem.Text = rs.AbsolutePosition & "/" & rs.RecordCount
Lien_Ket_Du_Lieu_Khoa
End Sub
Private Sub Form_Load()
'ket noi voi co so du lieu
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=D:\Tan\DAYHOC\KTLT2(VB2)\Practice\Quan ly Sinh
vien\SinhVien.mdb;"
cnn.CursorLocation = adUseClient
If cnn.State = adStateClosed Then cnn.Open
rs.Open "KHOA", cnn, adOpenDynamic, adLockOptimistic, adCmdTable

'khoi tao gia tri
rs.MoveFirst
Lien_Ket_Du_Lieu_Khoa
txtDem.Text = rs.AbsolutePosition & "/" & rs.RecordCount
fThem = False


'dieu khien text box va button
Dieu_Khien_TextBox True
cmdLuu.Enabled = False
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
'giai phong cac tai nguyen (record set,connection)
If rs.State = adStateOpen Then rs.Close
Set rs = Nothing
If cnn.State = adStateOpen Then cnn.Close
Set cnn = Nothing
End Sub
Private Sub Dieu_Khien_TextBox(khoa As Boolean)
'dieu khien text box
txtTenKhoa.Locked = khoa
txtDienThoai.Locked = khoa
End Sub
Private Sub Lien_Ket_Du_Lieu_Khoa()
txtMaKhoa.Text = rs("makhoa")
txtTenKhoa.Text = rs("tenKhoa")
txtDienThoai.Text = rs("DienThoai")
End Sub
CÁCH 4: CÁCH 3 + DÙNG LƯỚI DATAGRID ĐỂ HIỂN THỊ -> frmKhoaAdv2b
Option Explicit
Dim rs As New ADODB.Recordset
Dim cnn As New ADODB.Connection
Dim fThem As Boolean
Private Sub cmdCuoi_Click()
rs.MoveLast
Lien_Ket_Du_Lieu_Khoa
txtDem.Text = rs.AbsolutePosition & "/" & rs.RecordCount

End Sub
Private Sub cmdDau_Click()
rs.MoveFirst
Lien_Ket_Du_Lieu_Khoa
txtDem.Text = rs.AbsolutePosition & "/" & rs.RecordCount
End Sub
Private Sub cmdLuu_Click()
'kiem tra cac text box da nhap
If txtMaKhoa.Text = vbNullString Then
MsgBox "Phao nhap Ma khoa", vbInformation, "Loi nhap lieu"
txtMaKhoa.SetFocus
Exit Sub
End If
If txtTenKhoa.Text = vbNullString Then
MsgBox "Phao nhap Ten khoa", vbInformation, "Loi nhap lieu"
txtTenKhoa.SetFocus
Exit Sub
End If

'cap nhat vao bang
'neu la them moi
If fThem = True Then
rs.AddNew
End If
'ghi len bang
rs("makhoa") = txtMaKhoa.Text
rs("tenKhoa") = txtTenKhoa.Text
rs("dienthoai") = txtDienThoai.Text
rs.Update
'cap nhat lai text dem

txtDem.Text = rs.AbsolutePosition & "/" & rs.RecordCount
'cap nhat lai text box
txtTenKhoa.Locked = True
txtDienThoai.Locked = True
'cap nhat lai button
cmdLuu.Enabled = False
cmdThem.Enabled = True
cmdSua.Enabled = True
cmdXoa.Enabled = True
End Sub
Private Sub cmdSau_Click()
rs.MoveNext
If rs.EOF = True Then rs.MoveLast
Lien_Ket_Du_Lieu_Khoa
txtDem.Text = rs.AbsolutePosition & "/" & rs.RecordCount
End Sub
Private Sub cmdSua_Click()
'cho text box sua
Dieu_Khien_TextBox False
txtTenKhoa.SetFocus
'dieu kien cac button
cmdThem.Enabled = False
cmdSua.Enabled = False
cmdXoa.Enabled = False
cmdLuu.Enabled = True
'cap nhat lai co them
fThem = False
End Sub
Private Sub cmdThem_Click()
txtMaKhoa.Locked = False

txtMaKhoa.Text = vbNullString
txtDienThoai.Locked = False
txtDienThoai.Text = vbNullString
txtTenKhoa.Locked = False
txtTenKhoa.Text = vbNullString
txtMaKhoa.SetFocus
'dieu kien cac button
cmdThem.Enabled = False
cmdSua.Enabled = False
cmdXoa.Enabled = False
cmdLuu.Enabled = True
'cap nhat lai co them
fThem = True
End Sub
Private Sub cmdThoat_Click()
Unload Me
End Sub
Private Sub cmdTruoc_Click()
rs.MovePrevious
If rs.BOF = True Then rs.MoveFirst
Lien_Ket_Du_Lieu_Khoa
txtDem.Text = rs.AbsolutePosition & "/" & rs.RecordCount
End Sub
Private Sub cmdXoa_Click()
'hoi xac nhan tu user
Dim n As Integer
n = MsgBox("Ban muon xoa khong?", vbCritical + vbYesNo, "Xoa du lieu")
If n = vbNo Then
rs.MoveFirst
Else

'xoa record
rs.Delete
MsgBox "Ban da xoa thanh cong", vbInformation, "Xac nhan xoa"
'cap nhat lai button
rs.MoveLast
cmdLuu.Enabled = False
cmdThem.Enabled = True
cmdSua.Enabled = True
cmdXoa.Enabled = True
End If
'cap nhat text box dem
txtDem.Text = rs.AbsolutePosition & "/" & rs.RecordCount
Lien_Ket_Du_Lieu_Khoa
End Sub
Private Sub DataGrid1_Click()
Dim n As Integer
'n = DataGrid1.r
txtMaKhoa.Text = DataGrid1.Columns(0)
txtTenKhoa.Text = DataGrid1.Columns(1)
txtDienThoai.Text = DataGrid1.Columns(2)
End Sub
Private Sub Form_Load()
'ket noi voi co so du lieu
cnn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=D:\Tan\DAYHOC\KTLT2(VB2)\Practice\Quan ly Sinh
vien\SinhVien.mdb;"
cnn.CursorLocation = adUseClient
If cnn.State = adStateClosed Then cnn.Open
rs.Open "KHOA", cnn, adOpenDynamic, adLockOptimistic, adCmdTable


'khoi tao luoi data grid
Set DataGrid1.DataSource = rs
'khoi tao gia tri
rs.MoveFirst
Lien_Ket_Du_Lieu_Khoa
txtDem.Text = rs.AbsolutePosition & "/" & rs.RecordCount
fThem = False
'dieu khien text box va button
Dieu_Khien_TextBox True
cmdLuu.Enabled = False
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
'giai phong cac tai nguyen (record set,connection)
If rs.State = adStateOpen Then rs.Close
Set rs = Nothing
If cnn.State = adStateOpen Then cnn.Close
Set cnn = Nothing
End Sub
Private Sub Dieu_Khien_TextBox(khoa As Boolean)
'dieu khien text box
txtTenKhoa.Locked = khoa
txtDienThoai.Locked = khoa
End Sub
Private Sub Lien_Ket_Du_Lieu_Khoa()
txtMaKhoa.Text = rs("makhoa")
txtTenKhoa.Text = rs("tenKhoa")
txtDienThoai.Text = rs("DienThoai")
End Sub

×