Здравствуйте уважаемые програмисты!
У меня к вам вот какой, наверное для вас банальный, вопрос, у меня есть функция для экспорта базы данных Access но к сожалению я не знаю как ей воспользоватся.:(( Пожалуйста помогите новичку, ну не доходит до меня как функцией воспользоватся.
Public Function Export2XL(ByVal InitRow As Long, ByVal DBAccess As String, ByVal DBTable As String) As Long
Dim cn As New ADODB.Connection()
Dim cmd As New ADODB.Command()
Dim rs As New ADODB.Recordset()
Dim MyIndex As Integer
Dim MyRecordCount As Long
Dim MyFieldCount As Integer
Dim ApExcel As Object
Dim MyCol As String
Dim Response As Integer
ApExcel = CreateObject("Excel.application")
ApExcel.Visible = True
ApExcel.Workbooks.Add()
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=..\Home Cotalog\Cotalog.mdb;Mode=Share D" & _
"eny None;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry " & _
"Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=5;Jet OLEDB:Databas" & _
"e Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Trans" & _
"actions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=Fa" & _
"lse;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=Fals" & _
"e;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False"
cn.Open()
If cn.State = 0 Then cn.Open()
cmd.ActiveConnection = cn
cmd.CommandText = DBTable
cmd.CommandType = ADODB.CommandTypeEnum.adCmdTable
rs = cmd.Execute
MyFieldCount = rs.Fields.Count
For MyIndex = 0 To MyFieldCount - 1
ApExcel.Cells(InitRow, (MyIndex + 1)).Formula = rs.Fields(MyIndex).Name
ApExcel.Cells(InitRow, (MyIndex + 1)).Font.Bold = True
ApExcel.Cells(InitRow, (MyIndex + 1)).interior.colorindex = 36
ApExcel.Cells(InitRow, (MyIndex + 1)).WrapText = True
Next
MyCol = Chr((64 + MyIndex)) & InitRow
ApExcel.Range("A" & InitRow & ":" & MyCol).Borders.Color = RGB(0, 0, 0)
MyRecordCount = 1 + InitRow
'Fill the excel book with the values from the database
Do While rs.EOF = False
For MyIndex = 1 To MyFieldCount
ApExcel.Cells(MyRecordCount, MyIndex).Formula = rs((MyIndex - 1)).Value
ApExcel.Cells(MyRecordCount, MyIndex).WrapText = False 'Format the Cell
Next
MyRecordCount = MyRecordCount + 1
rs.MoveNext()
If MyRecordCount > 50 Then
Exit Do
End If
Loop
'Close the connection with the DB
rs.Close()
'Return the last position in the workbook
Export2XL = MyRecordCount
End Function
Ответить
|