Oluşturduğum formdan belli alanlardaki verileri sabit bir Excel dosyasına belli hücrelere gönderiyorum. forumda aramama ve hemen hemen her örneği incelememe rağmen Access konusunda yeteri kadar bilgiye sahip olmadığım için başaramadığım iki olay var.
BİRİNCİSİ: gönderdiğim dosyadaki formdaki(F_ODEME) adısoyadı, tcnu,iban,tutar ve açıklama alanlarını banka listesi.xls dosyasındaki sırasıyla a,b,f,g,h sütünlarına accessdeki sütün başlıkları olmadan yerleştirmek
İKİNCİSİ: bu Excel dosyasına ODEME_TARIHI ve DOSYA_ADI alanlarına girdiğim değerlerle isim vererek ayrı Excel dosyası olarak kaydetmek.
NOT: Excel dosyasının formatının olduğu gibi kalması gerekiyor.dosya korumalıdır.
Arkadaşlar yardımlarınızı bekliyorum.
korumalı excel dosyasına veri gönderme
Access bu sorum karşısında çaresiz galiba)
Kimseden bir cevap alamadım.
Kimseden bir cevap alamadım.
dosya koruma yerine hücre kilitleme kullanın.
Murat YANDEMİR ( PyramiD YAZILIM Uluslar Arası Nakliye Programları )
Bilgisayar Programcısı (1989'dan beri)
Bilgisayar Programcısı (1989'dan beri)
Yollar biter Access bitmez.
sn zipir mantık olarak ikinci kısmı manuel yapacaksınız sanırım.
ilk kısıma gelince, istediğnizi doğru anlamışsam; döngü kullanmanız gerek.
örnek kodları takip ederek tamamlayın. bir kaç alan attırdım ben.
Private Sub Komut18_Click()
Dim exceldosyasi As Object
Dim Klasor As String, strPersonel As String
Set exceldosyasi = CreateObject("Excel.Application")
Klasor = CurrentProject.Path & "\BANKA_LISTESI.xls"
Set Con1 = Application.CurrentProject.Connection
Set rst1 = CreateObject("ADODB.Recordset")
rst1.CursorLocation = adUseClient
currentCell = 13
With exceldosyasi
.Visible = True
.Workbooks.Open Klasor
.UserControl = True
.Range("A13:I1084").Select
.Application.CutCopyMode = False
.Selection.ClearContents
Sql = "select * from Q_ODEME_DETAY"
rst1.Open SQL, Con1, adOpenStatic, adLockBatchOptimistic
Do While Not rst1.EOF
.Range("B8").Value = Me.ODEME_KODU
.Range("B7").Value = Me.Metin32
.Range("B6").Value = Me.PARA_CINSI
.Range("B3").Value = Me.HESAP
.Range("B9").Value = Me.ACIKLAMA
intPersonel = rst1.Fields("ADI_SOYADI"): strPersonel = Dlookup ("ADI_SOYADI", "T_BILGILER", "kimlik = " & intPersonel & "")
.Cells(currentCell, 1) = strPersonel
.Cells(currentCell, 2) = rst1.Fields("TC_NU")
'.Cells(currentCell, 5) = 12 ' örnek olarak koydum. veri doğrulamasından geçtiği için veri kontrolü burda yapılmalıdır.
.Cells(currentCell, 6) = rst1.Fields("IBAN_NU")
currentCell = currentCell + 1
rst1.MoveNext
Loop
End With
End Sub
ilk kısıma gelince, istediğnizi doğru anlamışsam; döngü kullanmanız gerek.
örnek kodları takip ederek tamamlayın. bir kaç alan attırdım ben.
Private Sub Komut18_Click()
Dim exceldosyasi As Object
Dim Klasor As String, strPersonel As String
Set exceldosyasi = CreateObject("Excel.Application")
Klasor = CurrentProject.Path & "\BANKA_LISTESI.xls"
Set Con1 = Application.CurrentProject.Connection
Set rst1 = CreateObject("ADODB.Recordset")
rst1.CursorLocation = adUseClient
currentCell = 13
With exceldosyasi
.Visible = True
.Workbooks.Open Klasor
.UserControl = True
.Range("A13:I1084").Select
.Application.CutCopyMode = False
.Selection.ClearContents
Sql = "select * from Q_ODEME_DETAY"
rst1.Open SQL, Con1, adOpenStatic, adLockBatchOptimistic
Do While Not rst1.EOF
.Range("B8").Value = Me.ODEME_KODU
.Range("B7").Value = Me.Metin32
.Range("B6").Value = Me.PARA_CINSI
.Range("B3").Value = Me.HESAP
.Range("B9").Value = Me.ACIKLAMA
intPersonel = rst1.Fields("ADI_SOYADI"): strPersonel = Dlookup ("ADI_SOYADI", "T_BILGILER", "kimlik = " & intPersonel & "")
.Cells(currentCell, 1) = strPersonel
.Cells(currentCell, 2) = rst1.Fields("TC_NU")
'.Cells(currentCell, 5) = 12 ' örnek olarak koydum. veri doğrulamasından geçtiği için veri kontrolü burda yapılmalıdır.
.Cells(currentCell, 6) = rst1.Fields("IBAN_NU")
currentCell = currentCell + 1
rst1.MoveNext
Loop
End With
End Sub
Hayatta listbox kullanmam..
Sn.Yandemir korumalı Excel dosyası hazır geldiği için değiştirme yada başka bir dosya kullanma şansım yok malesef.
Sn.Fatih Karagöl, öncelikle ilginiz ve yardımınız için çok teşekkür ederim. Bir nokta hariç yapmak istediğim buydu. Kayıtları excele atarken tüm kayıtları gönderiyor. Benim yapmak istediğim odeme_nu göre göndermek. örneğin 3 numaralı ödemeye ait kayıtları atmak ve bunu ayrı Excel dosyası olarak kaydetmek, daha sonra 4 numaralı ödemeye ait kayıtları excele gönderip onuda ayrı kaydetmek. kısaca herbir ödeme ayrı ayrı Excel dosyasında saklanacak.
Sn.Fatih Karagöl, öncelikle ilginiz ve yardımınız için çok teşekkür ederim. Bir nokta hariç yapmak istediğim buydu. Kayıtları excele atarken tüm kayıtları gönderiyor. Benim yapmak istediğim odeme_nu göre göndermek. örneğin 3 numaralı ödemeye ait kayıtları atmak ve bunu ayrı Excel dosyası olarak kaydetmek, daha sonra 4 numaralı ödemeye ait kayıtları excele gönderip onuda ayrı kaydetmek. kısaca herbir ödeme ayrı ayrı Excel dosyasında saklanacak.
Sn zipir
istediğiniz işi yapan eki yüklüyorum.
detayları takip ederek uyarlamasını yapabilirsiniz
istediğiniz işi yapan eki yüklüyorum.
detayları takip ederek uyarlamasını yapabilirsiniz
Hayatta listbox kullanmam..
Konuyu Okuyanlar: 1 Ziyaretçi