ログイン時刻とログアウト時刻を1レコードに格納するには

解決


うまくいくうま  2004-01-06 05:44:18  No: 111063

すいません。1点SQLでお教えください。
FORMのロード時に「ログイン時間とその担当者コード」をDBに格納し、
Command5(終了ボタン)のClick時に「ログアウト時間とその担当者コード」を
同じDBに格納しています。
下記の記述でおこなっているのですが、ログイン時とログアウト時を
まとめて1レコードで格納するにはどうすればいいのでしょうか。

DBの項目
テーブル名:LOGIN_TIME
フィールド:担当者コード、担当者名、担当者名(カナ)、LOGIN日時、LOGOUT日時
※担当者コードは変数usernameに代入されている。

'ログイン時間を記録
Private Sub Form_Load()

Dim rsL As New ADODB.Recordset

rsL.Open "LOGIN_TIME", cn, adOpenKeyset, adLockPessimistic
rsL.AddNew
rsL![担当者コード] = username
rsL![LOGIN日時] = Now
rsL.Update
rsL.Close
(以下略)

-----------------------------------------------------------------

’ログアウト時間を記録
Private Sub Command5_Click()

Dim rsL As New ADODB.Recordset

rsL.Open "LOGIN_TIME", cn, adOpenKeyset, adLockPessimistic
rsL.AddNew
rsL![担当者コード] = username
rsL![LOGOUT日時] = Now
rsL.Update
rsL.Close

(以下略)


魔界の仮面弁士  2004-01-06 12:24:10  No: 111064

クライアント(VBアプリのあるPC)の時刻を格納するのですか?
複数のPCから接続される場合には、サーバー(DBのあるPC)の時刻を格納した方が良いかも。

> 下記の記述でおこなっているのですが、ログイン時とログアウト時を
> まとめて1レコードで格納するにはどうすればいいのでしょうか。

WHERE句を指定したUPDATE SQLを発行するか、もしくは、主キーの値でレコードを検索してから出力すれば良いかと。


うまくいくうま  2004-01-07 05:30:42  No: 111065

魔界の仮面弁士様  
ありがとうございました。

>WHERE句を指定したUPDATE SQLを発行するか、もしくは、主キーの値でレコードを>検索してから出力すれば良いかと。

ログアウト時に後者の方法で格納するようにしました。

'ログアウト時間を記録
myQql = "SELECT LOGIN_TIME.担当者コード, LOGIN_TIME.LOGOUT日時 From LOGIN_TIME WHERE LOGIN_TIME.担当者コード = '" + username + "' AND (SELECT MAX(LOGIN日時) FROM  LOGIN_TIME)"
rsL.Open myQql, cn, adOpenKeyset, adLockPessimistic
rsL![担当者コード] = username
rsL![LOGOUT日時] = Now
rsL.Update
rsL.Close

1行でログインとログアウトが表示できました!
ありがとうございました。

注:サーバー側の時刻を利用する方法、ついでにお教えいただけないでしょうか。


魔界の仮面弁士  2004-01-07 06:05:34  No: 111066

> サーバー側の時刻を利用する方法

「UPDATE SQL中で、DBの時刻関数を使う」というだけです。
SQL ServerならばGETDATE、OracleならばSYSDATE、JetならばNOWあたりですかね。


うまくいくうま  2004-01-07 23:15:28  No: 111067

ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加