Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Help] Tìm field là autonumber bằng ADO
#1
Có bạn nào biết giúp mình cái này với :
- Sau khi link table từ file mdb vào access, để tìm field có thuộc tính autonumber mình làm như sau

Mã:
Function get_field_Auto(tbl As String) As String
  Dim db As DAO.Database
  Dim tdf As DAO.TableDef
  Dim fld As DAO.Field
  Dim kq As String
  kq = ""
 
  Set db = CurrentDb()
  Set tdf = db.TableDefs(tbl)
  For Each fld In tdf.Fields
       If fld.Attributes And dbAutoIncrField Then
           kq = fld.Name
       End If
  Next
  get_field_Auto = kq
End Function

nói chung là oK. tuy nhiên mình có một rắc rối như sau :

Khi link mdb với nguồn dữ liệu mysql qua ODBC mình phát hiện một điều là các table từ mysql có field thuộc tính autonumber sau khi link vào mdb đều bị mất chỉ còn là number - integer , thuộc tính index : yes no dulicate. Vì vậy đoạn code trên không xác định được field autonumber nữa. Có bạn nào có các xử lý giúp với.

- code đang làm nhưng chưa có kết qủa

Mã:
Sub find_auto(tbl As String)
   
   Dim rs As ADODB.Recordset
   Dim f As ADODB.Field
   Set rs = New ADODB.Recordset
   rs.ActiveConnection = CurrentProject.Connection
   rs.CursorLocation = adUseClient
   rs.CursorType = adOpenStatic
   rs.LockType = adLockOptimistic
   rs.Open "select * from " & tbl
   For Each f In rs.Fields
       Debug.Print f.Name & " : " & _
                   " type : " & f.Type & _
                   " attr : " & CBool(f.Attributes And DB_AUTOINCRFIELD) & _
                   ""
   Next f
   Set rs = Nothing
End Sub

'find_auto("phieu")
'id :  type : 3 attr : True
'ma_phieu :  type : 202 attr : False
'ngay :  type : 7 attr : True
'to_chuc_id :  type : 202 attr : False
'tien :  type : 5 attr : True
'loai :  type : 202 attr : False
Chữ ký của thucgia Hix, Access quả nhiên lợi hại !!!! http://vibigaba.esy.es/
ღღღღღTài sản của thucgia (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#2
Bạn thử tham khảo 2 link này !

https://msdn.microsoft.com/en-us/library...s.85).aspx
https://support.microsoft.com/en-us/kb/193947
Mong giúp được bạn.
Thân./.
Reply
Những người đã cảm ơn thucgia
#3
(31-10-15, 01:27 PM)Minh Tiên Đã viết: Bạn thử tham khảo 2 link này !

https://msdn.microsoft.com/en-us/library...s.85).aspx
https://support.microsoft.com/en-us/kb/193947
Mong giúp được bạn.
Thân./.

Làm ra rùi nè gửi các bạn tham khảo, vậy là xác định được field auto của một table từ mysql

Mã:
Function getAuto(tbl As String) As String
   'neu co "ten" else ""
   On Error GoTo ErrHandler
   
   Dim rs As ADODB.Recordset
   Dim f As ADODB.Field
   Dim kq As String
   
   kq = ""
   Set rs = New ADODB.Recordset
   OpenMyConnect
   rs.ActiveConnection = cnn 'CurrentProject.Connection
   rs.CursorLocation = adUseServer
   rs.CursorType = adOpenForwardOnly
   rs.Open "Select * from " & tbl
   For Each f In rs.Fields
       If f.Properties("ISAUTOINCREMENT") = True Then
           kq = f.Name
       End If
   Next f
   getAuto = kq
ExitSub:
   Set rs = Nothing
   CloseMyConnect
   Exit Function
ErrHandler:
   MsgBox Err.Number & " -getAuto()- " & Err.Description
   Resume ExitSub

End Function

Còn cái này để làm gì thì tùy 015
Chữ ký của thucgia Hix, Access quả nhiên lợi hại !!!! http://vibigaba.esy.es/
ღღღღღTài sản của thucgia (View All Items) ღღღღღ
Reply
Những người đã cảm ơn maidinhdan , Minh Tiên


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
Question [Help] Link tất các table trong một file.mdb bằng VBA MinhnHang 8 188 8 Giờ trước
Bài mới nhất: MinhnHang
  Summary bằng VBA trong MS Access. MinhnHang 6 319 08-11-16, 08:36 AM
Bài mới nhất: MinhnHang
  [Help] xin hỗ trợ bằng Thủ thuật VBA Trần Linh 3 239 13-07-16, 09:06 PM
Bài mới nhất: ongke0711
  Gửi tin nhắn SMS bằng Access lmthu 6 342 25-06-16, 12:23 AM
Bài mới nhất: zinzin8x
Photo Hướng dẫn tính tôn kho từ một bảng chi tiết nhập xuất tt1212 8 399 17-06-16, 04:47 PM
Bài mới nhất: tt1212

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