Skip to main content

AccessTr.neT


Tablo Varmı Kontrol Ettirmek

Tablo Varmı Kontrol Ettirmek

Çözüldü #1
Hocalarım hem aktif açık olan ve farklı database de bölümler ve Kişiler diye tablolar mevcutmu buton ile nasıl kotrol ettiririz 
Tabloları kontrol edecek  ayrı ayrı butonlarla da olabilir 
Eğer varsa okul (aktif açıkmışsın database) programında bölümler verisi mevcut diğer tespit edilenler daabasinden Kişiler varmı diye kontrol edip msgnıs ile bilgilendirecek 

Bunu yapacak kodu nasıl bulurum 

Sitede aradım tablo içindenveri varmı diye kontroller çıkıyor sadece 
Teşekkürler
Cevapla
#2
Referanslara "ActiveX Data Object X.X Library" referansını ekle,

Aktif Veritabanı için

Dim GTabloAdi, GSorgu As String
Dim GKontrol1, GKontrol2

Dim rst As Recordset

GKontrol1 = False
GKontrol2 = False

GSorgu = "SELECT MSysObjects.Name FROM MSysObjects " & "WHERE Left$([Name],1)<>'~' AND Left$([Name],4)<>'MSys' " & "AND MSysObjects.Type =1 ORDER BY MSysObjects.Name"

Set rst = CurrentDb().OpenRecordset(GSorgu)

rst.MoveFirst
       
   Do Until rst.EOF
             
       If rst!Name = "Kişiler" Then
       GKontrol1 = True
       End If
       
       If rst!Name = "bölümler" Then
       GKontrol2 = True
       End If
           
   rst.MoveNext
           
   Loop

   If GKontrol1 = True Then
       MsgBox ("Kişiler Tablosu Var")
   Else
       MsgBox ("Kişiler Tablosu Yok")
   End If
   
   If GKontrol2 = True Then
       MsgBox ("bölümler Tablosu Var")
   Else
       MsgBox ("bölümler Tablosu Yok")
   End If

rst.Close
       
Set rst = Nothing


Farklı veritabanı için

Dim cnnDB As ADODB.Connection
Dim rstList As ADODB.Recordset
Dim GKontrol1, GKontrol2

Dim GVeriTabani As String

GKontrol1 = False
GKontrol2 = False

GVeriTabani = "D:\Test\Test.mdb"

Set cnnDB = New ADODB.Connection

With cnnDB
   .Provider = "Microsoft.Jet.OLEDB.4.0"
   .Open GVeriTabani
End With

  Set rstList = cnnDB.OpenSchema(adSchemaTables)

  With rstList
     Do While Not .EOF
     
        If .Fields("TABLE_TYPE") <> "VIEW" And "Kişiler" = .Fields("TABLE_NAME") Then
           GKontrol1 = True
        End If
       
       If .Fields("TABLE_TYPE") <> "VIEW" And "bölümler" = .Fields("TABLE_NAME") Then
           GKontrol2 = True
        End If
       
        .MoveNext
     Loop
     
      If GKontrol1 = True Then
       MsgBox ("Kişiler Tablosu Var")
   Else
       MsgBox ("Kişiler Tablosu Yok")
   End If
   
   If GKontrol2 = True Then
       MsgBox ("bölümler Tablosu Var")
   Else
       MsgBox ("bölümler Tablosu Yok")
   End If
     
  End With
  cnnDB.Close
  Set cnnDB = Nothing
Cevapla
#3
Hocam teşekkürlerini yardımlarınız için bir şey daha sormak istiyorum hazırlanan projelere bu referansları ekledik programı mde yapıp kapattık ve bu programı farklı bir yerde çalıştıracağız bu bilgisayarda da herhangi bir ayar yapmaya gerek varmı biz ayarlayıp kapattığımız için programın içine gömülmüş mü oldu
Değişimde gelişimde beyinlerin değişmesi ve gelişmesi ile olur. By Bibib
Cevapla
#4
Ayar yapmaya gerek yok. Farklı bilgisayarda referans hatası verirse mdb'den referansı ekleyip mde'ye çevirirsin.
Cevapla
#5
Hocam yeni kodları alıp uygulayabildim aktif veri tabanı olan kod da sıkıntı olmadı ama farklı veritabanı olanda “.open GVeriTabani” kısmında “Sağlayıcı bulunamıyor. Düzgün yüklenmemiş” hatası veriyor 
Microsoft Data object 2.8 library 
Referanslarda işaretli
Ofis 2016 64 bir kullanıyorum
Değişimde gelişimde beyinlerin değişmesi ve gelişmesi ile olur. By Bibib
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task