Access’den Word’a Aktarma Yapmak (Vb.NET) {GCN.NET}
Makale Serisi: Access’den Word’a Aktarma Yapmak
Vb.NET de yapılacak olan bu örneği Volkan AKTAŞ hocam Hazırladı.
Makalenin Orjinalini ve daha Fazlasını GCN.NET Adresinden Ulaşabilirsiniz..
_______________________________
Bir veri tabanından alınan verileri word’a aktarma işlemini yapacağız. Formumuza bir adet text kutusu, bir adet de komut butonu ekleyelim. Daha sonra text kutusunun özelliklerinden data bindings bölümündeki advanced seçeneğine tıklayalım. Açılan pencerede binding bölümünden Add Project Data Source seçeneğine tıklayalım.

Gelen pencerede Database seçeneğini seçip next düğmesine basalım.

New Connection düğmesini tıklayalım.

Gelen pencerede Microsoft Access Database seçeneğini seçip Continue düğmesine basalım.

Gelen pencereden veritabanımızı seçelim ve OK butonuna basalım.

Karşımıza ana pencere veri tabanımızın türü, ismi ve yolu yazılı olarak gelecektir. Burada next düğmesine tıklayalım.

Karşımıza veri tabanının projede local olarak yer almasını isteyip istemediğimizi soran bir pencere gelecektir. Bu soruya evet diyelim.

Karşımıza oluşturduğumuz connection string’i kaydetmek isteyip istemediğimizi soran bir pencere gelir.

Gerekli ismi verip Next düğmesine tıkladığımızda karşımıza dataset içerisinde hangi tablo ve alanların kullanılacağının seçildiği bir pencere gelir. Burada kullanmak istediğimiz tablo ve alanları seçerek finish düğmesine basarak veri tabanı bağlama işlemini bitirmiş oluruz.

Formumuzu açıp bir adet komut butonu ekleyelim. İlgili alanı formumuza eklemek için Data menüsünden Show Data Sources ile projemize eklediğimiz veri tabanındaki alanların görüntülendiği Data Sources penceresini görüntüleriz.

Buradan soru alanını fare ile formumuza sürükleyip bıraktığımızda bir label ve text kutusu otomatik olarak oluşturularak gerekli veri bağlantıları kurulacaktır. DataSource penceresinde ki her nesneyi, sağlanan seçenekleri kullanarak sürükle bırak yöntemi ile forma taşıyabilirsiniz.
Şimdi kod yazımına geçebiliriz.
Öncelikle,”System.Data.OleDB” ad uzayını programımıza dahil etmemiz gerekmektedir bunun için kod editörümüzün en üst satırına(ilk satır) aşağıdaki kod satırını yazalım;
Imports System.Data.OleDb
Daha sonra butonumuzun Click olayına aşağıdaki kod ile “OleDbConnection” nesnesi oluşturalım;
Dim sorgulama As String = “SELECT DISTINCT soru FROM sorubank”
Dim baglantim As New OleDbConnection(“Provider=Microsoft.Jet.OLEDB.4.0;” & “Data Source=D:\vba\vbdotnet\mdb2word\sorubank.mdb;”)
Bu işlemden sonra,”OleDbConnection” nesnesini kullanarak “yeninesne” isminde bir “OleDbCommand” oluşturalım ve ikinci satırda veritabanı bağlantımızı aktif hale getirelim;
Dim yeninesne As New OleDbCommand(sorgulama, baglantim)
baglantim.Open()
Şimdi,”verioku” isimli bir “OleDataReader” tanımlayalım bir sonraki satırda “OleDbCommand” nesnesinin “ExecuteReader” metodunu kullanarak tablo yapısını oluşturalım.
Dim verioku As OleDbDataReader
verioku = yeninesne.ExecuteReader()
Son olarak “OleDbDataReader” nesnesinin “Read” metodunu kullanarak veritabanımızın önceden belirtmiş olduğumuz tablosundaki veriyi alalım ve yine “OleDbDataReader” nesnesinin “GetString” metodunu kullanarak metin kutusu içerisine yerleştirelim ve veritabanı baglantımızı pasif hale getirerek işlemimizi sonlandıralım.
While verioku.Read()
TextBox1.Text = TextBox1.Text & verioku.GetString(0) _
& ControlChars.CrLf
End While
verioku.close()
baglantim.close()
Sonuç olarak kodumuz şu şekilde olacak:
Imports System.Data.OleDb
Public Class Form1
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim j As Byte
Dim sorgulama As String = “SELECT DISTINCT soru FROM sorubank”
Dim baglantim As New OleDbConnection(“Provider=Microsoft.Jet.OLEDB.4.0;” & “Data Source=D:\vba\vbdotnet\mdb2word\sorubank.mdb;”)
Dim yeninesne As New OleDbCommand(sorgulama, baglantim)
baglantim.Open()
Dim verioku As OleDbDataReader
verioku = yeninesne.ExecuteReader()
j = 0
While verioku.Read()
j = j + 1
SoruTextBox.Text = SoruTextBox.Text & “S-” & j & “)” & verioku.GetString(0) & ControlChars.CrLf
End While
verioku.Close()
baglantim.Close()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim objWord As Object
Dim objDocument As Object
Dim yol As String
objWord = CreateObject(“Word.Application”)
objDocument = objWord.Documents.Add
objWord.Visible = True
objDocument.Range.InsertBefore(SoruTextBox.Text)
yol = Application.LocalUserAppDataPath
objDocument.SaveAs(yol & “\sorular” & “.doc”)
ChDir(yol)
objDocument.Close()
objWord.Quit()
objDocument = Nothing
objWord = Nothing
MsgBox(“Sorular WORD’a aktarıldı!”)
End Sub
End Class







