テーブル tTbl_LoginUsers からの MSID を持つドロップダウン リストを含むログイン画面があります。MSID は、以下のように PKUserId (整数) に対応します。
PKUserID MSID
1 jjenki02
2 trensc01
LngLongID に使用する PKUserID を書き留めるには、以下のコードが必要です。これにより、MSID に対応する 1 つまたは 2 つの PKUSERID が列 fldUserName の tTbl_LoginSessions に配置されますが、これを実行すると実行時エラー '424' オブジェクトが必要です。私は一生、理由を理解できませんか?何か案は?
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
新しい調整済みコード: tTbl_LoginSessions には次のフィールドがあります: fldloginkey、fldUserName、fldLoginEvent、fld LogoutEvent、fldComputerName。.MoveFirst はそれをトリガーします
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
これは、その PKUSERID をログイン セッションに配置するコードです。
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
私もこれを持っています:
Public Function GrabMSID(frmObject)
GrabMSID = LngUserID
End Function
'Call it this way:
MyMSID = GrabMSID(Me)
Option Compare Database
Public LngLoginId As Long