|
- '*****************************************************************************************
- '函数名: AddDelMove
- '函数功能: 执行SQL语句,一般为添加、修改删除语句
- '返回值: 返回影响的行数:-2是错误提示
- '参数1: StrSQL 字符类型 SQL查询语句
- '参数2: Str_coon 字符类型 链接语句
- 'Str_coon = "Provider=Microsoft.JET.OLEDB.4.0;Extended Properties='Excel 8.0;HDR=yes';Data Source=" & ThisWorkbook.FullName '//OFFICE2003
- 'Str_coon = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0;HDR=yes';Data Source =" & ThisWorkbook.FullName '//OFFICE2007
- 'Str_coon = "HDR=yes';Data Source =" & FileArr(i) '//OFFICE2003,2007 通用
- '使用方法: StrSQL = "DELETE FROM 双色球 WHERE 总序号>1440"
- ' StrSQL="insert into [sheet1$k2:l6] (f1,f2) values (9,'mine')"
- ' IntX= AddDelMove(StrSQL, Str_coon)
- '*****************************************************************************************
- Public Function AddDelMove(ByVal StrSQL As String, ByVal Str_coon As String) As Long '//执行SQL语句,一般为添加、修改删除语句
- On Error Resume Next ' 改变错误处理的方式。
- Dim iRowscount As Long
- Dim CN
-
- Rem Str_coon = "HDR=yes';Data Source=" & ThisWorkbook.FullName
- If InStr(UCase(Str_coon), "=SQLOLEDB") > 0 Or InStr(UCase(Str_coon), "={MYSQL") > 0 Then
- Rem 如果链接的是MSSQL 或者MySQL 则使用原来的链接字符串, 不做任何处理
- Rem Str_coon ="Driver={MySql ODBC 5.3 Unicode Driver};Server=myqcloud.com;Port=7139;DB=test;UID=用户名;PWD=密码;OPTION=3;" '//外网MySQL 没有:WWW 192.168.1.05 没有:\\
- Rem Str_coon = "Provider=SQLOLEDB;Server=192.168.1.103;Database=XieXin;Uid=sa;Pwd=1005;" '//SQLServer2005局域网, 广域网链接 192.168.1.05 没有:\\
- Else
- Rem 如果链接: ACCESS Exce 或者WPS
- If InStr(UCase(Application.Path), "WPS") > 0 Then
- Rem 如果是WPS中使用, 必须是4.0版本的
- If InStr(UCase(Str_coon), "PROVIDER=") = 0 Then
- Rem 如果是简化的链接字符 就补全
- Str_coon = "Provider=Microsoft.JET.OLEDB.4.0;Extended Properties='Excel 8.0;" & Str_coon
- Rem 完整的WPS链接字符
- Rem Str_coon = "Provider=Microsoft.JET.OLEDB.4.0;Extended Properties='Excel 8.0;HDR=yes';Data Source=" & ThisWorkbook.FullName
- End If
- Else
- If InStr(UCase(Str_coon), "PROVIDER=") = 0 Then
- Rem 如果是简化的链接字符 就补全
- If Val(Application.Version * 1) < 12 Then
- Rem 2003及以下版本的 使用4.0版本引擎
- Str_coon = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;" & Str_coon
- Else
- Rem 2007及以上版本的 使用12.0版本引擎
- Str_coon = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0;" & Str_coon
- End If
- End If
- End If
- End If
-
- Err.Clear
- If StrSQL = "" Then AddDelMove = -2: Exit Function
-
- Set CN = CreateObject("Adodb.Connection") '//新建一个ADO连接
- CN.Open Str_coon
- CN.Execute StrSQL, iRowscount, adCmdText '//执行SQL语句,返回影响的行数
- Rem CN.Execute(StrSQL,iRowscount) iRowscount操作记录数,比如你插入10条数据,10条数据插入成功,那这个x就等于10
-
- If Err.Number <> 0 Then
- MsgBox "Error: " & Err.Description
- AddDelMove = -2
- Else
- AddDelMove = iRowscount
- End If
-
- CN.Close '//关闭ADO连接
- Set CN = Nothing '//释放内存
- End Function
复制代码 |
评分
-
1
查看全部评分
-
|