Access VBA質問箱 IV

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

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


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

【10867】Re:管理権限のログイン方法
発言  ひで  - 08/12/13(土) 16:00 -

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

ありがとうございました。出来るようになりました。

ちなみに、ログイン画面でID,パスワードを入力した上で
次画面へ行く方法は出来ましたが、ログイン画面ではなくある画面を
開こうとした時にこの管理権限の有る無しで開けないようにすること
などは不可能でしょうか。

欲張りな質問ですがよろしくお願い致します。
・ツリー全体表示

【10866】Re:コード進行の時間調整
お礼  初心者です  - 08/12/13(土) 0:39 -

引用なし
パスワード
   ▼超初心者 さん:

ありがとう御座います。
無事解決しました!うまくいきました。
お見事です!初心者じゃあないですね!!?

ちなみに
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=10845;id=access
は私ではありません。以前偶然質問を拝見しましたが
私には少し意味が分からず回答できませんでした。。

普段は「カダワン」で質問している者です!
お礼はほぼ必ずしているつもりです。
今回の質問は余りにも初級の内容だと思い
初心者ですと名乗ったら、かぶってしまったようです。。
BASICからのおいぼれなので、昔と勝手が違って
しまいました。どうもありがとうございました。
また、宜しくお願いいたします!
・ツリー全体表示

【10865】Re:親フォームの中の子フォームの指定方法
お礼  magmag  - 08/12/12(金) 20:38 -

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

