(05/03/2020, 16:38)berduş yazdı: Bu da 2. bir yöntem --> referanslara Ado 2.8 eklenmiştir'Çok teşekkürler hocam bu yöntem oldu ama mdb dosyasına dönüştürünce buton gitti. İşyerimde lisanslı sürüm Access 2010 ve kullanmış olduğum raporlama yazılımı sadece mdb ile direk import etme yaptığından eğer sizin için sakıncası yoksa bu sistemi mdb dosyasına adapte edebilirmisiniz hocam? Kusura bakmayın. accdb formatında raporlama yapabilmem için ODBC bağlantısı kullanmam gerekmektedir buda ayrı bir zaman kaybı. Çok teşekkür ederim.
'hy_Geçici_tablo_var_mı_varsa_sil_____
If DCount("*", "MSysObjects", "Name='TmpTablo' and type in (1,4,6)") > 0 Then DoCmd.DeleteObject acTable, "TmpTablo"
DoCmd.TransferSpreadsheet TransferType:=acLink, _
TableName:="TmpTablo", _
SpreadsheetType:=10, _
FileName:=CurrentProject.Path & "\donemoncesi.XLSX", _
HasfieldNames:=True, _
Range:="Sheet1$"
'hy Tablo Boş Mu_____________
Dim SayRS As New ADODB.Recordset
Dim SaySql As String
SaySql = "select * from TmpTablo"
SayRS.Open SaySql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
KytSay = SayRS(0)
krt = " where [" & SayRS(0).Name & "] Is Not Null"
SayRS.Close
SayRS.Open SaySql & krt, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
If SayRS.RecordCount = 0 Then
DoCmd.DeleteObject acTable, "TmpTablo"
MsgBox "Tabloda veri yok"
Exit Sub
End If
SayRS.Close
'hy Excel Boş Mu_____________Bitti
SaySql = "select * from Sheet1"
SayRS.Open SaySql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
SqlSheet1 = " INSERT INTO Sheet1 ( "
krt = ""
For x = 0 To SayRS.Fields.Count - 1
krt = krt & " , [" & SayRS.Fields.Item(x).Name & "]"
Next x
SqlSheet1 = SqlSheet1 & Mid(krt, 3) & ")"
SayRS.Close
'hy_Sheet1_tbl______________________________||
SaySql = "select * from TmpTablo"
SayRS.Open SaySql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
SqlTmp = " select "
krt = ""
For x = 0 To SayRS.Fields.Count - 1
krt = krt & " , TmpTablo.[" & SayRS.Fields.Item(x).Name & "]"
Next x
SqlTmp = SqlTmp & Mid(krt, 3)
SayRS.Close
'hy_TmpTablo_tbl______________________________||
SqlEkle = SqlSheet1 & vbCrLf & SqlTmp & vbCrLf & " FROM TmpTablo "
CurrentDb.Execute SqlEkle
CurrentDb.TableDefs.Refresh
DoCmd.DeleteObject acTable, "TmpTablo"
Dosyaları Alt Alta Birleştirme
(05/03/2020, 22:59)incsoft yazdı: accdb formatında raporlama yapabilmem için ODBC bağlantısı kullanmam gerekmektedirbu kısmı anlamadım.
ofis 2010 da accdb desteklemektedir dolayısıyla bir sorun çıkmadan raporlayabilmeniz gerekir.
Neden ODBC bağlantısı kullanmanız gerekmekte, sorunu biraz daha açıklayabilir misiniz?
Not: mdb halindeyken denediğimde "xlsx dosyasının üst sürüm olduğu ve bu nedenle eklenemeyeceği" uyarısı verdiğinden formatını değiştirdim.
(05/03/2020, 23:09)berduş yazdı:Sorun Access 2010\'un yeni formatı desteklememesi değildir hocam. Kullanmış olduğum program olan sap crystal reports programı accdb dosyasından direkmen program üzerinden database seçimi yapılarak raporlama yapma özelliğine sahip değil ancak mdb üzerinden sorunsuz şekilde yapıyor. Sizin sisteminiz üzerinden birleştirip mdb olarak kaydettiğimde ise aktarma kodu ve buton gittiğinden bunu sorma gereği duydum.(05/03/2020, 22:59)incsoft yazdı: accdb formatında raporlama yapabilmem için ODBC bağlantısı kullanmam gerekmektedirbu kısmı anlamadım.
ofis 2010 da accdb desteklemektedir dolayısıyla bir sorun çıkmadan raporlayabilmeniz gerekir.
Neden ODBC bağlantısı kullanmanız gerekmekte, sorunu biraz daha açıklayabilir misiniz?
Not: mdb halindeyken denediğimde "xlsx dosyasının üst sürüm olduğu ve bu nedenle eklenemeyeceği" uyarısı verdiğinden formatını değiştirdim.
biraz araştırma yapıp mdb ile yapıp yapamayacağına bakayım.
xlsx uzantısı yerine xls kullanılsa mdb desteklemez mi?
Konuyu Okuyanlar: 6 Ziyaretçi