繁体   English   中英

VB6 将数据从数据库插入到excel

[英]VB6 insert data into excel from database

我一直在寻找使用 vb6 代码和访问数据库将数据插入 excel 的解决方案。 在很多情况下,我需要使用不同的数据记录多次写入 Excel 电子表格。 我有一个现有的工作簿,我正在尝试打开并在完成后“另存为”。 我已经能够打开 excel 工作簿,访问我正在写入的工作表以及我正在写入的单元格,但是我只能向工作簿写入一次,当我离开打开的工作簿的范围时,连接关闭。

我有一个创建工作簿对象的子例程,打开现有的工作簿和工作表,写入指定的单元格编号以插入新数据。 我查看了官方支持页面,目前似乎没有我要找的内容。

是我把这弄得太复杂了还是有解决方案? 请帮忙。

我目前的代码:

行数组

Private oldDataRowArray(3 To 21) As Integer
Private updatedDataRowArray(5 To 2) As Integer

循环逻辑

Dim i As Integer
Dim n As Integer
i = 3
n = 5
Do While i <= UBound(oldDataRowArray) And n <= UBound(updatedDataRowArray)
EditExcelSheet txtWorkbookFileName.Text, i, n //sub routine
i = i + 3 //skip number of cells
n = n + 3 //skip number of cells
Loop

将数据插入Excel的子程序

Private Sub EditStakingSheet(ByVal workbook As String, ByVal oldDataRowIndex As Integer, ByVal newDataRowIndex As Integer)
Dim objExcel As Object
Dim objWorkBook As Object
Dim objSheet As Object

Set objExcel = New Excel.Application
Set objWorkBook = objExcel.Workbooks.Open(workbook)
Set objSheet = objWorkBook.Worksheets(1)

objExcel.Visible = True
//insert old value
objSheet.Cells(oldDataRowIndex , 26).Value = "old Value"

//insert new value
objSheet.Cells(newDataRowIndex , 26).Value = "new Value"

End Sub

您可以使用 adodb 对象。

这个视频是一个很好的教程。

这是一个如何使用 adodb 的示例。 为此,您需要安装 activeX 数据对象库。 对于.source=你可以使用任何 sql-query。

Public Function get_Value(table As String, order_by As String) As Variant

Set db_data = New ADODB.Recordset

Set db1 = New ADODB.Connection

pDB_path = "#enter db-path here"

db1.ConnectionString = _
    "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & pDB_path & ";Persist Security Info=False;"

db1.Open


With db_data
    .ActiveConnection = db1
    .Source = "SELECT * FROM " & table & " ORDER BY " & order_by & " ASC"
    .LockType = adLockReadOnly 'read only access to db
    .CursorType = adOpenStatic 'how to update the database
    .Open
End With

get_Value = TransposeArray(db_data.GetRows)

db_data.Close

End Function

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM