• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Module VB6 kết nối access

Các Module, Class, UserControl và thư viện OCX, DLL hỗ trợ cho Visual Basic
User avatar
truongphu
VIP
VIP
Posts: 4765
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 519 times

Module VB6 kết nối access

Postby truongphu » Tue 08/12/2009 9:40 am

Tên: Module VB6 kết nối access
Loại: Module
Ngôn ngữ lập trình: VB6
Tác giả: truongphu
Chức năng: Module VB6 kết nối access


Trong module nầy, có:
* Public Con kết nối file, Rec kết nối Table, Rep để backup
* Sub OpenMDB mở file access, mật khẩu hoặc không
* Sub CloseMDB để giải phóng tài nguyên
* Sub CompactMDB: để nén file
* Sub OpenTable: Truy vấn table
* Function KiemTraTrungMa: kiễm tra trùng mã, field theo yêu cầu
* Sub KiemTraFileMDB: Kiểm tra file access có tồn tại trước phiên làm việc

Module
  1. Option Explicit
  2. ' Add References MS ActiveX Data Object 2.8 Library
  3. ' MS Jet and Replication Object 2.6 Library
  4. Public Con      As New Connection ' Ðê kêt nôi file access
  5. Public Rec      As New Recordset ' Ðê kêt nôi table
  6. Public Rep      As New JetEngine ' Ðê compact
  7.  
  8. Public Sub OpenMDB(FilePath As String, Optional ByVal sPassWord As String = vbNullString)
  9.     Con.CursorLocation = adUseClient ' Khai báo CursorLocation Ðê su dung datagrid
  10.    Con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FilePath & ";Persist Security Info=False;Jet OLEDB:Database Password=" & sPassWord & ";"
  11. ' Nê'u file access không có pass thì khi goi sub nâ`y ta Ðê trô'ng
  12. End Sub
  13.  
  14. Public Sub CloseMDB()
  15.     ' Rec phai mo' và Con phai mo' truo'c Ðó
  16.    Rec.Close: Set Rec = Nothing
  17.     Con.Close: Set Con = Nothing
  18. End Sub
  19.  
  20. Public Sub CompactMDB(FilePath As String, Optional ByVal sPassWord As String = vbNullString)
  21.     ' Muô'n Compact thì các kê't nô'i phai Ðóng
  22.    Dim OldFile As String, TempFile As String, sPath As String
  23.     sPath = Left(FilePath, Len(FilePath) - 4) & "TEMP.MDB"
  24.     OldFile = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FilePath & ";Jet OLEDB:" & "Database Password=" & sPassWord & ";"
  25.     TempFile = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sPath & ";Jet OLEDB:" & "Database Password=" & sPassWord & ";"
  26.         Rep.CompactDatabase OldFile, TempFile
  27.     Kill FilePath
  28.     Name sPath As FilePath
  29.     Set Rep = Nothing
  30. End Sub
  31.  
  32. Public Sub OpenTable(TableName As String) ' Select * From TableName
  33.    With Rec
  34.         .ActiveConnection = Con
  35.         .CursorType = adOpenDynamic
  36.         .LockType = adLockOptimistic
  37.         .Open TableName
  38.     End With
  39. End Sub
  40.  
  41. Public Function KiemTraTrungMa(Field As String, Value As String) As Boolean
  42.     Rec.MoveFirst
  43.     Select Case Rec.Fields(Field).Type ' Text hay Num
  44.        Case 202: Rec.Find "" & Field & " = '" & Value & "'" & ""
  45.         Case 3: Rec.Find "" & Field & " = " & Value & ""
  46.     End Select
  47.     If Rec.EOF Then KiemTraTrungMa = False Else KiemTraTrungMa = True
  48. End Function
  49.  
  50. Public Sub KiemTraFileMDB(FilePath As String)
  51.         If Dir$(FilePath, vbHidden Or vbSystem) = Empty Then
  52.         MsgBox " File MDB not found!" & vbNewLine & "(" & FilePath & ")", vbCritical, "Error"
  53.         End
  54.     End If
  55. End Sub
  56.  
  57.  


Cách sử dụng module cho các bạn chưa quen: Xin load project bên dưới
Attachments
Module ADODC.rar
(10.5 KiB) Downloaded 3117 times


o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

phoenixsinh
Posts: 8
Joined: Wed 29/10/2008 4:02 pm
Location: Bình Thuận
Contact:

Re: Module VB6 kết nối access

Postby phoenixsinh » Sun 07/02/2010 9:51 am

thank bác
http://ctrlf5.info
Là hạt cát vô danh
Giữa đại dương với muôn ngàn hạt cát
Tôi không bao giờ chịu tôi ở lại bờ kia

jony90
Posts: 9
Joined: Sat 26/03/2011 4:03 pm

Re: Module VB6 kết nối access

Postby jony90 » Sat 26/03/2011 4:08 pm

anh ơi.cho em hỏi.cái hàm kiểm tra trùng mã ý.sao lại là case202 mà k phải là case khác ạ.và ở dưới sao là case3 ạ.em mới học nên k bik mong anh giải thích giùm:D

User avatar
truongphu
VIP
VIP
Posts: 4765
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 519 times

Re: Module VB6 kết nối access

Postby truongphu » Sat 26/03/2011 4:26 pm

DataTypeEnum

Constant Value Description
AdArray 0x2000 A flag value, always combined with another data type constant, that indicates an array of the other data type. Does not apply to ADOX.
adBigInt 20 Indicates an eight-byte signed integer (DBTYPE_I8).
adBinary 128 Indicates a binary value (DBTYPE_BYTES).
adBoolean 11 Indicates a Boolean value (DBTYPE_BOOL).
adBSTR 8 Indicates a null-terminated character string (Unicode) (DBTYPE_BSTR).
adChapter 136 Indicates a four-byte chapter value that identifies rows in a child rowset (DBTYPE_HCHAPTER).
adChar 129 Indicates a string value (DBTYPE_STR).
adCurrency 6 Indicates a currency value (DBTYPE_CY). Currency is a fixed-point number with four digits to the right of the decimal point. It is stored in an eight-byte signed integer scaled by 10,000.
adDate 7 Indicates a date value (DBTYPE_DATE). A date is stored as a double, the whole part of which is the number of days since December 30, 1899, and the fractional part of which is the fraction of a day.
adDBDate 133 Indicates a date value (yyyymmdd) (DBTYPE_DBDATE).
adDBTime 134 Indicates a time value (hhmmss) (DBTYPE_DBTIME).
adDBTimeStamp 135 Indicates a date/time stamp (yyyymmddhhmmss plus a fraction in billionths) (DBTYPE_DBTIMESTAMP).
adDecimal 14 Indicates an exact numeric value with a fixed precision and scale (DBTYPE_DECIMAL).
adDouble 5 Indicates a double-precision floating-point value (DBTYPE_R8).
adEmpty 0 Specifies no value (DBTYPE_EMPTY).
adError 10 Indicates a 32-bit error code (DBTYPE_ERROR).
adFileTime 64 Indicates a 64-bit value representing the number of 100-nanosecond intervals since January 1, 1601 (DBTYPE_FILETIME).
adGUID 72 Indicates a globally unique identifier (GUID) (DBTYPE_GUID).
adIDispatch 9 Indicates a pointer to an IDispatch interface on a COM object (DBTYPE_IDISPATCH).Note This data type is currently not supported by ADO. Usage may cause unpredictable results.
adInteger 3 Indicates a four-byte signed integer (DBTYPE_I4).
adIUnknown 13 Indicates a pointer to an IUnknown interface on a COM object (DBTYPE_IUNKNOWN).Note This data type is currently not supported by ADO. Usage may cause unpredictable results.
adLongVarBinary 205 Indicates a long binary value.
adLongVarChar 201 Indicates a long string value.
adLongVarWChar 203 Indicates a long null-terminated Unicode string value.
adNumeric 131 Indicates an exact numeric value with a fixed precision and scale (DBTYPE_NUMERIC).
adPropVariant 138 Indicates an Automation PROPVARIANT (DBTYPE_PROP_VARIANT).
adSingle 4 Indicates a single-precision floating-point value (DBTYPE_R4).
adSmallInt 2 Indicates a two-byte signed integer (DBTYPE_I2).
adTinyInt 16 Indicates a one-byte signed integer (DBTYPE_I1).
adUnsignedBigInt 21 Indicates an eight-byte unsigned integer (DBTYPE_UI8).
adUnsignedInt 19 Indicates a four-byte unsigned integer (DBTYPE_UI4).
adUnsignedSmallInt 18 Indicates a two-byte unsigned integer (DBTYPE_UI2).
adUnsignedTinyInt 17 Indicates a one-byte unsigned integer (DBTYPE_UI1).
adUserDefined 132 Indicates a user-defined variable (DBTYPE_UDT).
adVarBinary 204 Indicates a binary value.
adVarChar 200 Indicates a string value.
adVariant 12 Indicates an Automation Variant (DBTYPE_VARIANT).Note This data type is currently not supported by ADO. Usage may cause unpredictable results.
adVarNumeric 139 Indicates a numeric value.
adVarWChar 202 Indicates a null-terminated Unicode character string.
adWChar 130 Indicates a null-terminated Unicode character string (DBTYPE_WSTR).
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

jony90
Posts: 9
Joined: Sat 26/03/2011 4:03 pm

Re: Module VB6 kết nối access

Postby jony90 » Sat 26/03/2011 6:35 pm

ui anh ơi cái j đây mà dài thế.anh giúp e với.e đang làm bt lớn mà mù về phần này quá:H

jony90
Posts: 9
Joined: Sat 26/03/2011 4:03 pm

Re: Module VB6 kết nối access

Postby jony90 » Sat 26/03/2011 6:41 pm

à.e hiểu rồi.tks anh.:D
à anh ơi e hỏi thêm tẹo
anh biết làm cái mã hóa đơn tự sinh không ạ.nếu được anh cho em 1 project tham khảo với:H.tks anh

01676167394
Thành viên tích cực
Thành viên tích cực
Posts: 128
Joined: Sat 18/06/2011 8:45 am
Has thanked: 2 times
Been thanked: 13 times

Re: Module VB6 kết nối access

Postby 01676167394 » Tue 21/06/2011 2:06 pm

Tớ là người mới gia nhập form và không biết gửi bài cho mình mạo muội hỏi 1 chút!

1.Làm thế nào để học tốt và nhanh nhất với VB Library của form
2.Nếu như chỉ học với VB Library thì làm sao hiểu đc người tác giả cũng như những bài viết đó nói gì.
3.Vì tớ là người mới học nên không hiểu cho lắm có gì nói sai xin bỏ quá cho tớ.

nếu ai có thể cho mình cách học dễ hiểu nhất từ vb library thì cho mình câu trả lời sớm nha.

thank you.


Return to “[VB] Module, Class, UserControl, OCX”

Who is online

Users browsing this forum: No registered users and 0 guests