Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


644 / 2272 ツリー ←次へ | 前へ→

【10780】アクセス履歴をとりたい ひで 08/11/21(金) 10:37 質問[未読]
【10783】Re:アクセス履歴をとりたい neptune 08/11/21(金) 13:57 発言[未読]
【10784】Re:アクセス履歴をとりたい ひで 08/11/21(金) 15:52 発言[未読]
【10785】Re:アクセス履歴をとりたい Gin_II 08/11/21(金) 16:17 回答[未読]
【10786】Re:アクセス履歴をとりたい ひで 08/11/22(土) 10:38 発言[未読]
【10787】Re:アクセス履歴をとりたい neptune 08/11/22(土) 11:58 発言[未読]
【10788】Re:アクセス履歴をとりたい neptune 08/11/22(土) 11:59 発言[未読]
【10789】Re:アクセス履歴をとりたい ひで 08/11/22(土) 13:29 発言[未読]
【10790】Re:アクセス履歴をとりたい neptune 08/11/22(土) 16:17 回答[未読]
【10791】Re:アクセス履歴をとりたい ひで 08/11/22(土) 17:14 発言[未読]
【10792】Re:アクセス履歴をとりたい neptune 08/11/22(土) 18:54 回答[未読]
【10794】Re:アクセス履歴をとりたい ひで 08/11/23(日) 22:01 お礼[未読]

【10780】アクセス履歴をとりたい
質問  ひで  - 08/11/21(金) 10:37 -

引用なし
パスワード
   お世話になります。

初めて投稿しますのでよろしくお願い致します。

ログイン画面を作成し、「ID」、「パスワード」を設定しログインするのですが、
その際にログインした「ID」と「日時」を別テーブルに保存したいのですが、
やり方が分かりません。
どうかご教示の程よろしくお願い致します。

【10783】Re:アクセス履歴をとりたい
発言  neptune  - 08/11/21(金) 13:57 -

引用なし
パスワード
   ▼ひで さん:
こんにちは

>ログイン画面を作成し、「ID」、「パスワード」を設定しログインするのですが、
>その際にログインした「ID」と「日時」を別テーブルに保存したいのですが、
>やり方が分かりません。
ザックリ分けると
・ログイン画面の作成
・ログイン画面に入力されたデータをテーブルに保存する
の2つになると思いますが、

今どこまで出来ていて、どの部分で躓いているんですか?
肝心な部分が抜けてます。

【10784】Re:アクセス履歴をとりたい
発言  ひで  - 08/11/21(金) 15:52 -

引用なし
パスワード
   ▼neptune さん:

ご連絡ありがとうございます


>今どこまで出来ていて、どの部分で躓いているんですか?

手落ちで申し訳ございませんでした。

現在は、ログイン画面の作成が完了し「ID」「パスワード」の登録テーブルも
作成、ログイン画面で「ID」「パスワード」をテキストボックスに入力し「ログイン」ボタンを押し、登録テーブルの「ID」「パスワード」が合致すれば次フォームへ進める所まで作成しております。

この「ログイン」ボタンを押した時に、「ID」と日時を別テーブルで履歴として
残したいのです。

よろしくお願い致します。

【10785】Re:アクセス履歴をとりたい
回答  Gin_II  - 08/11/21(金) 16:17 -

引用なし
パスワード
   > この「ログイン」ボタンを押した時に、「ID」と日時を別テーブルで履歴として
> 残したいのです。

> 次フォームへ進める

DoCmd.OpenForm 〜 を使っていると思いますが、この前の行ぐらいで、

Currentdb.Execute "INSERT INTO テーブル名( ID, 日時 ) " _
        & "VALUES(" & Me!IDテキストボックス名 _
        & ", Now()) ", dbFailOnError

を追加してみてください。

【10786】Re:アクセス履歴をとりたい
発言  ひで  - 08/11/22(土) 10:38 -

引用なし
パスワード
   ▼Gin_II さん:

ご連絡ありがとうございます。

>Currentdb.Execute "INSERT INTO テーブル名( ID, 日時 ) " _
>        & "VALUES(" & Me!IDテキストボックス名 _
>        & ", Now()) ", dbFailOnError

上記にて実行したところ、

実行時エラー'3421':
データ型の変換エラーが発生しました。と止まります。

これは、テーブル名を指定して「ID」と「日時」のフィールド名の
設定がおかしいのでしょうか?

大変素人質問で申し訳ありませんが、ご教示お願い致します。

【10787】Re:アクセス履歴をとりたい
発言  neptune  - 08/11/22(土) 11:58 -

引用なし
パスワード
   ▼ひで さん:
こんにちは
Gin_II さんではありませんが、
Gin_II さんのアドバイスを、ひで さんが修正しやすく書き直しました。
データ型など「自分の環境に合わせる」と書いている所を自分の環境に合わせて
下さい。

