Merhabalar;
İlk örnekteki kodlardan hangisi sadece sürücüyü belirlemek için kullanılabilir.
Form açıldığında sadece sürücüyü metin kutusuna yazsın.
Sürücünün bulunması işinden vazgeçtim
Sledgeab'ın örneğinde bağlı tablo adresinin yazılı olduğu bölüm (MsysObjects) den alınmış. Yanlış anlamadıysam bu bölüme elle müdahele edilemiyor.
Fakat bu bölüme herhangi bir şekilde müdahale edilebilirse sledgeab'ın örneğinde bizim çalışmamızın bulunduğu yeri gösteren alanın bilgilerini msysObjects bölümüne ekleyebilirsek bağlı tablo bilgilerini otamatik yenileyebilirz heralde.
Bunları söylemesi kolay tabi. Ama benim yapabileceğim bi şey değil.
Benim yapabileceğim şey bunun çözülebileceğini ümit etmek.
Beklemekteyim efendim...
sayın herdoğan
Bahsettiğiniz sürücüsü bilgisi zaten o örnekte yer alıyor. Dosya dizini yazan yere bakarsanız göreceksiniz. Bu arada, yine sledgeab'ın yayınladığı başka bir örnekte bağlı veritabanını -eğer bağlantı yoksa- soran ve gösterildiğinde çalışan bir çalışma yer alıyor. Sanırım onu görmediniz?
Uygulamanın bulunduğu sürücünün harfini öğrenmek için aşağıdaki uygulamayı kullanalilirsin.
[
attachment=6631]
Mehmet hocamın bahsettiği uygulama aşağıdaki linkte
Bağlı Tablo Denetleme
Sayın mehmetdemiral ve sledgeab;
Ben sorumu zaten gösterdiğiniz örnek üzerinden sordum.
Sledgeab çalışmamızın bulunduğu yeri gösteren bölümü yapmış.
her iki
Access in de aynı klasörde olması durumunda bağlı tablonunda yolunu veriyor bu. bulunan yolu MsyObject e kaydedebilirmiyiz. Bu kayıt yapılırsa kullancının bağlantıları yenilemesi gerekmeyecek. aynı dosya içinde iseler kendisi bulacak .
Örnekteki en üstte bulunan adresin Msy ye kaydı yapılabilirmi
Cevap yazılan saatlere baktımda
Küçük dilimi yuttum, büyüğü zor kurtardım!
sn herdogan,
16. mesajda verdiğim linkteki uygulamada bulunan ReLink fonksiyonunu aşağıdaki kod ile değiştirirsen, bağlı tablo aynı dosya içinde iseler kendisi bulur
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, "Tablolar Bulundu ve Yükleme Başladı.", .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") = CurrentProject.path & "\" & "TABLOARINBULUNDUĞUMDBADI.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
koddaki TABLOARINBULUNDUĞUMDBADI.mdb'yi kendi uygulamana göre değiştir.