Seçilen Verilerin Word'e Aktarılması

1 2 3 4 5 6 7 8 9 10
16/02/2020, 21:34

prestij06

Merhaba arkadaşlar. Word e yer imi belirleyerek yazdırma işini halletim. Projemde Olay Yeri isminde buton var. Bu butona bastığımızda sadece formda seçili olanın verilerini word e aktarıyor. Ben olması mümkünse şöyle bir şey istiyorum. Örneğin, Olay Yeri butonuna bastığımıza "Hangi sıralar eklensin" diye bir soru sorsun. 1-3 yazıp tamam dediğimizde 1 ve 3 dahil bu sırada bulunan verileri olay yeri isimli word e alt alta eklesin. Böyle bir şey mümkünse yapabilirseniz çok sevinirim. Şimdiden teşekkürler...
16/02/2020, 23:04

ozanakkaya

Dim rs As New ADODB.Recordset
Set db = CurrentDb
strTemplateLocation = CurrentProject.Path & "\olay_yeri.docx"

GVeri = InputBox("İlk ve Son KAyıt", "Kayit Gir", "")

GIlkKayit = Left(GVeri, InStr(1, GVeri, "-") - 1)
GSonKayit = Mid(GVeri, InStr(1, GVeri, "-") + 1)

On Error Resume Next
   Set WordApp = GetObject(, "Word.Application")
   If Err.Number <> 0 Then
     Set WordApp = CreateObject("Word.Application")
   End If
   On Error GoTo ErrHandler
  
    

   WordApp.Visible = True
   WordApp.WindowState = 1
  
  
   Set oWdoc = WordApp.Documents.Add(Template:=strTemplateLocation, NewTemplate:=False)
   
   DoEvents
   WordApp.Activate
  
   Sql = "SELECT sirano, * FROM yabancilar WHERE (((sirano) Between " & GIlkKayit & " And " & GSonKayit & "));"

   rs.Open SQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic


        With rs
                .MoveLast
                iRecCount = .RecordCount
                .MoveFirst
                iFldCount = .Fields.Count
    
                WordApp.ActiveDocument.Bookmarks("adi").Select
                WordApp.ActiveDocument.Tables.Add Range:=WordApp.Selection.Range, NumRows:=iRecCount + 1, NumColumns:= _
                                                1, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitFixed
                                                          
                WordApp.ActiveDocument.Tables(1).Borders.Enable = False
    
                Set oWordTbl = oWdoc.Tables(1)
                For i = 1 To iRecCount

               
                    oWordTbl.Cell(i, 0) = i & "-) Adı SOYADI " & Nz(rs.Fields("ad_soyad").Value, "") & "; " & Nz(rs.Fields("uyrugu").Value, "") & " uyruklu, Baba Adı-Anne Adı oğlu/kızı, Doğum Yeri - Doğum Tarihi doğumlu, Pasaport No: Pasaport No"

                   .MoveNext
                Next i
     
          End With


ErrHandler:
Set WordApp = Nothing


1-3 yazarsanız sno 1,2,3'ü 2-3 yazarsanız sno 2 ve 3'ü yazar. Sadece adı soyadı ve uyruğu yazar.

bu tür işlemler için accessde Rapor kullanılır. Worde, excele aktarma işlemleri komplike kod gerektirir.
17/02/2020, 00:38

prestij06

Merhaba şu hatayı alıyorum????


Merhaba referenceden Ado ile ilgili kısmı seçiniz.Yanılmıyorsam microsoft.activex.Data.object 2.6 yada 2.8 gibi.

New anahtarını kullandığınız için öyle gerek.
17/02/2020, 00:58

feraz

17/02/2020, 01:03

prestij06

tamam hallettim. bir de word e aktarırken başına 1-) koymaması ve alt satıra geçmemesi için hangi kodu kaldırmamız gerekiyor? diğer alanlara da yapıyorum 1-) yazmaması ve alt satıra geçmemesi gerekiyor
1 2 3 4 5 6 7 8 9 10