Access; temel bir veritabanı uygulaması gibi görünsede, günlük iş hayatında Excel ile entegre kullanıldığı zaman çok verimli bir programa dönüşür. Excel, günlük işlerden çıkıp biraz olsun komplike uygulamalarla kullanılmaya çalışıldığında, şişer ve hatalar verir. yani belirli bir limiti bulunur. ama Access 2 gb kadar veriyi excel’den daha iyi yönetebilir. bu müşteri bilgilerini metin halinde depolamak için gayet yeterli bir miktardır.
birinci kullanıcıyı belli alanlarda kısıtlamak için menü gayet gelişmiştir. aradığınız kriterlede veriler raporlanabilir yahut excel’e transfer edilip orada incelenebilir. bunun için bazı makrolar yeterli olabilir yahut menüler aracılığıylada sonuca ulaşabiliriz.
örneğin “OutPutTo” makrosu seçtiğiniz sorguları yada tabloları istediğiniz formatlarda öğelere dönüştürebilir. örneğin bir Excel, Notepad, HTML uygulaması bunlardan sadece bir kaçıdır.
bunun yanısıra istediğiniz tablo veya sorguları sağ tıklayarak “export” u tıklayabilir ve format belirleyerek gene yukarda saydığım uygulamalara dönüştürebilirisiniz.
bu saydığım işlemlerin yanısıra istediğiniz işlemleri VBA üzerinde yaparak daha kriterli ve derlenmiş bir şekilde de yapabilirsiniz. VBA sayesinde gönderdiğiniz verilerin formatınıda önceden belirtip Excel’de de tablo biçimlerini değiştirmeye gerek bırakacak angarya işlerle uğraşmanıza gerek kalmaz. bu şekilde Access database sisteminde tuttuğunuz verileri Excel gayet entegre bir şekilde kullanabilirsiniz.
Aşağıda yazacağım kod un içerisine combobox, textbox gibi form elemanlarının içinde barındırdığı kriterleri ekleyebilirsiniz. bununla ilgili örnekleri ileriki günlerde paylaşacağım.
ilk olarak Tools–>References bölümünden Microsoft Excel 11.0 library yada Microsoft Excel 12.0 library ekleyin. bu çok önemlidir unutursanız kesinlikle çalışmaz.
Public myExcel as Excel.Application
Sub accesstenExcel()
Dim conn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim cmdCommand As New ADODB.Command
Dim excelKitabi As Excel.Workbook
Dim excelSayfasi As Excel.Worksheet
Dim BaslamaAraligi As Excel.Range
Dim sutun As Integer
Dim baslik As Variant
Set conn = CurrentProject.Connection
With cmdCommand
.ActiveConnection = conn
.CommandText = “SELECT * FROM Tablo adını buraya yazınız“
.CommandType = adCmdText
End With
Set conn = New ADODB.Connection
Set rst = New ADODB.Recordset
With rst
.Open cmdCommand
End With
Set myExcel = New Excel.Application
‘ MS EXCEL SAYFASI ACAR
Set excelKitabi = myExcel.Workbooks.Add
Set excelSayfasi = excelKitabi.ActiveSheet
myExcel.Visible = True
sutun = 1
‘ SUTUN BASLIKLARINI BELIRLER
With rst
For Each baslik In .Fields
With excelSayfasi
.Cells(1, sutun).Value = baslik.Name
.Cells(1, sutun).Interior.ColorIndex = 13
.Cells(1, sutun).Interior.Pattern = xlSolid
.Cells(1, sutun).Font.ColorIndex = 2
.Cells(1, sutun).Font.Bold = True
sutun = sutun + 1
End With
Next
End With
‘VERILERI KOPYALAMAYA BASLAR
Set BaslamaAraligi = excelSayfasi.Cells(2, 1)
BaslamaAraligi.CopyFromRecordset rst
‘SUTUNLARI FITLER
excelSayfasi.Columns(“A:AT”).EntireColumn.AutoFit
rst.Close
Set rst = Nothing
Set conn = Nothing
Set myExcel = Nothing
Exit Sub
End Sub
bu şekilde sadece yukarıda belirttiğim yere tablo yada sorgu adını girmeniz yeterli olaracaktır.