accessvba資料庫連接
① 如何在VBA中用ADO連接遠程的access資料庫
遠程連接access資料庫的幾個方法: 1.建立VPN(Virtual Private Network),然後把伺服器中mdb文件所在的 Folder 共享即可。連接方法如下: 「Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\伺服器名\\文件夾 \\mydata.mdb;Jet OLEDB:Database Password=datapass;Persist Security Info=False」2.把資料庫放在Web 伺服器上,使ADO或RDO通過RDS(Remote Data Service) 及IIS來實現: 如果伺服器設置了ODBC DSN的話,連接方法如下: "Provider=MS Remote;Remote Server=http://伺服器名;Remote Provider=MSDAsql;DSN=AdvWorks;Uid=dataUserName;Pwd=dataPassWord" 如果設置的是OLE DB Provider 的話,連接方法如下: "Provider=MS Remote;Remote Server=http://伺服器名;Remote Provider=Microsoft.Jet.OLEDB.4.0; Data Source=資料庫文件路徑,"+ "admin,"+"" (資料庫用戶名為:admin;密碼為空)3.編寫伺服器程序,通過TCP/IP,傳遞Recordset。 4.使用第三方控制項,如:ADO Anywhere或UDAParts RDB等。 5.使用XMLHTTP 應用舉例OledbConnection myconn = null;myconn = new OledbConnection("192.168.1.155", "DSN=mydata;DRIVER={Microsoft Access Driver (*.mdb)};UID=test;PWD=test;"); //其中伺服器IP是 192.168.1.155 ;資料庫名是 mydata ;資料庫用戶名這密碼都是test myconn.Open();② vba怎麼連接access資料庫
我在EXCEL中連接ACCESS資料庫查詢:
data="FA0001"
mysql="selece * from 產品 where 批號=="& "'"&data & "'"
rs.Open mysql,cnn, adOpenForwardOnly, adLockReadOnly
這樣就搜索不到任何信息,是不是在mysql語句只能引用參數查詢時出現了什麼問題啊,我一直很迷茫。
如果把它改成mysql="selece * from 產品 where 批號=『FA0001』"就行了,可以將滿足條件的給搜索出來。為什麼上面的語句就是不行呢,希望高手為我解答一下,如果方便的話,麻煩發消息把把QQ留給我,以便進一步交流。
③ 如何用vba將ACCESS窗體和查詢導入另一個資料庫中
Access是微軟Office組件的資料庫軟體,使用它可以進行簡單的資料庫軟體的開發。但Access的圖表功能和數據分析功能不如Excel強大,常用的做法可以將Access中的數據導入Excel中再進行處理。
代碼利用ADO組件可以方便地對各種數據進行連接和訪問。ADO組件中的Connection對象可以實現對資料庫的連接,並可以快速實現SQL語句的執行,然後再用VBA將SQL查詢的結果輸出到Excel表格中。
打開VBE窗口,選擇菜單「工具」一「引用」,勾選MicrosoftActiveXDataObjects2.8Library,並單擊「確定」按鈕。
利用ADO連接資料庫ADO的全稱是ActiveXDataObject,是一個用於存取數據源的COM組件,用以快速實現各種資料庫的連接、讀取、寫入。在ADO組件中有一個Connection對象,利用Connection對象的Open方法可以實現資料庫的連接。
④ VBA 連接Access資料庫查詢
你數據對不上是少數據嗎?你的語句中用了like,但沒有通配符,試試修改
sqls = "SELECT * FROM NDYX where FIELD(0) like'*" & a & "*'" '定義SQL查詢命令字元串"
⑤ 如何用vba代碼將access資料庫連接求代碼
下面這段程序是連接資料庫,並將excel表格內容寫入資料庫。代碼如下:
Sub FYMXDL()
Dim XQID As Integer
Dim JZID As Integer
Dim FYID As Integer
Dim FBXZ As String '分包性質
Dim DW As String
Dim SARR(1 To 31) As Double
Dim rst As New ADODB.Recordset
mYpath = ThisWorkbook.Path & "\jzfydata.accdb"
Set cONn = CreateObject("ADODB.Connection")
cONn.ConnectionString = "Provider=Microsoft.Ace.OleDB.12.0;Data Source=" & mYpath
cONn.ConnectionString = cONn.ConnectionString & ";Jet OLEDB:Database "
cONn.Open
XQID = Cells(3, 2).Value
JZID = Cells(3, 5).Value
'清空改小區-建築的費用明細
Sql = "delete from fymxb where 小區ID=" & XQID & " AND 建築ID = " & JZID
cONn.Execute Sql
Const kshh = 7
hh = kshh
Do While Cells(hh, 3).Value > 0
FYID = Cells(hh, 3).Value
FBXZ = Cells(hh, 11).Text
For i = 1 To 31
SARR(i) = Round(Cells(hh, 13 + i - 1).Value, 2)
Next i
Sql = "INSERT INTO fymxb(小區ID,建築ID,費用ID,分包性質,工作量,單價合計_中標,人工費_中標, 主材費_中標, 輔材費_中標, 機械費_中標, 管理費_中標, 利潤_中標,規費_中標,稅金_中標,合價_中標,單價合計_標准成本,人工費_標准成本,主材費_標准成本,輔材費_標准成本,機械費_標准成本,管理費_標准成本,利潤_標准成本,規費_標准成本,稅金_標准成本,合價_標准成本,單價合計_實際成本,人工費_實際成本,主材費_實際成本,輔材費_實際成本,機械費_實際成本,管理費_實際成本,利潤_實際成本,規費_實際成本,稅金_實際成本,合價_實際成本) VALUES (" & XQID & ", " & JZID & ", " & FYID & ", '" & FBXZ & "'"
For i = 1 To 31
Sql = Sql & "," & SARR(i)
Next i
Sql = Sql & " )"
cONn.Execute Sql
hh = hh + 1
Loop
End Sub
