Skip to main content

AccessTr.neT


VBA Makro ile Access'teki verileri formatlı Excel sayfasına aktarma hatası

VBA Makro ile Access'teki verileri formatlı Excel sayfasına aktarma hatası

#19
Merhaba;

Sayın atoz112,

Alıntı:WindowState ifadesinin olduğu satırlar için,sayısal değerin yerine =xlMaximized ifadesini kullanmak uygun olabilir mi.

dediğiniz gibi yaptım ama maalesef aynı satırda aynı hatayı verdi.

Sayın ozanakkaya,

Öncelikle size de, yorumunuz ve desteğiniz için teşekkür ederim. Ancak maalesef aşağıdaki kod denemesi de aynı sonucu verdi.


MyXL.Application.Visible = True
MyXL.Application.WindowState = 3
MyXL.Parent.Windows(1).Visible = True
MyXL.Parent.ActiveWindow.WindowState = 2

İyi çalışmalar.
Cevapla
#20
Sayın balkan85,

Sadece bir hatırlatma olması adına naçizane bir tavsiye olmak üzere;daha önceki mesajlarda örnek uygulama eklemeniz talep edildiğinde yazılı olan özelliklerde olması istenmiştir.(farazi uydurma bilgiler olması kast edilmiştir).

Fakat,excel uygulamanız incelendiğinde görülmektedir ki;içeriğinde gerçek şahıslara ait mevcut bilgiler yer almaktadır.(telefon,email,adres,v.s.gibi).eğer T.C.Kimlik bilgileri de olsaydı,sanırım bu da dahil olacaktı.

Bu nedenle,eklediğiniz örnek uygulamada yer alan gerek Excel dosyanızdaki ve gerekse de eğer mevcutsa Access uygulamanızdaki bu özel bilgileri ya boş bırakmak sureti ile iptal edip içeriğini temizleyiniz ya da bu bilgileri uydurma farazi bilgiler ile değiştiriniz.

Son olarak,bir diğer tavsiye olması adına;uygulamanızda (özellikle,Access uygulamanızda);ille de tablolarınızda tüm kayıtları göstermeniz gerekmemektedir.sadece konudaki taleplerinizin sonuçlarını görebilmek üzere birkaç kayıt (örneğin;4-5 ya da gerekiyorsa 10 kayıt) olması yeterlidir.

Bu önemsiz gibi görünen fakat kendi hallerinde değerlendirildiğinde aslında doğru olması gereken hususlara dair olumlu yaklaşıp uygun görülen düzenlemeleri yapmanız ve uygulamalarınızı yeniden konunuza eklemeniz temennisi ile.elbette ki her zaman olduğu gibi,tercih ve takdir sizindir.

Bilginize…iyi çalışmalar,saygılar.
Herkes, kendisinin AR-GE'cisidir...


Konulara eklenen Uygulama içeriğine yönelik Tavsiyeler
Alt Form Denetim Değerlerine ulaşma ve Alt Form Güncelleme
Kapatırken Düzenle (Compact On Close) Seçeneğinin İşaretlenmesi Hakkında
Cevapla
#21
Sayın atoz112;

Uyarınız için çok teşekkür ederim. Access dosyasındaki hassass bilgileri sildim ama Excel'dekileri atlamışım. Hemen ilgili mesajdaki ek dosyayı güncelledim. Kusura bakmayın...

Access'teki verileri tekrar kontrol ettim ama veriler eski tarihli olması nedeniyle ve hangisi işleyişi bozabilir emin olamadığım için sadece 2 satır olarak yine bıraktım.

İyi çalışmalar,
Cevapla
#22
Sayın balkan85,

Access'teki verileri tekrar kontrol ettim ama veriler eski tarihli olması nedeniyle ve hangisi işleyişi bozabilir emin olamadığım için sadece 2 satır olarak yine bıraktım.

İfadenize yönelik olarak,Yine bir hatırlatma bilgisi olması adına;
Gerek konu sahipleri ve gerekse de konularınıza katılımcı olacak katılımcılar için,tablolarınızdaki verilerin ne içeriği ve ne de eski bilgiler olması önemli değildir.