テストはしてないですが、多分それでいけると思います。(勘ですが。)
sub コマンドボタン_Click()
  Dim sID As String      'テキスト型を想定  :自分の環境に合わせる
  Dim dtmNow As Date     '日付型を想定    :自分の環境に合わせる
  Dim sSQL As String
  Dim tblName As String    'テーブル名
  
  sID = CStr(Me.テキスト0.Value)  '自分の環境に合わせる
  tblName = "テーブル名"      '自分の環境に合わせる
  dtmNow = Now()

  sSQL = "INSERT INTO " & tblName & "(ID, 日時) "
  sSQL = sSQL & "VALUES('" & sID & "', " & dtmNow & ";"
  
  CurrentDb.Execute sSQL
end sub
>これは、テーブル名を指定して「ID」と「日時」のフィールド名の
>設定がおかしいのでしょうか?
それに関するテーブル、フィールドに関する情報はご自身どこにも
書かれてないですよね。なので皆目判らないんですよ。
次回から質問する際には気を付けましょう。

【10788】Re:アクセス履歴をとりたい
発言  neptune  - 08/11/22(土) 11:59 -

引用なし
パスワード
   ▼ひで さん:
すみません、dbFailOnErrorを忘れていたので書いておいて下さい。

【10789】Re:アクセス履歴をとりたい
発言  ひで  - 08/11/22(土) 13:29 -

引用なし
パスワード
   ▼neptune さん:

>すみません、dbFailOnErrorを忘れていたので書いておいて下さい。

下記試してみましたが、エラーが出て止まります。

書き込むテーブル名:access
    フィールド1:「ID」 (テキスト型)
    フィールド2:「日時」(日付/時刻型)

Sub コマンド11_Click()
   
  Dim sID As String     
  Dim dtmNow As Date     
  Dim sSQL As String
  Dim tblName As String  
   
  sID = CStr(Me.txtID.Value)  
  tblName = "access"      
  dtmNow = Now()

  sSQL = "INSERT INTO " & tblName & "(ID, 日時) "
  sSQL = sSQL & "VALUES('" & sID & "', " & dtmNow & ";"
 
  CurrentDb.Execute sSQL, dbFailOnError
  
  End Sub

申し訳ございませんがご教示お願い致します。

【10790】Re:アクセス履歴をとりたい
回答  neptune  - 08/11/22(土) 16:17 -

引用なし
パスワード
   ▼ひで さん:

>下記試してみましたが、エラーが出て止まります。
エラー番号とエラー内容は書いてくれないと。

>書き込むテーブル名:access
>    フィールド1:「ID」 (テキスト型)
>    フィールド2:「日時」(日付/時刻型)
>
>Sub コマンド11_Click()
>   
>  Dim sID As String     
>  Dim dtmNow As Date     
>  Dim sSQL As String
>  Dim tblName As String  
>   
>  sID = CStr(Me.txtID.Value)  
>  tblName = "access"      
>  dtmNow = Now()
>
>  sSQL = "INSERT INTO " & tblName & "(ID, 日時) "
  sSQL = sSQL & "VALUES('" & sID & "', #" & dtmNow & "#;"
もしかして忘れ物。日付リテラル。

【10791】Re:アクセス履歴をとりたい
発言  ひで  - 08/11/22(土) 17:14 -

引用なし
パスワード
   ▼neptune さん:

>エラー番号とエラー内容は書いてくれないと。
大変申し訳ございません。
実行時エラー'3421':
データ型の変換エラーが発生しました。という内容で
デパックすると、
CurrentDb.Execute sSQL, dbFailOnErrorが呼び出されます。

>  sSQL = sSQL & "VALUES('" & sID & "', #" & dtmNow & "#;"
>もしかして忘れ物。日付リテラル。

上記も試して見ましたが同じ結果でした。

どうかよろしくお願い致します。

【10792】Re:アクセス履歴をとりたい
回答  neptune  - 08/11/22(土) 18:54 -

引用なし
パスワード
   ▼ひで さん:
ごめんなさい。
動作確認してなかったので、やはりまだ書き忘れがありました。

以下正常動作したものです。ご自分の環境に合わせて書き直して下さい。
検証XP SP3 + Access2K
Private Sub コマンド2_Click()
On Error GoTo Err_コマンド2_Click
  Dim sID As String      'テキスト型を想定  :自分の環境に合わせる
  Dim dtmNow As Date     '日付型を想定    :自分の環境に合わせる
  Dim sSQL As String
  Dim tblName As String    'テーブル名
  
  sID = CStr(Me.テキスト0.Value)  '自分の環境に合わせる
  tblName = "T_Test"    '自分の環境に合わせる
  dtmNow = Now()

  sSQL = "INSERT INTO " & tblName & "(fld5, fld4) "
  sSQL = sSQL & "VALUES('" & sID & "', #" & dtmNow & "#);"
                                '↑)忘れてました。
  Debug.Print sSQL
  CurrentDb.Execute sSQL
Exit_コマンド2_Click:
  Exit Sub

Err_コマンド2_Click:
  MsgBox Err.Description
  Resume Exit_コマンド2_Click
  
End Sub

【10794】Re:アクセス履歴をとりたい
お礼  ひで  - 08/11/23(日) 22:01 -

引用なし
パスワード
   ▼neptune さん:

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

出来ました!

色々お世話になりました。

644 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078197
(SS)C-BOARD v3.8 is Free