Skip to main content

AccessTr.neT


bağlı tablo kaynağındaki tüm tabloları bağlamak

bağlı tablo kaynağındaki tüm tabloları bağlamak

Çözüldü #1
hayırlı cumalar
bağlı tablo ile veri tabanımızdaki bilgilere ulaşıyoruz

DoCmd.TransferDatabase acLink, "ODBC", "ODBC;DSN=karpuz", acTable, "sebze", "t_sebze", False

bu kod ile sebze tablosuna t_sebze bağlı tabloso ile bağlanıyoruz
ama benim istediğim bağlandığımız veri tabanındaki (buna karşı taraf diyeceğim) tüm tablolara bağlanmak
yani karşı tarafa yeni tablo eklenebilir bu durumda bizim projede bunun karşılığı olmaz
o yüzden tablo isimlerine bağlı kalmadan

For Each c In Me.Controls
DoCmd.TransferDatabase acLink, "ODBC", "ODBC;DSN=karpuz", acTable, "sebze", "t_sebze", False
next

gibi bir döngü kullanarak karşı taraftaki tüm tabloları bağlamak istiyorum
teşekkürler
örnek ekleyemiyorum çünkü manasız olacak bağlanacak veri tabanı sizlerde olmayacağı için zaten çalışmayacak
@benbendedeilem
Cevapla
Çözüldü #2
Linked Table Manager (Bağlı Tablo Yöneticisi) yerine VB kullanımı konusundaki soru ile sizin sorunuz sanırım aynı. Linki inceleyiniz.
Cevapla
Çözüldü #3
diyelimki bağlı tabloların değişen yeni kaynağını biliyoruz ve kaynağın adresi elimizde
buda bir mysql tablosu normal olarak bağlı tablo yönetici ile bağlandığımız kaynak

DoCmd.TransferDatabase acLink, "ODBC", "ODBC;DSN=karpuz", acTable, "sebze", "t_sebze", False

şimdi aşağıdaki kodda bu bağlantı adresini belirterek bu mysql veri tabanındaki tabloların yeni bağlantısını nasıl oluşturabiliriz

Kod:
Function ReLink(strDir As String, DefaultData As Boolean) _
    As Boolean
    Dim cat As ADOX.Catalog
    Dim tdfRelink As ADOX.Table
    Dim oDBInfo As DBInfo
    Dim strPath As String
    Dim strName As String
    Dim intCounter As Integer
    Dim vntStatus As Variant
    vntStatus = SysCmd(acSysCmdSetStatus, "Yükleniyor")
    Set cat = New ADOX.Catalog
    Set oDBInfo = New DBInfo
    With cat
        .ActiveConnection = CurrentProject.Connection
        oDBInfo.FullName = strDir
        strPath = oDBInfo.FilePathOnly
        strName = Left(oDBInfo.fileName, InStr(oDBInfo.fileName, ".") - 1)
        On Error Resume Next
        Call SysCmd(acSysCmdInitMeter, "Data Tabloları Yükleniyor", .Tables.Count)
        For Each tdfRelink In .Tables
            intCounter = intCounter + 1
            Call SysCmd(acSysCmdUpdateMeter, intCounter)
            If .Tables(tdfRelink.Name).Type = "LINK" Then
                tdfRelink.Properties("Jet OLEDB:Link Datasource") = strPath & strName & IIf(DefaultData, "Data.Mdb", ".mdb")
           End If
           If Err.Number Then
                Exit For
            End If
        Next tdfRelink
    End With
    Call SysCmd(acSysCmdRemoveMeter)
    vntStatus = SysCmd(acSysCmdClearStatus)
    ReLink = (Err = 0)
End Function

teşekkürler

yeni dosya seçme penceresi açılmasın
zaten dosyanın yeni yerini biliyoruz
@benbendedeilem
Son Düzenleme: 27/04/2012, 10:37, Düzenleyen: accessman.
Cevapla
Çözüldü #4
Programda iki tablo var
birisi bir accesse bağlı
birisi ODBC veritabanlarından bir mysql tablosuna bağlı
ikisinin de mouse üzerine gelince çıkan bağlı adres yolu bilgisinin resimlerini ekledim
şimdi bu resimlerde çıkan adres yolu bilgilerinden hareketle

Function ReLink içerisinde nasıl bir değişiklik yaparak bağlı tablo penceresi çıkmadan dosya yolu seçmeye gerek kalmadan yapabilirim

[Resim: 13355187111.jpg]
[Resim: 13355187451.jpg]
@benbendedeilem
Cevapla
Çözüldü #5
Kod:
Set objFileDialog = Application.FileDialog(msoFileDialogOpen)
        With objFileDialog
            .Show
            .AllowMultiSelect = False
            strFilename = .SelectedItems(1)
        End With

yerine

Kod:
strFilename = "D:\access-23012012\bağlı tablo\bağlı tablo\Yeni klasör\ÖRNEK_be.mdb"
yazarsam dosya seçmeme gerek kalmıyor

şimdi geriye ODBC veri tabnı için nereye ne yazmam gerekiyor onu bulmaya
cumadan sonra devam ederiz
@benbendedeilem
Son Düzenleme: 27/04/2012, 13:12, Düzenleyen: accessman.
Cevapla
Çözüldü #6
Kod:
DoCmd.TransferDatabase acLink, "Microsoft Access", "D:\access-23012012\bağlı tablo\bağlı tablo\ÖRNEK_be.mdb", acTable, "tablo1", "gusto", False
Kod:
DoCmd.TransferDatabase acLink, "ODBC", "ODBC;DSN=h", acTable, "sebze", "t_sebze", False
"D:\access-23012012\bağlı tablo\bağlı tablo\ÖRNEK_be.mdb" yerini
"ODBC;DSN=h"
almış
@benbendedeilem
Son Düzenleme: 27/04/2012, 14:02, Düzenleyen: accessman.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da