Şanslı üyelerden birisiniz, 3.cevap da benden geliyor.
Sn. aobendes'in dediği gibi Excele veri gönderirken kayıt kaynağı olarak "sorgu" veya "tablo" kullanabilirsiniz.
Bu nedenle sizin filtreleme işlemini sorguya aldım, alt formu sorguya bağladım.
Aynı sorguyu da excel'e gönderdim.
Örnek ektedir.
Private Sub Bul_Click()
Form_FrmBulAlt.Requery
End Sub
Private Sub Komut121_Click()
Dim DosyaninAdi
DosyaninAdi = CurrentProject.Path & "\Rapor.xls"
If MsgBox("Verileri " & DosyaninAdi & " adlı Excel dosyasına aktarmak istiyor musunuz? ", 36, "EXCELE VERI AKTARIMI") = 6 Then
DoCmd.TransferSpreadsheet acExport, 8, "frmBulAlt_Sorgu", DosyaninAdi, True
MsgBox "Dikkat Programın bulunduğu yere Aktarma işlemi Tamamlandı", 0, "EXCELE VERI AKTARIMI"
End If
End Sub
(15/06/2011, 15:44)Kur@l yazdı: Sayın Kardelen188;
Bu çalışmada benden.
Kolay Gelsin.
Ustam yaptığın eklenti bende çalışmadı nedeni ne olabilir...?
Hata mesajları ekte
Sayın Kardelen188;
Referanslar kısmında missing yazan nesnenin yerine sizin versiyonunuz için uygun olan C:\program files\common files\microsoft shared\dao\dao360.dll kütüphaneyi eklerseniz çalışır.
Aldığınız hata kodlarını göremedim o yüzden hatanın sebebi olacağını düşündüğüm çözümü yazıyorum.
Kolay Gelsin
Konu cevaplanmış sorularda olduğu için hata mesajlarını ekleyemediniz sanırım.
Kur@l hocanın 5. mesaja eklediği örnekte sorun görünmüyor.
Konuyu sorular bölümüne taşıyorum. Gerekirse hata resimlerini ekleyiniz.
(15/06/2011, 15:58)aobendes yazdı: Değerli kardeşim,
Excele veri gönderirken kayıt kaynağı olarak mutlaka ya bir "sorgu" yu ya da tablolardan birisini göstermelisin.
Ekteki örneği dikkatlice incelemeni öneririm. Bu örnekte 2 modül desteği ile aynı zamanda tablonun tamamını değil, seçtiğiniz sütun başlıklarını da gönderebilirsiniz.
kolay gelsin..
Slm, dosyanızı kopyaladım(secımlıyukle) Formların olduğu yere yapıştırdım..Tablo ve sorguları gösteriyor, tbldata'yı seciyorum, sectiğim anda kod sayfasına atıyor ve
Option Compare Database
Dim TabloAdi As String
Private Sub ListeyiYukle(secımlıyukle As String) Dim s As String
Dim I As Integer
Dim SutunSay As Integer
Dim lstItem As ListItem
If Len(KaynakAdi & "xx") <= 2 Then Exit Sub
TabloAdi = KaynakAdi
s = "Select * from " & KaynakAdi
If Not AdoAc1(s) Then
MsgBox "Tablo/Sorgu açılamadı", vbInformation
Exit Sub
End If
With ListView1
.ListItems.Clear
.ColumnHeaders.Clear
.View = lvwReport
.GridLines = True
.FullRowSelect = True
.Checkboxes = True
.ColumnHeaders.Add , , "Alan", .Width - 200
End With
SutunSayisi = Rs1.Fields.Count - 1
For I = 0 To SutunSayisi
Set lstItem = ListView1.ListItems.Add()
lstItem.Text = Nz(Rs1.Fields(I).Name, "-")
Next
AdoKapa 1
End Sub
Private Sub ComboyuDoldur()
Dim obj As AccessObject, dbs As Object
Set dbs = Application.CurrentData
Dim s As String
'Önce tabloları al
For Each obj In dbs.AllTables
If Left(obj.Name, 4) <> "mSys" Then s = s & obj.Name & ";"
Next
'Şimdi de sorguları
For Each obj In dbs.AllQueries
s = s & obj.Name & ";"
Next
If s <> "" Then Kaynaklar.RowSource = s
End Sub
Private Sub Form_Current()
DoCmd.Maximize
End Sub
Private Sub Form_Load()
ComboyuDoldur
End Sub
Private Sub Kaynaklar_AfterUpdate()
If Len(Kaynaklar.Text & "xx") <= 2 Then Exit Sub
ListeyiYukle Kaynaklar.Text
End Sub
Private Sub Komut12_Click()
DoCmd.Close acForm, "SecimliYukle"
DoCmd.OpenForm "VAKA BİLGİLERİ", acNormal, "", "", , acNormal
End Sub
Private Sub Komut3_Click()
Dim Item As ListItem
Dim I As Long
Dim mesaj As String
Dim s As String
mesaj = ""
For I = 1 To Me.ListView1.ListItems.Count
Set Item = Me.ListView1.ListItems.Item(I)
If Item.Checked Then
If Len(mesaj) = 0 Then mesaj = Item.Text Else mesaj = mesaj & "," & Item.Text
End If
Next
If Len(mesaj) = 0 Then Exit Sub
s = "select " & mesaj & " from " & TabloAdi
AdoAcEx s
ExAc
KayittanExcele
End Sub