https://www.devhut.net/2010/06/12/ms-acc...e-objects/
Bu bağlantıda tüm türlerin kodu var
Docmd.transferspreadsheet Fonksiyon Olarak Çağırma
ListObjects Tables_Linked
Yukardaki gibi çağırılırsa bağlantılı tablo adları bulunur anladığım koddan.
Adam enum ile ayarlamış ve ordaki yazlılanlara göre tablo adı,form adı gibi olanlar bulunur anladığım.
Aklımdayken sorayım hani olmazda tablo adının başına MSys ile başlatırsak o tabloyuda teyet geçer heralde.
Tablo oluştururken MSys ile başlasak sorun olurmu yani system olarak algılarmı.
Enum ObjectType
Tables_Local = 1
Tables_Linked_ODBC = 4
Tables_Linked = 6
Queries = 5
Forms = -32768
Reports = -32764
Macros = -32766
Modules = -32761
End Enum
Function ListObjects(lObjectType As ObjectType)
On Error GoTo Error_Handler
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim sSQL As String
sSQL = "SELECT MsysObjects.Name AS [ObjectName]" & vbCrLf & _
" FROM MsysObjects" & vbCrLf & _
" WHERE (((MsysObjects.Name Not Like '~*') And (MsysObjects.Name Not Like 'MSys*'))" & vbCrLf & _
" AND (MsysObjects.Type=" & lObjectType & "))" & vbCrLf & _
" ORDER BY MsysObjects.Name;"
Set db = CurrentDb
Set rs = db.OpenRecordset(sSQL, dbOpenSnapshot)
With rs
If .RecordCount <> 0 Then
Do While Not .EOF
Debug.Print ![ObjectName]
.MoveNext
Loop
End If
End With
Error_Handler_Exit:
On Error Resume Next
If Not rs Is Nothing Then
rs.Close
Set rs = Nothing
End If
If Not db Is Nothing Then Set db = Nothing
Exit Function
Error_Handler:
MsgBox "The following error has occurred" & vbCrLf & vbCrLf & _
"Error Number: " & Err.Number & vbCrLf & _
"Error Source: ListObjects" & vbCrLf & _
"Error Description: " & Err.Description & _
Switch(Erl = 0, "", Erl <> 0, vbCrLf & "Line No: " & Erl) _
, vbOKOnly + vbCritical, "An Error has Occurred!"
Resume Error_Handler_Exit
End Function
Yukardaki gibi çağırılırsa bağlantılı tablo adları bulunur anladığım koddan.
Adam enum ile ayarlamış ve ordaki yazlılanlara göre tablo adı,form adı gibi olanlar bulunur anladığım.
Aklımdayken sorayım hani olmazda tablo adının başına MSys ile başlatırsak o tabloyuda teyet geçer heralde.
Tablo oluştururken MSys ile başlasak sorun olurmu yani system olarak algılarmı.
Enum ObjectType
Tables_Local = 1
Tables_Linked_ODBC = 4
Tables_Linked = 6
Queries = 5
Forms = -32768
Reports = -32764
Macros = -32766
Modules = -32761
End Enum
Function ListObjects(lObjectType As ObjectType)
On Error GoTo Error_Handler
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim sSQL As String
sSQL = "SELECT MsysObjects.Name AS [ObjectName]" & vbCrLf & _
" FROM MsysObjects" & vbCrLf & _
" WHERE (((MsysObjects.Name Not Like '~*') And (MsysObjects.Name Not Like 'MSys*'))" & vbCrLf & _
" AND (MsysObjects.Type=" & lObjectType & "))" & vbCrLf & _
" ORDER BY MsysObjects.Name;"
Set db = CurrentDb
Set rs = db.OpenRecordset(sSQL, dbOpenSnapshot)
With rs
If .RecordCount <> 0 Then
Do While Not .EOF
Debug.Print ![ObjectName]
.MoveNext
Loop
End If
End With
Error_Handler_Exit:
On Error Resume Next
If Not rs Is Nothing Then
rs.Close
Set rs = Nothing
End If
If Not db Is Nothing Then Set db = Nothing
Exit Function
Error_Handler:
MsgBox "The following error has occurred" & vbCrLf & vbCrLf & _
"Error Number: " & Err.Number & vbCrLf & _
"Error Source: ListObjects" & vbCrLf & _
"Error Description: " & Err.Description & _
Switch(Erl = 0, "", Erl <> 0, vbCrLf & "Line No: " & Erl) _
, vbOKOnly + vbCritical, "An Error has Occurred!"
Resume Error_Handler_Exit
End Function
Kriterleri ayarlarken onu siz belirlersiniz isterseniz msys ile başlayanları da alır ama doğrudan isimde msys kullanmanın bir sakıncası olur mu bilmiyorum ama sanmam bir sıkıntı doğuracağını belki tablo adlarını çekerken zorluk çıkarabilir. Ama schema yönteminde bir problem doğurur mu böyle bir isimlendirme denemek gerek
Tamam üstad sağolasın.
Verdiğin linkteki kodlar çok iş görür.Ordaki MSys şartlarını kaldırmaya gerek yok kriter olarak aramada sadece listbox gibi yada combobox gibi nesnenelein içine alırken linkteki koddaki where ile başlayan kod kullanılabilir eğer şu tablo adına eşit gibi kriter aranacaksa where ile olsun farketmez.
Yarın bunuda arşive ekleyeyim
Verdiğin linkteki kodlar çok iş görür.Ordaki MSys şartlarını kaldırmaya gerek yok kriter olarak aramada sadece listbox gibi yada combobox gibi nesnenelein içine alırken linkteki koddaki where ile başlayan kod kullanılabilir eğer şu tablo adına eşit gibi kriter aranacaksa where ile olsun farketmez.
Yarın bunuda arşive ekleyeyim
Sayın berduş hocam şimdi aklıma geldi unutmadan yazayım istedim sen bu işlerden anlarsın.
Şimdi sadece sistem tablolarının adını bulmak için nasıl kod gerek.İf like "*MSys*" bunun gibi şart koşulları olmadan.
Tam dalıp uyuyacağım garip garip Access soruları aklıma geliyor
Allahtan adamlar cep telefınu icat etmişler bilgisyar açmadan semen soruyu yazıyoruz
Şimdi sadece sistem tablolarının adını bulmak için nasıl kod gerek.İf like "*MSys*" bunun gibi şart koşulları olmadan.
Tam dalıp uyuyacağım garip garip Access soruları aklıma geliyor
Allahtan adamlar cep telefınu icat etmişler bilgisyar açmadan semen soruyu yazıyoruz
sn feraz arşive eklediğiniz son kod nedir paylaşabilir misiniz
Konuyu Okuyanlar: 4 Ziyaretçi