wmismail Posted August 10, 2008 Share Posted August 10, 2008 WORD içinde Arama Yapma Word içince arama işlemi Find objesi tarafından yapılmaktadır. Find objesi ise hem Selection hem de Range objesinin bir elemanıdır. Böylelikle iki farklı şekilde arama yapma imkânı verir. Selection Objesi ile arama yapmak için; Public Sub SelectionArama (ByVal AranacakDeger As String) WordApp.Documents.Open("c:\test.doc") ' Dokümanın en basına gidiliyor. WordApp.Selection.HomeKey(Word.WdUnits.wdStory, Word.WdMovementType.wdMove) Dim Arama As String = AranacakDeger Dim buldum As Word.Find = WordUygumama.Selection.Find buldum.ClearFormatting() 'Önceden yapılmış aramayla oluşan formatları temizler. buldum.Text = buldum 'Execute() komutu AranacakDeger string ifadesini arar. Ve True veya False olarak döner. If buldum.Execute() Then MessageBox.Show(AranacakDeger & " Sonuç Bulundu!") Else MessageBox.Show(AranacakDeger & " Aradığınız Kriterde Sonuç Bulunamadı!") End If End Sub Peki simdi aynı işlemi birde Range objesiyle yapalım; Public Sub Range Arama(ByVal AranacakDeger As String) Dim uygulamam As Word.Document uygulamam = WordApp.Documents.Open("c:\deneme.doc") Dim range As Word.Range = uygulamam.Paragraphs.Item(3).Range Dim buldum As Word.Find = range.Find buldum.ClearFormatting() buldum.Text = Text If buldum.Execute() Then MessageBox.Show(AranacakDeger & " Sonuç Bulundu!") Else MessageBox.Show(AranacakDeger & " Aradığınız Kriterde Sonuç Bulunamadı!") End If End Sub Yazdıkça aklıma bir sürü şey geliyor. Şimdide bir örnekle Varolan bir tabloyu sayfanın sonuna kopyalayalım: WordApp.ActiveDocument.Tables(2).Range.Copy() ‘Word belgemdeki 2. tablomu kopyalıyorum dokuman.Bookmarks("\endofdoc").Select() ‘ Sayfanın sonuna range objesi ile gidiyorum WordApp.Selection.Paste() ‘ Ve kopyaladığım tabloyu sayfanın sonuna yapıştırıyorum Son örnek ve bundan sonrası size kalmış: Bu örnekde sayfamızda bulunan ; Tarih Date ##Tarih## Subject Konu Fiyat Teklifi Teklif No. Proposal Nr. ##TeklifNo## Kimden From ##Kimden## Firma Firm ##Kime## Kime To ##Yetkili## Faks Fax Nr. ##Faks## Telefon Phone Nr. ##Telefon## Sayfa Sayısı Nr. Of Pages ##Sayfa## Tablodaki verileri veritabanında çektiğimiz değerler ile doldurma. Sub tablodoldurma() sqlstr = "Buraya sorgunuzu yazın" clsCon.Open() cmd = New SqlCommand(sqlstr, clsCon) dr = cmd.ExecuteReader While dr.Read AraVeDegistir("##Kime##", IIf(IsDBNull(dr.Item(1)), String.Empty, dr.Item(1))) AraVeDegistir("##Faks##", IIf(IsDBNull(dr.Item(2)), String.Empty, dr.Item(2))) AraVeDegistir("##Telefon##", IIf(IsDBNull(dr.Item(3)), String.Empty, dr.Item(3))) AraVeDegistir("##Yetkili##", IIf(IsDBNull(dr.Item(4)), String.Empty, dr.Item(4))) AraVeDegistir("##Kimden##", IIf(IsDBNull(dr.Item(5)), String.Empty, dr.Item(5))) End While dr.Close() clsCon.Close() End Sub Friend Sub AraVeDegistir(ByVal srcText As String, ByVal rpcText As String) With WordApp.Selection.Find .ClearFormatting() .Text = srcText With .Replacement .ClearFormatting() .Text = rpcText End With .Execute(Replace:=Word.WdReplace.wdReplaceAll) End With End Sub Bundan sonrası size kalmış. Hayal edin, sıkılmayın ve yapın. Hoşça kalın, Sağlıkla kalın. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.