Önemli olan;konularınızı açmanıza vesile olan sorunlarınız ya da talepleriniz ile ilgili olarak eklediğiniz örnek uygulamaların incelenmesi aşamalarında sonuçları görebilmek üzere eğer incelemeler neticesinde sonuçların doğru elde edilmesi isteniyorsa - ki bu gerekli olacaktır – o zaman,tablolardaki verilerin olması gerektiği gibi doğru ve boş olmayacak halde dolu olmasını sağlamanız yeterlidir.

Son olarak;
Örnek uygulamanızı inceleyemediğimden dolayı ne yazık ki uygulamanız üzerinden kendi adıma yardımcı olamıyorum.ancak,eğer bazı araştırmalar neticesinde bilgiler edindikçe bunarlı paylaşabiliyorum.

Bilginize…iyi çalışmalar,saygılar.
Herkes, kendisinin AR-GE'cisidir...


Konulara eklenen Uygulama içeriğine yönelik Tavsiyeler
Alt Form Denetim Değerlerine ulaşma ve Alt Form Güncelleme
Kapatırken Düzenle (Compact On Close) Seçeneğinin İşaretlenmesi Hakkında
Cevapla
#23
Sayın balkan85,

Bahsettiğiniz talebinize yönelik olarak;
Yine deneme olarak geçerli olması ve tahmini kodlar sayılması adına,ilgili olay yordamı içerisine aşağıdaki kodları ekleyerek deneyiniz.

      Dim MyXL As Excel.Application
       Dim strTemplate As String
      
       Dim strOutPut As String
      
       Dim objBook As Excel.Workbook
      
       Dim objSheet As Excel.Worksheet
    
       strTemplate = "buraya_sablon_excel_dosya_adi_yazilacak" 'ornek: Application.ThisWorkbook.Path & "dosya_adi" & ".xlsx"
       strOutPut = "C:\Users\UMIT.BALKAN\Desktop\Talimat " & Ülke & " ID" & Invoice_ID & " " & Kap_Sayısı & " Kap.xlsx"
       If Dir(strOutPut) <> "" Then
       If MsgBox(strOutPut & " exists" & Chr(13) & Chr(10) & _
                "Yeni dosya oluşturmak için mevcut dosya silinecek," & Chr(13) & Chr(10) & _
                " Devam etmek istiyor musunuz?", vbYesNo) = vbNo Then
              Exit Sub
         Else
         Kill strOutut
        End If
       End if
       FileCopy strTemplate, strOutPut
           Set MyXL = New Excel.Application
           MyXL.Visible = True
           Set objBook = MyXL.Workbooks.Open(strOutPut)
           Set objSheet = objBook.Worksheets(1)
           With objSheet
        .Range("B4").Value = Acente
        .Range("B3").Value = Adı & " " & Soyadı
        .Range("E3").Value = Date
        .Range("B30").Value = Banka
        .Range("B14").Value = Alıcı_Firma_Ünvanı
        .Range("B16").Value = Alıcı_Firma_Adresi
        .Range("B32").Value = Ödeme_Şekli
        .Range("B34").Value = Teslim_Şekli
        .Range("D38").Value = Gross_Weight
        .Range("D39").Value = Net_Weight
        .Range("D40").Value = Kap_Sayısı
        .Range("D41").Value = Invoice_ID
        .Range("B24").Value = Varış_Yeri
        .Range("C43").Value = CI
        .Range("C44").Value = PL
        .Range("C45").Value = PRL
        .Range("C46").Value = CO
        .Range("C48").Value = FORMA
        .Range("C49").Value = CMR
        .Range("C50").Value = AWB
        .Range("B54").Value = Talimat_Notları
           End With

If CI_Onay = True Then
MyXL.worksheets(1).Range("E43").Value = "<- TİCARET ODASI ONAYLI"
End If

If PRL_Onay = True Then
MyXL.worksheets(1).Range("E45").Value = "<- TİCARET ODASI ONAYLI"
End If

         objBook.Save
        
      
OpenEnd:
       On Error Resume Next
           Set objSheet = Nothing
           Set objBook = Nothing
           Set MyXL = Nothing
           Exit Sub
          
OpenErr:
           Select Case Err.Number
               Case 1004, 3265
                   Resume Next
               Case Else
                   MsgBox Err.Number & "  -  " & Err.Description, vbCritical, "Critical error: isExcelSetup()"
                   Resume OpenEnd
           End Select


