Run-Time Error '424' Objekt Erforderlich - Fehler MoveFirst
Habe ich einen login-Bildschirm mit einer dropdown-Liste, die Ihre MSID aus der Tabelle tTbl_LoginUsers
Die MSID entspricht der PKUserId (eine ganze Zahl), wie unten
PKUserID MSID
1 jjenki02
2 trensc01
Ich brauche den code unten Hinweis: die PKUserID verwendet werden, für LngLongID, die Orte, die 1 oder 2 entsprechenden PKUSERID der MSID in meine tTbl_LoginSessions in der Spalte fldUserName, aber die Ausführung, das gibt mir die Run-Time Error '424' Objekt Erforderlich. Ich kann nicht für das Leben von mir herauszufinden, warum? Irgendwelche Ideen?
Private Sub CboUser_Click()
Dim MyCon As ADODB.Connection
Dim MyRS As ADODB.Recordset
Set MyCon = New ADODB.Connection
MyCon.Open "DRIVER=SQL Server;SERVER=dbswd****;UID=*****;PWD=*****;DATABASE=Regulatory;"
Set MyRS = New ADODB.Recordset
'/The following code focuses on the DropDown field that the User selects their MSID
'/if MyNum = MSID, then MoveFirst to get the PKUserID(Column 1)from tTbl_LoginUsers
CboUser.SetFocus
MyNum = CboUser.Text
MyRS.Open "Select * from dbo.tTbl_LoginUsers Where MSID = '" & MyNum & "'", MyCon
Debug.Print strSQL
NewRecordRS.MoveFirst
LngLoginId = NewRecordRS!fldUserName
End Sub
NEUEN CODE ANGEPASST:
tTbl_LoginSessions hat die folgenden Felder: fldloginkey, fldUserName, fldLoginEvent, fld LogoutEvent, fldComputerName.
.MoveFirst löst es
Private Sub CboUser_Click()
Dim MyCon As ADODB.Connection
Dim MyRS As ADODB.Recordset
Set MyCon = New ADODB.Connection
MyCon.Open "DRIVER=SQL Server;SERVER=dbswd0027;UID=Mickey01;PWD=Mouse02;DATABASE=Regulatory;"
Set MyRS = New ADODB.Recordset
With MyRS
'/The following code focuses on the DropDown field that the User selects their MSID
'/if that MyNum = MSID, then MoveFirst to get the PKUserID(Column 1)from tTbl_LoginUsers
CboUser.SetFocus
MyNum = CboUser.Text
MyRS.Open "Select * from dbo.tTbl_LoginUsers Where MSID = '" & MyNum & "'", MyCon
Debug.Print strSQL
If Not (.BOF And .EOF) Then
.MoveFirst
LngLoginId = !fldUserName
End If
End With
Debug.Print strSQL
'NewRecordRS.MoveFirst
'LngLoginId = NewRecordRS!fldUserName
End Sub
DIES IST DER CODE, Orte, PKUSERID in die Login-Sitzungen:
Function CreateSession()
'/This function records the details regarding the login details of the person
Dim con As ADODB.Connection
Dim cmd As ADODB.Command
Dim strSQL As String
Dim WhoAmI As Long
Set NewIdentRS = New ADODB.Recordset
Dim LngLoginId As String, StrComputerName As String
'passing variables
StrMSID = LngLoginId
'old StrMSID = StrLoginName
StrComputerName = FindComputerName
'Declaring what table you are passing the variables to
strSQL = "Insert into dbo.tTbl_LoginSessions(fldUserName, fldLoginEvent, fldComputerName) Values ('" & StrMSID & "','" & Now() & "','" & StrComputerName & "')"
Debug.Print strSQL
'connect to SQL Server
Set con = New ADODB.Connection
With con
.ConnectionString = cSQLConn
.Open
End With
'write back
Set cmd = New ADODB.Command
With cmd
.ActiveConnection = con
.CommandText = strSQL
.CommandType = adCmdText
.Execute
End With
con.Close
Set cmd = Nothing
Set con = Nothing
End Function
Ich habe auch dieses:
Public Function GrabMSID(frmObject)
GrabMSID = LngUserID
End Function
'Call it this way:
MyMSID = GrabMSID(Me)
Option Compare Database
Public LngLoginId As Long
InformationsquelleAutor T-Rex | 2013-11-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
.MoveFirst
Zeile wirft ein Fehler, weil du keine variable mit dem Namen NewRecordRS. Sieht aus wie Sie benötigen, anstatt ...Oder verwenden Sie das recordset-Objekt, variabler name einmal in einem
With
block ...Hinweis: Wenn tTbl_LoginUsers nicht enthalten ein Feld mit dem Namen fldUserName, dieser code wirft einen Fehler ("Element kann nicht gefunden werden in der Auflistung entsprechenden auf den angeforderten Namen oder Ordinalzahl") in dieser Zeile:
Allerdings habe ich versucht zu lösen, die "Objekt erforderlich" Fehlermeldung, die war der ursprüngliche Gegenstand Ihrer Frage. Wenn Sie dann einen Fehler, weil fldUserName nicht der Ausgang in das recordset, das ist eine andere Fehlermeldung.
Wir brauchen mehr Informationen, um zu diagnostizieren, dass Fehler. Die Zeile löst den Fehler aus? Enthält die Tabelle ein Feld mit dem Namen fldUserName?
tTbl_LoginSessions hat die folgenden Felder: fldloginkey, fldUserName, fldLoginEvent, fld LogoutEvent, fldComputerName.
In diesem Fall sollten Sie eine Fehlermeldung erhalten, an
MyRS.Open
weil die Abfrage enthält ", Wo MSID = " und du zeigte uns, dass die Tabelle nicht ein Feld mit dem Namen MSID.Sorry, tTbl_LoginUsers hat die folgenden Spalten: PKUserID, MSID, Aktiv, fldLoggedIn, fldComputer, strEmpEmail, strEmpEmail, strEmpFirstName, strEmpLastName. Ich bin versucht, Suche die MSID auf diese Tabelle greifen die entsprechenden PKUserID und legen Sie es in fldUserName, um für die Anmeldung verwendet werden-Benutzer aus. Hilft das? Vielen Dank für Ihre Geduld.
InformationsquelleAutor HansUp