看一下本地mssql服务器有没有运行,要是有看一下服务器名字是什么 服务的默认名字该是 (local)
可以把Server=localhost; 改成Server=(local); 试试
下面是一种格式:
"Provider = Sqloledb; User ID = User ; Password = Psw; Initial Catalog =DBName; Data Source =(local); "
给你个链接算起来2005的,测试通过
只说链接部分
Set cnn = CreateObject("adodbconnection")
strcn = "Provider=SQLOLEDB1;User ID=sa;Password=sa1234;Initial Catalog=paracheck;DataSource=ZN" 'ZN为数据库名称
cnnOpen strcn '链接数据库,这里已经成功连接数据库了
st = "SELECT INTO [" & s & "] FROM OPENROWSET('MicrosoftACEOLEDB120','Excel 120;HDR=yes;DATABASE=" & [Sheet7]Range("b" & i) & "','select from [sheet1$]')" '导入excel到sql2005数据库并新建数据库表名为([Sheet7]Range("a" & i))去掉xls才可以导入,sheet1为表的取名名称,不是表的编码名称
cnnExecute st
cnnClose
Set cnn = Nothing
呵呵,以前就帮人家解决过这个,请看下面的代码,有注释的!
Private Sub CommandButton5_Click()
Dim Conn As New ADODBConnection '定义ADODB连接对象
Dim ConnStr As String '定义连接字符串
Dim xiao As String
xiao = ComDataText
'对于SQL 2008,如果以IP方式访问服务器,必须要启动SQL Server Browser服务,如果是Express版本,要以“IP(计算机名)\实例名”方式访问
ConnStr = txtDataText
Dim Records As New ADODBRecordset '定义ADODB对象的记录集
Dim Sheet As Worksheet '定义工作表
Set Sheet = ThisWorkbookWorksheets("Sheet2") '给变量Sheet赋值,注意:是工作簿中索引为1的那个表(通常一个新的工作簿Sheet1的索引为1)
'SheetName = "Data" '把Sheet名称改为Data
SheetCellsClear '清空表中原有的数据
'连接状态是打开就不在进行Open *** 作
ConnOpen ConnStr
Dim SQLStr As String '要执行的SQL语句
SQLStr = "select from Shift_Code where Club='" + xiao + "'" '可以执行更复杂的SQL语句
RecordsOpen SQLStr, Conn, adOpenStatic, adLockBatchOptimistic '读取SQL查询结果到Records记录集
'RecordsOpen
Dim i, j, TotalRows, TotalColumns As Integer
j = 0
TotalRows = RecordsRecordCount
TotalColumns = RecordsFieldsCount
'下面的循环把表头(即列名)写到Excel表的第一行
For i = 0 To TotalColumns - 1
Sheet2Cells(1, i + 1) = RecordsFields(i)Name
Next
'下面的循环把查询结果写到Excel表中
Do While Not RecordsEOF
For i = 0 To TotalColumns - 1
Sheet2Cells(j + 2, i + 1) = RecordsFields(i)Value
Next
RecordsMoveNext
j = j + 1
Loop
RecordsClose '关闭记录集
ConnClose '关闭连接
Set Records = Nothing '清空对象
Set Conn = Nothing '清空对象
End Sub
有什么不懂的话Hi我!
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点,是 Microsoft Office 的系统程序之一。用vba代码将access数据库连接求代码,代码如下:
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 ADODBRecordset
mYpath = ThisWorkbookPath & "\jzfydataaccdb"
Set cONn = CreateObject("ADODBConnection")
cONnConnectionString = "Provider=MicrosoftAceOleDB120;Data Source=" & mYpath
cONnConnectionString = cONnConnectionString & ";Jet OLEDB:Database "
cONnOpen
XQID = Cells(3, 2)Value
JZID = Cells(3, 5)Value
'清空改小区-建筑的费用明细
Sql = "delete from fymxb where 小区ID=" & XQID & " AND 建筑ID = " & JZID
cONnExecute 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 = Sql & "," & SARR(i)
Next i
Sql = Sql & " )"
cONnExecute Sql
hh = hh + 1
Loop
End Sub
在EXCEL 的 代码编辑窗口,使用菜单 工具-引用,勾选
Microsoft ActiveX Data Object 26 Library 或其他版本
这样引用了VB的ADODB对象模型,其他使用办法与VB环境完全一样。
以上就是关于VBA 连不上本地数据库全部的内容,包括:VBA 连不上本地数据库、VBA连接数据库,数据库配置不正确,导致连接失败,要求给出提示,并且退出程序、Excel VBA 连接SQL数据库后的 *** 作。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)