Bilginize…iyi çalışmalar,saygılar.
Herkes, kendisinin AR-GE'cisidir...


Konulara eklenen Uygulama içeriğine yönelik Tavsiyeler
Alt Form Denetim Değerlerine ulaşma ve Alt Form Güncelleme
Kapatırken Düzenle (Compact On Close) Seçeneğinin İşaretlenmesi Hakkında
Cevapla
#24
Merhaba sayın atoz112;

10806

Harikasınız! Mükemmel bir şekilde çalıştı! Öncelikle size; nezaketiniz, desteğiniz, zamanınız ve ilginiz için çok ama çok teşekkür ederim. Harika bir iş çıkardınız. Gerçi hala nasıl oldu tam anlamadım ama önemli değil. Süpersiniz!

Dediğiniz gibi aşağıdaki kod Office 2013 (64 Bit) için çözüm oldu. Nasıl yapılacağını bilmediğim için yapamadım ama konuyu çözüldü olarak işaretleyebilir miyiz? Belki başkalarına da yardımcı olur...

Konuya bakan, okuyan, yorum yapan herkese de ayrıca teşekkür ederim.


      Dim MyXL As Excel.Application
       Dim strTemplate As String
      
       Dim strOutPut As String
      
       Dim objBook As Excel.Workbook
      
       Dim objSheet As Excel.Worksheet
    
       strTemplate = "buraya_sablon_excel_dosya_adi_yazilacak" 'ornek: Application.ThisWorkbook.Path & "dosya_adi" & ".xlsx"
       strOutPut = "C:\Users\UMIT.BALKAN\Desktop\Talimat " & Ülke & " ID" & Invoice_ID & " " & Kap_Sayısı & " Kap.xlsx"
       If Dir(strOutPut) <> "" Then
       If MsgBox(strOutPut & " exists" & Chr(13) & Chr(10) & _
                "Yeni dosya oluşturmak için mevcut dosya silinecek," & Chr(13) & Chr(10) & _
                " Devam etmek istiyor musunuz?", vbYesNo) = vbNo Then
              Exit Sub
         Else
         Kill strOutut
        End If
       End if
       FileCopy strTemplate, strOutPut
           Set MyXL = New Excel.Application
           MyXL.Visible = True
           Set objBook = MyXL.Workbooks.Open(strOutPut)
           Set objSheet = objBook.Worksheets(1)
           With objSheet
        .Range("B4").Value = Acente
        .Range("B3").Value = Adı & " " & Soyadı
        .Range("E3").Value = Date
        .Range("B30").Value = Banka
        .Range("B14").Value = Alıcı_Firma_Ünvanı
        .Range("B16").Value = Alıcı_Firma_Adresi
        .Range("B32").Value = Ödeme_Şekli
        .Range("B34").Value = Teslim_Şekli
        .Range("D38").Value = Gross_Weight
        .Range("D39").Value = Net_Weight
        .Range("D40").Value = Kap_Sayısı
        .Range("D41").Value = Invoice_ID
        .Range("B24").Value = Varış_Yeri
        .Range("C43").Value = CI
        .Range("C44").Value = PL
        .Range("C45").Value = PRL
        .Range("C46").Value = CO
        .Range("C48").Value = FORMA
        .Range("C49").Value = CMR
        .Range("C50").Value = AWB
        .Range("B54").Value = Talimat_Notları
           End With

If CI_Onay = True Then
MyXL.worksheets(1).Range("E43").Value = "<- TİCARET ODASI ONAYLI"
End If

If PRL_Onay = True Then
MyXL.worksheets(1).Range("E45").Value = "<- TİCARET ODASI ONAYLI"
End If

         objBook.Save
        
      
OpenEnd:
       On Error Resume Next
           Set objSheet = Nothing
           Set objBook = Nothing
           Set MyXL = Nothing
           Exit Sub
          
OpenErr:
           Select Case Err.Number
               Case 1004, 3265
                   Resume Next
               Case Else
                   MsgBox Err.Number & "  -  " & Err.Description, vbCritical, "Critical error: isExcelSetup()"
                   Resume OpenEnd
           End Select

İyi günler,
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da