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
