C
Crystal
'*****UserRoster Sub Routine*****
Option Compare Database
Option Explicit
Global Const JET_SCHEMA_USERROSTER = _
"{947bb102-5d43-11d1-bdbf-00c04fb92675}"
Sub ReturnUserRoster(strdbspath)
DoCmd.SetWarnings False
DoCmd.OpenQuery "ADMIN_qryDeletetblUsersOn"
DoCmd.SetWarnings True
Dim cnn As New ADODB.Connection
Dim rst As ADODB.Recordset
Dim cnnUsers As ADODB.Connection
Dim rstUsers As ADODB.Recordset
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & strdbspath
Set rst = cnn.OpenSchema(adSchemaProviderSpecific _
, , JET_SCHEMA_USERROSTER)
Set cnnUsers = New ADODB.Connection
cnnUsers.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=c:\Documents and
Settings\a04aczz\Desktop\Database Administrator.mdb"
' Open employee table.
Set rstUsers = New ADODB.Recordset
rstUsers.CursorType = adOpenKeyset
rstUsers.LockType = adLockOptimistic
rstUsers.Open "ADMIN_tblUsersOn", cnnUsers, , , adCmdTable
rst.MoveFirst
Do Until rst.EOF = True
rstUsers.AddNew
rstUsers.Fields(0).Value = Left(rst.Fields(0).Value, 8)
rstUsers.Fields(1).Value = rst.Fields(1).Value
If rst.Fields(2) = -1 Then
rstUsers.Fields(2) = "True"
Else
rstUsers.Fields(2) = "False"
End If
If rst.Fields(3) = -1 Then
rstUsers.Fields(3) = "True"
Else
rstUsers.Fields(3) = "False"
End If
rstUsers.Update
rst.MoveNext
Loop
Set rst = Nothing
Set cnn = Nothing
Set rstUsers = Nothing
Set cnnUsers = Nothing
End Sub
'********End*********** 'This seems to work fine.
'Problem:
Private Sub cmdExecute_Click()
'Remove old data from tblUsersOn
DoCmd.SetWarnings False
DoCmd.OpenQuery "ADMIN_qryDeletetblUsersOn"
DoCmd.SetWarnings True
Call basUserRoster.ReturnUserRoster(strdbspath)
Me.frmUsersOn.Requery
Dim cnnCurrent As ADODB.Connection
Dim rstCurrent As ADODB.Recordset
'Set up connection
Set cnnCurrent = New ADODB.Connection
cnnCurrent.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Documents and
Settings\a04aczz\Desktop\Database Administrator.mdb"
'Set up recordset
Set rstCurrent = New ADODB.Recordset
rstCurrent.CursorType = adOpenKeyset
rstCurrent.LockType = adLockOptimistic
rstCurrent.Open "ADMIN_tblUsersOn", cnnCurrent, , ,
adCmdTable
Me.frmUsersOn.Requery
rstCurrent.MoveLast
rstCurrent.MoveFirst
MsgBox rstCurrent.RecordCount
set rstcurrent = Nothing
set cnnCurrent = nothing
'*********End****
This happens with ADO and DAO. In either situation, the
recordset doesn't seem to be able to see the records.
Option Compare Database
Option Explicit
Global Const JET_SCHEMA_USERROSTER = _
"{947bb102-5d43-11d1-bdbf-00c04fb92675}"
Sub ReturnUserRoster(strdbspath)
DoCmd.SetWarnings False
DoCmd.OpenQuery "ADMIN_qryDeletetblUsersOn"
DoCmd.SetWarnings True
Dim cnn As New ADODB.Connection
Dim rst As ADODB.Recordset
Dim cnnUsers As ADODB.Connection
Dim rstUsers As ADODB.Recordset
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & strdbspath
Set rst = cnn.OpenSchema(adSchemaProviderSpecific _
, , JET_SCHEMA_USERROSTER)
Set cnnUsers = New ADODB.Connection
cnnUsers.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=c:\Documents and
Settings\a04aczz\Desktop\Database Administrator.mdb"
' Open employee table.
Set rstUsers = New ADODB.Recordset
rstUsers.CursorType = adOpenKeyset
rstUsers.LockType = adLockOptimistic
rstUsers.Open "ADMIN_tblUsersOn", cnnUsers, , , adCmdTable
rst.MoveFirst
Do Until rst.EOF = True
rstUsers.AddNew
rstUsers.Fields(0).Value = Left(rst.Fields(0).Value, 8)
rstUsers.Fields(1).Value = rst.Fields(1).Value
If rst.Fields(2) = -1 Then
rstUsers.Fields(2) = "True"
Else
rstUsers.Fields(2) = "False"
End If
If rst.Fields(3) = -1 Then
rstUsers.Fields(3) = "True"
Else
rstUsers.Fields(3) = "False"
End If
rstUsers.Update
rst.MoveNext
Loop
Set rst = Nothing
Set cnn = Nothing
Set rstUsers = Nothing
Set cnnUsers = Nothing
End Sub
'********End*********** 'This seems to work fine.
'Problem:
Private Sub cmdExecute_Click()
'Remove old data from tblUsersOn
DoCmd.SetWarnings False
DoCmd.OpenQuery "ADMIN_qryDeletetblUsersOn"
DoCmd.SetWarnings True
Call basUserRoster.ReturnUserRoster(strdbspath)
Me.frmUsersOn.Requery
Dim cnnCurrent As ADODB.Connection
Dim rstCurrent As ADODB.Recordset
'Set up connection
Set cnnCurrent = New ADODB.Connection
cnnCurrent.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Documents and
Settings\a04aczz\Desktop\Database Administrator.mdb"
'Set up recordset
Set rstCurrent = New ADODB.Recordset
rstCurrent.CursorType = adOpenKeyset
rstCurrent.LockType = adLockOptimistic
rstCurrent.Open "ADMIN_tblUsersOn", cnnCurrent, , ,
adCmdTable
Me.frmUsersOn.Requery
rstCurrent.MoveLast
rstCurrent.MoveFirst
MsgBox rstCurrent.RecordCount
set rstcurrent = Nothing
set cnnCurrent = nothing
'*********End****
This happens with ADO and DAO. In either situation, the
recordset doesn't seem to be able to see the records.