Gin_IIさん:
 できました!(^^v
 
 どうもありがとうございました。 m(_ _)m
・ツリー全体表示

【10864】Re:親フォームの中の子フォームの指定方法
発言  Gin_II  - 08/12/12(金) 16:07 -

引用なし
パスワード
   >このような親フォームのイベントで、フォームA,B,C内のテキストに値を
>入れたいのですが、どういった記述をすればいいのでしょうか?

Me!子フォームAのコントロール名.Form!コントロール名
Me!子フォームBのコントロール名.Form!コントロール名
Me!子フォームBのコントロール名.Form!子フォームCのコントロール名.Form!コントロール名

でしょうか。
・ツリー全体表示

【10863】親フォームの中の子フォームの指定方法
質問  magmag  - 08/12/12(金) 13:13 -

引用なし
パスワード
   親フォームのヘッダー部に子フォームA、詳細部に子フォームBがあります。
さらに子フォームBはサブフォームCを持っています。

 親フォーム-----子フォームA
      -----子フォームB-----サブフォームC

このような親フォームのイベントで、フォームA,B,C内のテキストに値を
入れたいのですが、どういった記述をすればいいのでしょうか?

単純なサブフォームでは
 Forms!親フォーム![親フォーム サブフォーム1].Form!名前

のような感じになると思いますが、同じように記述してもフォームが存在しないと
いうエラーになります。
・ツリー全体表示

【10862】Re:リストボックスについて
お礼  D_M  - 08/12/12(金) 12:43 -

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

こんにちわ。

neptuneさんの、ご教授によりなんとな〜く表示されなかった原因がわかった気がします。
マクロで再クエリしてたころの考え方を基本にしていたので、
再クエリ〜再表示の手順にすればいいのかと思っていました。
(再クエリで表示されなかったため。)

>>Private Sub テキスト0_AfterUpdate()
>>Me!テキスト0.Requery
>>DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
>↑これが何やってるか知りませんが、

コマンドボタンをウィザードでつくりコードを見て、
この部分で再表示してる感じがしたので、記述してみました。

>Me!リスト2.Requery
>>End Sub
>で、ないと
>>Private Sub リスト2_AfterUpdate()
>に書いていたのでは、循環呼び出し?でリスト2が変更する度に呼び出される
>ので、宜しくないです。


更新されるたびに・・・・
記述しながら自分もそう思いました。

原因だったと思われるのは、再クエリのマクロを使っていたとき、
個別に再クエリしていて、
>>Private Sub テキスト0_AfterUpdate()
の中でリストの再クエリができていなかったのが、原因だったと思います。
違うかもしれないですけど。。。。

今後はこれをベースにもう少し使い勝手良く改良して行きますので、
行き詰ったらまたきます。

いろいろありがとうございました。
今後ともよろしくお願いいたします。
・ツリー全体表示

【10861】Re:コード進行の時間調整
発言  超初心者  - 08/12/12(金) 10:34 -

引用なし
パスワード
   ▼初心者です さん:
一定時間処理を中断(?)するモジュールです。

Sub subPAUSE(Optional ByVal myPauseTM As Single = 0.5)
'  myPauseTM 中断時間を設定(秒)
  Dim myStartTM As Single
  
  myStartTM = Timer
  Do
    DoEvents        '他のプロセスに制御を渡します。
  Loop While Timer < myStartTM + myPauseTM
End Sub


http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=10845;id=access
こちらは、質問者さんのスレでしょうか?

そうであれば、質問の投げっぱなしではなく、返信してあげて下さい。
別人であれば結構です。失礼しました。
・ツリー全体表示

【10860】コード進行の時間調整
質問  初心者です  - 08/12/12(金) 0:19 -

引用なし
パスワード
   初心者の質問でスミマセン。。
VBAのコード進行中に時間を稼ぎたいときには
どのようにすればよいのでしょうか?
3秒、2秒、1秒等間隔をつけて、コードを
進行したいのですが。。

昔のPCでベーシックなどだと、For〜NEXTで
数万も空数えさせれば何秒か稼げたのですが
今では一瞬で数え終わるか、でかい数値だと
オーバーフローとなってしまいます。
コツを教えてください。
宜しくお願いします。
・ツリー全体表示

【10859】Re:リストボックスについて
発言  neptune  - 08/12/11(木) 22:08 -

引用なし
パスワード
   ▼D_M さん:
もう見ないかな??

>Private Sub テキスト0_AfterUpdate()
>Me!テキスト0.Requery
>DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
↑これが何やってるか知りませんが、
Me!リスト2.Requery
>End Sub
で、ないと
>Private Sub リスト2_AfterUpdate()
に書いていたのでは、循環呼び出し?でリスト2が変更する度に呼び出される
ので、宜しくないです。
・ツリー全体表示

【10858】Re:リストボックスについて
お礼  D_M  - 08/12/11(木) 17:53 -

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

こんばんわ。
neptuneさんの指摘通り、再描画ではなく、再表示でした。

一応、教えていただき思案してみた結果、
下記のコードでリアルタイムに動くことができました。


Private Sub テキスト0_AfterUpdate()
Me!テキスト0.Requery
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
End Sub

Private Sub リスト2_AfterUpdate()
Me!リスト2.Requery
End Sub

素人ながら書いてみたので、見苦しいとは思いますが、、、

ご教授ありがとうございました。
また、思い悩んだとききますので、よろしくお願いいたします。
・ツリー全体表示

【10857】Re:管理権限のログイン方法
回答  Gin_II  - 08/12/11(木) 17:05 -

引用なし
パスワード
   > Dim varEnterPass As Variant
Dim blnEnterAuthorization As Boolean '追加


>   If Me.txtPassWord = varEnterPass Then
'修正
  If Me.txtPassWord = varEnterPass And blnEnterAuthorization Then


>   varEnterPass = DLookup("PassWord", "tbl_sample", _
>         "[ID]='" & Me.txtID & "'") ' --- A

' 追加
blnEnterAuthorization = IIf(Nz(DLookup("管理権限", "tbl_sample", _
      "[ID]='" & Me.txtID & "'"), "") = "有", True, False)


> テーブル名:ACCESS
>   varEnterPass = DLookup("PassWord", "tbl_sample", _

テーブル名が違っているようですが、適宜、そちらの状況にあわせて
変更してください。
・ツリー全体表示

【10856】Re:リストボックスについて
発言  neptune  - 08/12/11(木) 15:02 -

引用なし
パスワード
   ▼D_M さん:
追記
もし、VBAでコード書いているならそれをUPしてくれた方が
あっさり解決するような気がします。
・ツリー全体表示

【10855】Re:リストボックスについて
発言  neptune  - 08/12/11(木) 14:55 -

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

>リストボックスについては、
>集合タイプ テーブル/クエリ
>集合ソース Q_Item
>更新後処理に上記の再クエリマクロを使用。
ならこれで良いと思うんですけどね。。。。

>フォームの再描画みたいなものがコマンドボタンウィザードに有ったので、
>これを使うとリストボックスには表示されるようになったのですが、
>タイムリーに表示はできない常態です。

Form オブジェクトのRepaint メソッド
////////////以下引用/////////////////////
Repaint メソッドの機能は、Refresh メソッドや [レコード] メニューの
[再表示] の機能とは異なります。後者はいずれも、フォームやデータシートに
含まれるレコードの変更を画面に反映します。Repaint メソッドは、他のタスク
の実行のために再描画されていない画面を更新するだけです。
//////////////////////////////////////////
なんですけどね。。。

でも、それで表示されるなら、Form オブジェクトのRepaint メソッド
を実行すれば問題解決じゃないですか?でもVBAを使ってないなら
タイミングが・・・思い付かない。。。

>更新後処理に上記の再クエリマクロを使用。
ってのが気になります。
リストボックス.Requery
と直に書いてみては?
で、関数(Function)にしておけば、マクロとして扱えたんじゃないかな???

未検証でごめんなさい。
・ツリー全体表示

【10854】Re:管理権限のログイン方法
発言  ひで  - 08/12/11(木) 14:33 -

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

お世話になります。失礼いたしました。

>それをどのようにしているのか、VBAならばコードを、マクロなら内容を
>記載してください。

コードを下記します。
以前ここでアクセス記録の取り方を教えて頂いた内容が入っています。

Option Compare Database
Option Explicit

Dim varEnterPass As Variant
------------------------------------------------------
Private Sub コマンド11_Click()

On Error GoTo Err_コマンド11_Click
  Dim sID As String     
  Dim dtmNow As Date     
  Dim sSQL As String
  Dim tblName As String   
  Dim stDocName As String
  Dim stLinkCriteria As String
  
   
  sID = CStr(Me.txtID.Value)  
  tblName = "access"    
  dtmNow = Now()

  sSQL = "INSERT INTO " & tblName & "(ID, 日時) "
  sSQL = sSQL & "VALUES('" & sID & "', #" & dtmNow & "#);"
                                
  Debug.Print sSQL
  CurrentDb.Execute sSQL

  
  If Me.txtPassWord = varEnterPass Then
  DoCmd.Close
  
  stDocName = "総合メニュー"
  DoCmd.OpenForm stDocName, , , stLinkCriteria
  'DoCmd.Close , "frm_sample"
   
  Else
    MsgBox "パスワード相違です", vbCritical
    Me.txtID.DefaultValue = ""
    Me.txtPassWord.DefaultValue = ""
  End If
  
Exit_コマンド11_Click:
  Exit Sub

Err_コマンド11_Click:
  MsgBox Err.Description
  Resume Exit_コマンド11_Click

End Sub

--------------------------------------------------------
Private Sub txtID_AfterUpdate()

  varEnterPass = DLookup("PassWord", "tbl_sample", _
        "[ID]='" & Me.txtID & "'") ' --- A
    
End Sub
--------------------------------------------------------

以上よろしくお願い致します。
・ツリー全体表示

【10853】Re:リストボックスについて
お礼  D_M  - 08/12/11(木) 12:47 -

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

レスありがとうございます。

>どうやって、ListBoxにデータを抽出、表示、連結、非連結などの情報が
>欠落しているので私にわかるのはこんな所です。

確かに情報が欠落していました。申し訳ございません。
使用しているクエリは、「Q_Item」としています。
中身は、品名CD・品番・品名・単価となっています。
品名抽出条件に、Froms!フォーム!テキスト0と記述しています。

フォームはレコードソースにQ_Itemとしています。
テキスト0(検索品名を入力させるための)は非連結で更新後処理にマクロ(再クエリ)を設定しています。

リストボックスについては、
集合タイプ テーブル/クエリ
集合ソース Q_Item
更新後処理に上記の再クエリマクロを使用。

と、言う感じになっています。
フォームの再描画みたいなものがコマンドボタンウィザードに有ったので、
これを使うとリストボックスには表示されるようになったのですが、
タイムリーに表示はできない常態です。

また、
>カウントしているってのがよく分かりませんが、
クエリの抽出条件があっているか、きちんと動いているか確認したかったため、
新たにテキストボックスを作ってDcountで件数をカウントしてみたんです。

これから再度チャレンジしてみますので、後ほど報告させていただきます。
何かお気づきの点がございましたら、レスいただけたら幸いです。
・ツリー全体表示

【10852】Re:毎回単価が変わる在庫管理について
発言  Gin_II  - 08/12/11(木) 10:13 -

引用なし
パスワード
   > 同じ製品で毎回単価が変わるのですが、その変わる単価ごとに在庫管理をしたいのですが、

えーと・・・
どのようなところを悩まれているのでしょうか?

製品の入荷・出荷のデータを登録するテーブルに、単価フィールドを含めて
おけばいいだけのような気がしますけど・・
・ツリー全体表示

【10851】Re:管理権限のログイン方法
回答  Gin_II  - 08/12/11(木) 10:11 -

引用なし
パスワード
   > 現状は、IDとパスワードが合致すれば次の画面へ進むようにしておりますが、

それをどのようにしているのか、VBAならばコードを、マクロなら内容を
記載してください。


> 管理権限「有」とした人だけ次へ進める設定としたいのです。

ID・パスワードが一致し、管理権限「有」の場合に次の画面に進めるようにします。

との回答になりますよ ^^;

と、今回のご質問とは関係ありませんが、半角カナは投稿する際にも、
テーブルのフィールド名などにも利用しないほうがいいですよ。
・ツリー全体表示

【10850】管理権限のログイン方法
質問  ひで  - 08/12/11(木) 10:02 -

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

現在、ログイン画面を作成しIDとパスワードにより合致した場合のみ次の画面に進めるようにしておりますが、管理権限をつけた人のみ進める設定を作りたいと思うのですが、やり方をご教授頂ければ幸いです。

現在のやり方

テーブル名:ACCESS
フィールド1=ID
フィールド2=パスワード
フィールド3=氏名
フィールド4=管理権限(有無)

現状は、IDとパスワードが合致すれば次の画面へ進むようにしておりますが、
管理権限「有」とした人だけ次へ進める設定としたいのです。

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

【10849】Re:リストボックスについて
発言  neptune  - 08/12/10(水) 21:22 -

引用なし
パスワード
   ▼D_M さん:
こんにちは
すみません。最近非連結ばかり使ってAccessの機能は
で真剣にやってないのでかなり忘れてますので
間違っているかもしれませんが、取りあえず書いてみます。

>現在は、テキストボックスに品名を入力すると、
>名前でカウントはしているのですが、リストボックスに反映されないので、
>何か設定の間違いなのか、考えられることをご教授していただけたら
>幸いだと思っています。
カウントしているってのがよく分かりませんが、
>リストボックスに反映されない
のは、検索とか、filterとかかけている筈ですが、その結果を
ListBoxに表示するのには恐らくRequery(再クエリ)しないと駄目なのでは?

非連結なら
クエリでデータを取得してデータをListBoxに追加するとか、
値集合ソースにSQL書いてやってRequeryするとかだったと思うんですが。

どうやって、ListBoxにデータを抽出、表示、連結、非連結などの情報が
欠落しているので私にわかるのはこんな所です。
・ツリー全体表示

【10848】リストボックスについて
質問  D_M  - 08/12/10(水) 20:33 -

引用なし
パスワード
   ACCESSをやり始めてまだ間もないですが、
ややイメージに近いもの(見積書作成)ができてきたのですが、
現在、検索と代入でいろいろ調べたのですが、
パニック状態になっています。

どのような処理を行いたいかと言うと、
検索フォーム上でテキストボックスに品名を入れると、
(形状やサイズが違うため同名のものを検索したいのです。)
リストボックスに反映させる処理をし、
品名を指定後見積フォームに代入と言う形にしたいと思っています。

現在は、テキストボックスに品名を入力すると、
名前でカウントはしているのですが、リストボックスに反映されないので、
何か設定の間違いなのか、考えられることをご教授していただけたら
幸いだと思っています。
どなたか、お力をお貸しください。
・ツリー全体表示

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