Access VBA質問箱 IV

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

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


124 / 500 ページ ←次へ | 前へ→

【10806】Re:ログイン画面について
質問    - 08/11/27(木) 17:17 -

引用なし
パスワード
   少し整理したら、新しいレコードでフォームが開き、テーブルに更新者と更新日時が入力されていました、が、テーブルには確かに1件のレコードに対して入力されてはいるのですが、その1件のみで、ずっとログオンしたような状態になりません。新しいレコードを入力していくたびに更新者・更新日が自動入力されていくにはどうしたらいいでしょうか?
・ツリー全体表示

【10805】Re:ログイン画面について
発言  neptune  - 08/11/27(木) 15:58 -

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

回答ではありませんが。。。。
なんか中途半端にどこかで見たことあるような・・・・

先ず、on error ステートメントについてもHelpをご覧になる事が先決かと
思います。今の書き方はVBのお作法を無視してますので。

次にこのソースがどんな流れで、どういう作業をしているかを理解した方が
良いですよ。
・ツリー全体表示

【10804】Re:時間集計について
発言  neptune  - 08/11/27(木) 15:47 -

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

こんにちは

案だけで、しかももっと賢い方法がありそうですが、思い付いたものを。

開始年月日、開始時間、終了年月日、終了時間
の各フィールドが日付型というのが前提で。

(開始年月日 + 開始時間)の中に各月の始まりの日の0:01が入っているか
(終了年月日 + 終了時間)の中に各月の終わりの日の23:59が入っているか
を判断してはどうでしょう?

これがTrueなら、開始、終了若しくは両方がまたがっていると判断できますよね。
このクエリを作成しておき、そのクエリを元に更に、集計していくとか?

こういうことではないんですかね???
・ツリー全体表示

【10803】Re:ログイン画面について
発言    - 08/11/27(木) 15:03 -

引用なし
パスワード
   前文訂正します。
-------------------------------------
Private Sub 入力cmd_Click()
On Error GoTo Err_入力cmd_Click
  
  Dim sID As String     
  Dim dtmNow As Date    
  Dim sSQL As String
  Dim tblName As String    
  sID = CStr(Me.更新者.Value)  
  tblName = "sheet1"    
  dtmNow = Now()

  sSQL = "INSERT INTO " & tblName & "(更新者, 更新日) "
  sSQL = sSQL & "VALUES('" & sID & "', #" & dtmNow & "#);"
                                
  Debug.Print sSQL
  CurrentDb.Execute sSQL
Exit_入力cmd_Click:
  Exit Sub


  Dim stDocName As String
  Dim stLinkCriteria As String


  stDocName = ChrW(83) & ChrW(104) & ChrW(101) & ChrW(101) & ChrW(116) & ChrW(49) & ChrW(95) & ChrW(12463) & ChrW(12456) & ChrW(12522)
  DoCmd.OpenForm stDocName, , , stLinkCriteria
  DoCmd.GoToRecord , , acNewRec
  
  On Error GoTo e
  Dim fn As String
  fn = テキスト5
  DoCmd.Close acForm, fn
e:
  
  
  Exit Sub

Err_入力cmd_Click:
  MsgBox Err.Description
  Resume Exit_入力cmd_Click
  
End Sub
---------------------------------
・ツリー全体表示

【10802】ログイン画面について
質問    - 08/11/27(木) 14:59 -

引用なし
パスワード
   過去ログを拝見しながら、VBAを拝借して以下のように書きました。

テーブル名:sheet1
入力フォーム名:F入力画面
テキストボックス名:txt更新者、txt更新日
ボタン名:入力cmd
開きたいフォーム:F出力画面
入力させたいテキストボックス名:更新日、更新者

----------------------------------------------
Private Sub 入力cmd_Click()
On Error GoTo Err_入力cmd_Click
  
  Dim sID As String   
  Dim dtmNow As Date    
  Dim sSQL As String
  Dim tblName As String  
 
  sID = CStr(Me.更新者.Value) 
  tblName = "sheet1"    
  dtmNow = Now()

  sSQL = "INSERT INTO " & tblName & "(更新者, 更新日) "
  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


  Dim stDocName As String
  Dim stLinkCriteria As String


  stDocName = ChrW(83) & ChrW(104) & ChrW(101) & ChrW(101) & ChrW(116) & ChrW(49) & ChrW(95) & ChrW(12463) & ChrW(12456) & ChrW(12522)
  DoCmd.OpenForm stDocName, , , stLinkCriteria
  DoCmd.GoToRecord , , acNewRec
  
  On Error GoTo e
  Dim fn As String
  fn = テキスト5
  DoCmd.Close acForm, fn
e:
  
  
Exit_入力cmd_Click:
  Exit Sub

Err_入力cmd_Click:
  MsgBox Err.Description
  Resume Exit_入力cmd_Click
  
End Sub
-------------------------------------------
させたいこと
1)F入力画面の「更新者」と「更新日」を入力して入力cmdを押すと、F出力画面の更新者、更新日が自動的に入力された状態で開く。
2)新規入力画面を開く。
3)F出力画面を開くとF入力画面が閉じる。

…欲張りすぎでしょうか?
もし可能ならどなたかご教授ください。
PS:現状ではエラーも出ず、動きません。(=_=)
・ツリー全体表示

【10801】時間集計について
質問  まつ  - 08/11/27(木) 9:45 -

引用なし
パスワード
   時間の集計についてお聞きしたい事があります。
現在設備の稼動管理をアクセス2003を使って作ってますが。

