如题目!小弟N年没有用VB6,请各位大侠执教!
问题一,如题,难道要一条一条Insert?有什么好方法?
问题二,我的连接FOXPRO的代码为何不行?代码如下?Dim strCon As String
Dim strFile As String
strFile = App.Path + "\200508.dbf"
strCon = "provider=msdasql;DRIVER=Microsoft Visual FoxPro Driver;UID=;Deleted=yes;Null=no;Collate=Machine;BackgroundFetch=no;Exclusive=No;SourceType=DBF;SourceDB='" & strFile & "';"Dim objConnect As ADODB.Connection
Set objConnect = New ADODB.Connection
objConnect.ConnectionString = strCon
objConnect.OpenDim rs As ADODB.Recordset
Dim strSQL As String
strSQL = "select * from a"
Set rs = New ADODB.Recordsetrs.Open strSQL, objConnect, adOpenStatic, adLockReadOnlySet Me.DataGrid1.DataSource = rs

解决方案 »

  1.   

    如果你要經常性的做這項工作的話那你只有編寫代碼,如果只是一兩次做數據的過渡性導入,我覺得DTS還是值得一用的~如果寫代碼導入的話,估計就只能一條一條的導入了.似乎沒有更好的辦法.沒試過用FOXPRO,所以不能确定你的連接方法是否正确,呵~
      

  2.   

    我经常要导入,所以只能用代码实现~~可为什么我连不上,我想把Foxpro里的数据放到recordset里,然后什么事情都好办了...呵呵
      

  3.   

    是啊,一条条的导入吧,写两个连接,两个记录集,从一个记录集中导入到另一个记录集中。数据库连接可以到这个网站里查!
    http://www.a5d.com/InfoView/Article_817.asp
      

  4.   

    不过导数据这种操作VB不是强项,可以用PB的数据管道来做,速度超快!
      

  5.   

    ......楼上的大侠~~别这样...我不会PB~~~晕,
    谁能告诉我我上面的代码连接DBF,哪儿TNND错了...呵呵Dim strCon As String
    Dim strFile As String
    strFile = App.Path + "\200508.dbf"
    strCon = "provider=msdasql;DRIVER=Microsoft Visual FoxPro Driver;UID=;Deleted=yes;Null=no;Collate=Machine;BackgroundFetch=no;Exclusive=No;SourceType=DBF;SourceDB='" & strFile & "';"Dim objConnect As ADODB.Connection
    Set objConnect = New ADODB.Connection
    objConnect.ConnectionString = strCon
    objConnect.OpenDim rs As ADODB.Recordset
    Dim strSQL As String
    strSQL = "select * from a"
    Set rs = New ADODB.Recordsetrs.Open strSQL, objConnect, adOpenStatic, adLockReadOnlySet Me.DataGrid1.DataSource = rs
      

  6.   

    报错内容1:[Microsoft][ODBC dbase Driver] '未知的'不是一个有效的路径.确定路径名称拼写是否正确,以及是否连接文件存放的服务器我肯定有这个文件
    于是我换了个连接字符串
    报错内容二::[Microsoft][ODBC dbase Driver] file 'a.dbf' does not exist
    我的dbf文件根本不叫这个a.dbf名字晕~~在线等....
      

  7.   

    是你的连接字符串写的不对,上我给你的网站里查找 一下FOXPRO的连接方式,看看你的FOXPRO驱动与你写的是否匹配!
      

  8.   

    我VB+ACCESS尝试做过将DBF表导入ACCESS,因为我需要对目标表的字段及源表的字段进行动态的选择,比如目标表有bh,xm,xb,zy 字段,源表(DBF)有学号,姓名,性别,专业字段源表与目标表结构不同,而且导入中有可能只需要源表的一部分字段,因为我是将源表(DBF)先导入一个临时表,然后对临时表进行相关操作,将源表导入临时表的语句是:
    txtsql = "select * into tempTable from [dBase III;database=" & Trim(DbfPath) & "].[" & DbfFil & "]"
    cn.execute(txtsql)temptable是一个临时表,dbfpath是表的路径,dbffil是表名
    我这里用的是dBase III,但导入foxpro的表一样能成功,你参考一下
      

  9.   

    我的通过,参考一下,注意先安装vfp9.0:Option ExplicitDim Cn As New ADODB.Connection
    Dim rS As New ADODB.Recordset'/------------连接VFP数据表
    '/------------'返回值:=TRUE 连接成功,=FALSE 连接失败。
    '/------------例如:cDbfPath=绝对路径(注意 不带数据表名称)
    Private Function ConnVfp(cDbfPath As String, ByRef Cn As ADODB.Connection) As Boolean
    Dim strConnect As String '连接字符串
    On Error GoTo ConnErr
     strConnect = "Provider=VFPOLEDB.1;SourceType=DBF;Data Source=" & cDbfPath
     Cn.ConnectionString = strConnect '指定连接字符串
     Cn.Open '连接数据库
     ConnVfp = True
     Exit Function
    ConnErr:
    MsgBox "连接数据库失败。"
    ConnVfp = False
    End FunctionPrivate Sub Command1_Click()
    Dim cSql As String, cDbfPath As String
    cDbfPath = "E:\City\Data"
    '1/--------------------------------------------------------------------------------------------------------
    ' /-----------连接VFP数据库
    Set Cn = New ADODB.Connection
    If ConnVfp(cDbfPath, Cn) = False Then Exit SubcSql = "Select Sta_id,year,mon,day,City " & _
             "From City.DBF " & _
             "Where Sta_id='0015' And Year='1986' And Mon='01' order by Year "
    '2/--------------------------------------------------------------------------------------------------------
    ' /-----------使用一个新数据集
    Set rS = New ADODB.Recordset
    rS.CursorLocation = adUseClient
    rS.Open cSql, m_Con, adOpenDynamic, adLockOptimistic
    End Sub
      

  10.   

    关于连接字符串,只需注意有无数据容器,重要的是连接对象的CursorLocation必须置为  adUseClient,否则是连不上的,由于vf支持ado 有限,很多ado 的功能得不到实现,所以即使连上以后也读不出记录的条数,只能循环读取记录
      

  11.   

    不好意思上面说错了应该是将CursorLocation置为adUseServer