【问题标题】:Import Excel Data into SQL using VB6使用VB6将Excel数据导入SQL
【发布时间】:2015-01-21 03:12:20
【问题描述】:

我是 Visual Basic 的新手,现在我需要一个完全用 VB6 构建的程序,并添加将大量记录从 excel 文件批量导入当前 SQL 数据库的功能。我在网上找到的所有示例都令人困惑,并且需要对文件名进行硬编码(例如,使用文档 As New Spreadsheet() document.LoadFromFile("SimpleReport.xls"))但这需要用户随时调用他们获得了一组新记录,因此我需要在导入时指定 excel 文件名。

如何使用 VB6 从 excel 导入 SQL?我可以为 excel 文件名创建一个变量,还是必须对文件名的字符串值进行硬编码?如果我可以创建一个变量,我可以/应该添加 set 并获取它以指定文件名吗?谢谢

【问题讨论】:

  • LoadFromFile() 将字符串作为参数,你为什么假设它需要被硬编码?请参阅stackoverflow.com/questions/1085436/… 了解如何从用户那里获取文件名。
  • 好的,客户现在想要这样做,将 excel 文件保存为 CSV,这将很有帮助,因为我对 VB6 的了解如此粗略。链接的这个表单代码应该仍然基本相同,除了文件类型,所以它仍然非常有用。我现在只需要弄清楚导入的新用户 ID 是否不存在,并且所有导入的用户在数据库中都标记为付费。感谢您的帮助

标签: sql-server excel vba vb6


【解决方案1】:

使用 32 位机器 (O/S):

Dim cn As ADODB.Connection
Dim strSQL As String
Dim lngRecsAff As Long
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=C:\test\myfile.xls;" & _
    "Extended Properties=Excel 8.0"

'Import by using Jet Provider.
strSQL = "SELECT * INTO [odbc;Driver={SQL Server};" & _
    "Server=<server>;Database=<database>;" & _
    "UID=<user>;PWD=<password>].MyTable " & _
    "FROM [MySheet$]"
Debug.Print strSQL
cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
Debug.Print "Records affected: " & lngRecsAff

cn.Close
Set cn = Nothing

Microsoft KB : 321686 有更多想法。

【讨论】:

  • 是否需要使用 ADO 和 Jet 将记录从 VB6 上传到 SQL?我想我对为什么需要数据库引擎将数据导入现有数据库感到困惑,它是否使代码像表单一样工作?我真的对VB6中的一些事情感到困惑。感谢您的帮助
  • VB6 本身不知道如何与数据库通信。您必须使用一些数据库。我认为进展是 DAO、RDO,然后是 ADO。但是你必须搭载一些 mdac 技术。这是一篇文章。 msdn.microsoft.com/en-us/library/aa231216%28v=vs.60%29.aspx
  • 找到我提到的其他想法的知识库。
  • PS VB6 是一项古老的技术。尽快远离它。
  • 如果这个答案(或任何答案)有帮助,你应该点赞。如果答案让您满意或使您的问题得到解决,您应该将答案标记为“答案”。
猜你喜欢
  • 1970-01-01
  • 2017-06-05
  • 2023-04-02
  • 2019-03-12
  • 2016-10-22
  • 1970-01-01
  • 2018-04-07
  • 2011-09-26
  • 2016-11-26
相关资源
最近更新 更多