一つのデータはロット毎に集計しています。
1ロットの[開始年月日][開始時間]、[終了年月日][終了時間]を入力してもらい
datediff("n",[開始年月日]+[開始時間],[終了年月日]+[終了時間])
で1ロットの生産時間を”分”で算出してます。

ここまでは良いのですが、これを月間での生産時間を算出しなくてはならなくなり
クエリで[開始年月日]の抽出条件を
Like "*/" & [Forms]![メニュー画面]![抽出月] & "/*"
とし、フォームのメニュー画面の抽出月のコンボボックスから1〜12の
どれかを選択するとその月のデータを抽出し、データで求めた分を合計
するようにしています。

しかしそのデータの中には、月をまたいで生産しているデータもあり
純粋にその月に生産した時間の算出はできません。
今思っているのが、[開始年月日]と[終了年月日]の月が違っている場合は
[終了年月日]の月を[開始年月日]の月の最終日にし、なお且つ[終了時間]を
23:59にしてやれば、算出出来るのではないかな?と考えています。

更に、その逆で2月分を集計するとして、1月30日〜2月2日まで生産した
データがある場合にもそのデータを月の境目で分割する必要があり
どうやったらいいのか分かりません。

アドバイスあればよろしくお願いします。
・ツリー全体表示

【10800】別フォームから別フォーム内のサブフォームのレコード...
質問  B003  - 08/11/26(水) 21:24 -

引用なし
パスワード
   質問させて頂きます。

「親A」フォーム内に「子A」サブフォームがあります。
「親B」フォームから「子A」サブフォームのレコードを移動したいのですが、

  Form_親A.子A.SetFocus
  DoCmd.GoToRecord , Forms![親A]![子A], acNext

「親B」フォームで上記のコードを実行すると、

「指定した式は、いづれかの因数とデータ型が対応していません。」

と、エラーコードが出てしまいます。

いろいろ試しているのですが上手くいきません。
どちら様かご教授お願いします。
・ツリー全体表示

【10799】Re:他のデーターベースを開く
お礼  ake  - 08/11/26(水) 7:31 -

引用なし
パスワード
   Gin_II さん
ありがとうございます。
早速、確認してみます。
・ツリー全体表示

【10798】Re:他のデーターベースを開く
回答  Gin_II  - 08/11/25(火) 15:54 -

引用なし
パスワード
   OpenCurrentDatabase メソッドを使えば、別のmdbファイルを操作することが
できます。

一度、ヘルプ等で確認してください。

ちなみに、単に開くだけであれば、コマンドボタンの

ハイパーリンクアドレス
ハイパーリンクサブアドレス

を利用すればいいですね。
・ツリー全体表示

【10797】他のデーターベースを開く
質問  ake  - 08/11/25(火) 14:09 -

引用なし
パスワード
   「A」と言うデーターベースがあります。
そのデーターベースのファームに「コマンドボタン起動」があります。
そのコマンドボタンを押すと「B」と言う他のデーターベースの「フォーム1」を
最大化で開くようにして、「A」と言うデーターベースを閉じるようにしたいのです。
また、逆に「B」のデーターベースのフォームの「コマンドボタン閉じる」をクリックすると
「B]のデーターベースが閉じて「A」のデーターベースの「フォーム2」を最大化して開くようにしたいのです。
よろしくお願いいたします。
・ツリー全体表示

【10796】Re:セル内の文字数設定について
発言  neptune  - 08/11/24(月) 21:54 -

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


>複数のセルがあって、そのセル内に文字を入力したいのですが
すみません。Accessのセルって何のことですか?
そういう概念はないと思いますが?(多分?)

>ある所まで入力するとまだセルの余白部分はあるのですが、
>「文字数オーバーです。文字が切り詰められました」との
>メッセージが出てそれ以上の文字入力が出来ません。
正確なメッセージと、エラー番号を書いた方が的確なアドバイスを
いただけます。

>セル内での文字数設定を変えればいいと思うのですが、その方法が
>わかりません。
Accessで文字数設定といえばテーブル設計の時のデータ型と、
フィールドサイズぐらいしか思い付きません。
・ツリー全体表示

【10795】セル内の文字数設定について
質問  J.J  - 08/11/24(月) 20:06 -

引用なし
パスワード
   質問です、よろしくお願いします。

複数のセルがあって、そのセル内に文字を入力したいのですが
ある所まで入力するとまだセルの余白部分はあるのですが、
「文字数オーバーです。文字が切り詰められました」との
メッセージが出てそれ以上の文字入力が出来ません。

セル内での文字数設定を変えればいいと思うのですが、その方法が
わかりません。
どなたかご存知のかた、アドバイスよろしくお願い致します。
・ツリー全体表示

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

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

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

出来ました!

色々お世話になりました。
・ツリー全体表示

【10793】Re:データの並べ替えについて
お礼  夜勤担当  - 08/11/22(土) 22:29 -

引用なし
パスワード
   こんばんは
 ヒントをいただき、やってみました。
 問題解決!
・ツリー全体表示

【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
・ツリー全体表示

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

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

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

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

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

どうかよろしくお願い致します。
・ツリー全体表示

【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 & "#;"
もしかして忘れ物。日付リテラル。
・ツリー全体表示

【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

申し訳ございませんがご教示お願い致します。
・ツリー全体表示

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

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

【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」と「日時」のフィールド名の
>設定がおかしいのでしょうか?
それに関するテーブル、フィールドに関する情報はご自身どこにも
書かれてないですよね。なので皆目判らないんですよ。
次回から質問する際には気を付けましょう。
・ツリー全体表示

124 / 500 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
1082859
(SS)C-BOARD v3.8 is Free