I have users with read only access connecting to an database, I however prefer to use the ADO connectivity method, it allows much more versitility than the ODBC connections.
here how I would do it.
Sub temp()
Dim myADOConn As ADODB.Connection
Dim myADORs As ADODB.Recordset
Dim mySQL As String
Dim myLoop As Integer
Dim myConn As String
myConn = "DSN=MS Access Database;" & _
"DBQ=C:\Feuerborn\Account-Level Rptg Tool\Acct-Lvl Rptg Tool.mdb;" & _
"DefaultDir=C:\Feuerborn\Account-Level Rptg Tool;" & _
"DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;"
Set myADOConn = New ADODB.Connection
Set myADORs = New ADODB.Recordset
mySQL = "SELECT T1.Field1, T1.Field2, T1.Field3, T1.Field3, T1.Field4"
mySQL = mySQL & " FROM Table1 T1"
myADOConn.Open myConn
myADORs.Open Source:=mySQL, ActiveConnection:=myADOConn
Range("A1").Select
If Not (myADORs.BOF Or myADORs.EOF) Then
myADORs.MoveFirst
Do While Not myADORs.EOF
ActiveCell.Offset(myLoop, 0).Value = myADORs.Fields(0).Value
ActiveCell.Offset(myLoop, 1).Value = myADORs.Fields(1).Value
ActiveCell.Offset(myLoop, 2).Value = myADORs.Fields(2).Value
ActiveCell.Offset(myLoop, 3).Value = myADORs.Fields(3).Value
ActiveCell.Offset(myLoop, 4).Value = myADORs.Fields(4).Value
myADORs.MoveNext
myLoop = myLoop + 1
Loop
myADORs.Close
myADOConn.Close
Else
MsgBox ("No Records to Display")
End If
End Sub
cheers
Matt
|