Merhaba arkadaşlar.
Hazırladığım uygulamayı komple tüm dosyaları ile birlikte, anamakinamız üzerinde bir klasöre koydum. paylaşımı olan bir klasör. uygulamada form doldurulup worde atarak talimat oluşturuluyor. uygulama açılıyor ancak formlar doldurulup oluştur dendiğinde her nekadar oluşturuldu desede herhangi bir oluşturma gerçekleşmiyor. uygulama klasörünü masaüstüme aldığımda sorunsuz çalışıyor.
oluşturma yolum şu şekilde;
Kod:
strTemplateLocation = CurrentProject.Path & "\origins" & "\efttalimat.docx"
ağda çalıştırabilmek için ne yapmam gerekiyor. Forumda arama yaptığımda aşağıdaki linkte bağlı tablo denetleme diye bir konu gördüm. benim sorunumla alakalımıdır anlayamadım. yardımcı olabilirseniz sevinirim.
https://accesstr.net/konu-bagli-tablo-denetleme.html
Derzulya Merhaba,
Çalışman
Access veritabanlı
Excel uygulaması mıdır ?
Eğer benim belirttiğim şekilde ise aşağıda size verdiğimiz kodu deneyiniz.
VBA kütüphanesinden Microsoft Form 2.0 Libary seçmeniz gerektiğini hatırlatmak isterim.
baglan.Open "provider=Microsoft.ACE.OLEDB.12.0;data source =" & ThisWorkbook.Path & "\Database.accdb"
Derzulya,
Yada aşağıdaki kodu yazıp deneyiniz..
strTemplateLocation = ThisWorkbook.Path & "\origins" & "\efttalimat.docx"
(29/02/2020, 11:58)derzulya yazdı: Hazırladığım uygulamayı komple tüm dosyaları ile birlikte, anamakinamız üzerinde bir klasöre koydum
Merhaba, klasör ana makinada bulunuyorsa, bağlı tabloların bulunduğu yol olarak tanımlamalısınız. Kod içerisinde currentproject.path kodunu kullanmışsınız. Bu açtığınız
Access uygulamasının bulunduğu dizindir. Tabloların bulunduğu makinanın yolunu bulmak için
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim sSQL As String
sSQL = "SELECT MsysObjects.Name AS [ObjectName], MsysObjects.Database FROM MsysObjects WHERE (((MsysObjects.Name Not Like '~*') And (MsysObjects.Name Not Like 'MSys*')) AND (MsysObjects.Type=6)) ORDER BY MsysObjects.Name;"
Set db = CurrentDb
Set rs = db.OpenRecordset(sSQL, dbOpenSnapshot)
With rs
If .RecordCount <> 0 Then
Metin1 = Left(rs![Database], InStrRev(rs![Database], "\"))
End If
End With
şeklinde kod kullanmalısınız. Bu kod Metin1 isimli metin kutusuna, tabloların bulunduğu veritabanının dizinini yazdırır.
(04/03/2020, 16:46)Lenadro yazdı: ThisWorkbook.Path
Bu kodu
Access içerisinde çalıştıramazsınız. Yukarıda belirttiğim gibi bunun karşılığı currentproject.path'dır. Sizin kod sanırım
Excel için.
(04/03/2020, 17:47)ozanakkaya yazdı: (29/02/2020, 11:58)derzulya yazdı: Hazırladığım uygulamayı komple tüm dosyaları ile birlikte, anamakinamız üzerinde bir klasöre koydum
Merhaba, klasör ana makinada bulunuyorsa, bağlı tabloların bulunduğu yol olarak tanımlamalısınız. Kod içerisinde currentproject.path kodunu kullanmışsınız. Bu açtığınız Access uygulamasının bulunduğu dizindir. Tabloların bulunduğu makinanın yolunu bulmak için
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim sSQL As String
sSQL = "SELECT MsysObjects.Name AS [ObjectName], MsysObjects.Database FROM MsysObjects WHERE (((MsysObjects.Name Not Like '~*') And (MsysObjects.Name Not Like 'MSys*')) AND (MsysObjects.Type=6)) ORDER BY MsysObjects.Name;"
Set db = CurrentDb
Set rs = db.OpenRecordset(sSQL, dbOpenSnapshot)
With rs
If .RecordCount <> 0 Then
Metin1 = Left(rs![Database], InStrRev(rs![Database], "\"))
End If
End With
şeklinde kod kullanmalısınız. Bu kod Metin1 isimli metin kutusuna, tabloların bulunduğu veritabanının dizinini yazdırır.
(04/03/2020, 16:46)Lenadro yazdı: ThisWorkbook.Path
Bu kodu Access içerisinde çalıştıramazsınız. Yukarıda belirttiğim gibi bunun karşılığı currentproject.path'dır. Sizin kod sanırım Excel için.
tamamdır. teşekkür editorum.
Sn.ozanbey nokta atışı kısa ve öz çözümleriniz için teşekkür ederim