AccessTr.neT

Tam Versiyon: bağlı tablo kaynağındaki tüm tabloları bağlamak
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2
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
Linked Table Manager (Bağlı Tablo Yöneticisi) yerine VB kullanımı konusundaki soru ile sizin sorunuz sanırım aynı. Linki inceleyiniz.
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
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]
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
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ış
Sayfalar: 1 2