完成vb下將excel的表導入sql

忙了兩天,找書,上網,查了一些資料總算吧這個問題解決了。對於像編程開發一類的工作,有時看書沒太大的幫助,以爲實踐性比較強,還真的不如上網baidu或google一下來的快。前兩天找的那篇文章其實沒有利用上,倒是連到CSDN上的一個帖子給了直接方法。帖子表述如下:
******************************************************************
'引用ADO(Microsoft   ActiveX   Data   Objects   2.X   Library) 
  Private   Sub   Command1_Click() 
          On   Error   GoTo   err 
          Dim   cn   As   New   ADODB.Connection 
          '具體的數據庫連接請自己改過來 
          cn.ConnectionString   =   "Provider=SQLOLEDB.1;Persist   Security   Info=False;User   ID=sa;Password=123;Initial   Catalog=dataBase001;Data   Source=mySERVICE" 
          cn.CursorLocation   =   adUseClient 
          cn.Open         
          cn.Execute   "select   *   into   NewTable   from   OpenRowSet('microsoft.jet.oledb.4.0','Excel   8.0;HDR=Yes;database=c:/Test.xls;','select   *   from   [Sheet1$]')" 
          cn.Close 
          Set   cn=Nothing 
          Exit   Sub 
  err: 
          MsgBox   err.Description 
  End   Sub
********************************************************************
由於剛接觸數據庫,知道這用的是ADO的方法,但是不知道他那引用ADO是什麼意思,跑起代碼總是第一個聲明就錯了。後來才知道要在工程->引用裏把Microsoft ActiveX Data Library 2.x 選上。
現在目標已經實現,想把其中的幾個點記錄一下.
1.與sql的連接
這是一個最頭大的問題,個人覺得最重要的就是把身份驗證設爲“混合模式”,用“windows模式”安全但是對編程開發很不便。在想方便就是選擇“空密碼”;
2.connectionstring
連接字符串各個參數的順序可以互換,Initial   Catalog指數據庫的名稱,Data   Source指數據庫服務器的地址。
3.sql語句中變量作爲參數
變量還放在原參數的位置,但要在其兩側放上&,在加兩個雙引號,比如下句:
select   *   into   NewTable   from
現在用變量table代替NewTable
select   *   into   " & table & "  from

最後實現的代碼如下:
Private Sub Command1_Click()
On Error GoTo err
          Dim cn     As New ADODB.Connection
         
          database = Text3.Text
          table = Text2.Text
          'cn.ConnectionString = "Provider=SQLOLEDB.1;Password=;Persist Security Info=false;User ID=sa;Initial Catalog=" & database & ";Data Source=(local)"
          cn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=false;User ID=sa;Password=;Initial Catalog=" & database & ";Data Source=(local)"
          cn.CursorLocation = adUseClient
          cn.Open
         
          'cn.Execute "select   *   into   NewTable   from   OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=e:/test.xls;','select   *   from   [Sheet1$]')"
          cn.Execute "select   *   into   " & table & "  from   OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=" & filenamefet & ";','select   *   from   [Sheet1$]')"
          cn.Close
          Set cn = Nothing
          MsgBox "ok!"
          Exit Sub
err:
          MsgBox err.Description
End Sub

Private Sub Command2_Click()
    CommonDialog1.Filter = "EXCEL文件(*.xls)|*.xls"
    CommonDialog1.ShowOpen
    filenamefet = CommonDialog1.FileName
    Text1.Text = filenamefet
End Sub
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章