利用RDS可以对远程ACCESS数据库执行查询,但为什么不能执行删除和插入的操作呢??
解决方案 »
- VB怎么把程序改成直接读取文本文档的
- "—"在 vb中输出不正确????
- 请问哪个可以提供一个用vb截取网络数据包的事例代码
- 用vb做的东西,在98下不能用为什么?
- 如何用vb中sql-dmo停止mssql服务!
- 如何设定datagrid第一行的值?在线等待!
- 比较奇怪的问题,以更改但不显示
- 把文件保存到MS SQL中的image字段中,下载下来却无法还原,什么原因呢?谢谢!
- 请问一下notopad中undo的思路?
- VB.NET Beta 1.0 中DataGrid使用??
- 急急!就这多分啦,全送拉!我做了一个自动升级程序,原理就是从服务器共享目录下copy文件,现在的主要问题就是如果不手动登录服务器,就
- 急救啊!!!!!!!!!!!!!!!
Option Explicit
Private cn As ADODB.ConnectionPrivate rst As ADODB.RecordsetPublic Function Getdata(UserID As String, Password As String, sqlstr As String) As Recordset
' Create connection object.
MakeConnection UserID, Password
Set rst = New ADODB.Recordset
With rst
.CursorLocation = adUseClient
.Source = sqlstr
Set .ActiveConnection = cn
.CursorType = adOpenStatic
.LockType = adLockOptimistic
.Open
End With
On Error Resume Next
Set rst.ActiveConnection = Nothing
Set Getdata = rst
End FunctionPublic Function MakeConnection(Optional UserID As String, _
Optional Password As String) As String
' Create the connection object.
Set cn = New ADODB.Connection
On Error GoTo ConnectErr
With cn
.CursorLocation = adUseClient
.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};" & _
"Dbq=C:\inetpub\wwwroot\ick.mdb;" & _
"Uid=" & UserID & ";Pwd=" & Password
.Open
End With
' Assuming no errors occurred.
MakeConnection = True
Exit Function
' When errors occur, trap them below.
ConnectErr:
Dim i As Integer
Dim sErrors As String
sErrors = Err.Number & ": " & Err.Description
If cn.Errors.Count > 0 Then
For i = 0 To cn.Errors.Count - 1
' Handle errors here.
sErrors = sErrors & cn.Errors(i).Number & _
": " & cn.Errors(i).Description & vbCrLf
Next i
End If
MakeConnection = sErrors
Exit Function
End FunctionPrivate Sub Class_Terminate()
Set rst = Nothing
Set cn = Nothing
End Sub
Dim strOp As String
' Create connection object.
MakeConnection UserID, Password
strOp = Left(Trim(sqlstr), InStr(Trim(sqlstr), Space(0)) - 1) '判断sql语句是进行什么操作
If InStr("INSERT,DELETE,UPDATE", UCase(Trim(strOp))) Then '非查询操作,用cn.Execute来执行
cn.Execute sql
Else '查询操作用rst.Open来执行
Set rst = New ADODB.Recordset
With rst
.CursorLocation = adUseClient
.Source = sqlstr
Set .ActiveConnection = cn
.CursorType = adOpenStatic
.LockType = adLockOptimistic
.Open
End With
End If
On Error Resume Next
Set rst.ActiveConnection = Nothing
Set Getdata = rst
End FunctionPrivate Sub Class_Terminate()
If rst.State <> adStateClosed Then rst.Close
If cn.State <> adStateClosed Then cn.Close
Set rst = Nothing
Set cn = Nothing
End Sub
Optional AdoCmd As ADODB.Command) As Boolean On Error GoTo ErrorHandlerDim oCmd As ADODB.Command
Set oCmd = New ADODB.Command
Dim oRS As ADODB.Recordset ExecuteSQL = False If AdoCmd Is Nothing Then
Set oCmd.ActiveConnection = moADODBConnection
With oCmd
.CommandType = adCmdText
.CommandText = SSQL
End With
oCmd.Execute , , adExecuteNoRecords
Else
Set oCmd = AdoCmd
Set oCmd.ActiveConnection = moADODBConnection
oCmd.Execute , , adExecuteNoRecords
Set oRS = moADODBConnection.Execute("SELECT @@Identity", , adCmdText)
End If ExecuteSQL = True
Set oCmd = NothingExit FunctionErrorHandler:
' gErrorHandler Err.Number, Err.Description, OBJNAMEEnd Function