Access VBA質問箱 IV

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

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


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

【6110】インプットボックスがNULLの場合
質問  赤い小鳩  - 05/8/31(水) 13:18 -

引用なし
パスワード
   次のような場合インプットボックスがNULLの場合は
エラーになってしまいます。
"入力項目が不正です"のようにメッセージを表示したいのですが
どなたかご教示下さいませんか。


Private Sub コマンド1_Click()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim ipt As String
Dim AAA

Set cn = Application.CurrentProject.Connection
Set rs = New ADODB.Recordset
rs.Open "T_業者マスタ", cn, adOpenStatic, adLockReadOnly
rs.MoveFirst
ipt = InputBox("業者名検索:検索文字列を入力して下さい")
Do Until rs.EOF
rs.Find "業者名 Like *" & ipt & "*"
If rs.EOF Then
Exit Do
Else
AAA = AAA & rs!業者分類コード & " : " & rs!業者コード & " : " & rs!業者名 & " : " & Format(rs![データ作成日], "yymm") & ":" & rs!除 & Chr(13)
End If
rs.MoveNext
Loop
MsgBox AAA
rs.Close
cn.Close
End Sub
・ツリー全体表示

【6109】Re:テキストボックスについて
お礼  Seri  - 05/8/31(水) 11:26 -

引用なし
パスワード
   ▼こたつねこ さん:
>▼Seri さん:
>おはようございます。
>Gin_IIさん、横レス失礼します。
>
>>テキストボックスがNULLの場合にTabキーで他のテキストに移動をした時
>>入力規制でNULLを制限することができません。
>
>Tabキー等でテキストボックスを素通りしたときもNullをチェックしたい
>という事であれば
>
>テキストボックスのExitイベントとかLostFocusイベントででもチェック
>するというのはダメですか?

入力するテキストボックスの数が多い為なるべく避けたかったのですが
イベントでチェックするしかなさそうです。
ありがとうございました。
・ツリー全体表示

【6108】Re:テキストボックスについて
質問  Seri  - 05/8/31(水) 11:25 -

引用なし
パスワード
   ▼Gin_II さん:
>>テキストボックスがNULLの場合にTabキーで他のテキストに移動をした時
>>入力規制でNULLを制限することができません。
>Nullは、許可しないってことですよね?
>
>>いったん入力した文字を削除しテキストに何も入力されていない状態でTabキーで
>>移動した場合は入力規制ができました。
>
>Len(Nz([フィールド名],""))>0
>とかでは、どうでしょうか?

Gin_II さんのお答えを試してみたのですが
Tabキーでテキストボックスを素通りした場合は
入力規制できませんでした。
イベント等で規制するしかないでしょうか?
・ツリー全体表示

【6107】Re:テキストボックスについて
回答  こたつねこ  - 05/8/31(水) 10:13 -

引用なし
パスワード
   ▼Seri さん:
おはようございます。
Gin_IIさん、横レス失礼します。

>テキストボックスがNULLの場合にTabキーで他のテキストに移動をした時
>入力規制でNULLを制限することができません。

Tabキー等でテキストボックスを素通りしたときもNullをチェックしたい
という事であれば

テキストボックスのExitイベントとかLostFocusイベントででもチェック
するというのはダメですか?
・ツリー全体表示

【6106】Re:参照整合性にチェックをいれる
発言  小僧  - 05/8/31(水) 10:04 -

引用なし
パスワード
   ▼tasukete さん:
おはようございます。

>VBAでリレーションを組む時に"参照整合性にチェックを入れる。"と同じ処理は
>どうやって記述すればいいのでしょうか?


参照整合性自体を殆ど使わないので経験がないのですが、ご参考になれば。

http://www.microsoft.com/japan/msdn/data/techmat/ado/dao2ado_5.asp
・ツリー全体表示

【6105】Re:テーブルの検索方法
回答  小僧  - 05/8/31(水) 9:57 -

引用なし
パスワード
   ▼masashi さん:
おはようございます。

>問い合わせ結果は、
>Model  A1   A2   A3   ・・・
>1    10   20   30
>2    15   25   35
>
>よろしくお願いします。

クエリのみで解決するのであれば、

PARAMETERS [値を入力] Value;
SELECT T_Temp.Model,
    T_Temp.A1,
    T_Temp.A2,
    T_Temp.A3,
    T_Temp.A4,
    T_Temp.A5
FROM T_Temp
WHERE T_Temp.A1>[値を入力]
    Or T_Temp.A2>[値を入力]
    Or T_Temp.A3>[値を入力]
    Or T_Temp.A4>[値を入力]
    Or T_Temp.A5>[値を入力];

こんな感じでしょうか。
・ツリー全体表示

【6104】Re:テキストボックスについて
回答  Gin_II  - 05/8/31(水) 8:00 -

引用なし
パスワード
   >テキストボックスがNULLの場合にTabキーで他のテキストに移動をした時
>入力規制でNULLを制限することができません。
Nullは、許可しないってことですよね?

>いったん入力した文字を削除しテキストに何も入力されていない状態でTabキーで
>移動した場合は入力規制ができました。

Len(Nz([フィールド名],""))>0
とかでは、どうでしょうか?
・ツリー全体表示

【6103】Re:テーブルの検索方法
質問  masashi  - 05/8/30(火) 20:12 -

引用なし
パスワード
   ▼小僧 さん:
>▼masashi さん:
>おはようございます。
>
>>パラメータに値を入力、
>>テーブルのTopレコードのA1→A26をチェックして、
>>その中に、一つのフィールドが値を超えるならば、検索の対象になる。
>>ずっとテーブルAの最後のレコードまで。
>>この複雑な検索って、どうしたら、できるのでしょうか?
>>ご伝授ください。
>
>検索の対象になったものを実際にどうされたいのでしょうか?
>
>例えば…
>
>No A1  A2  A3…
>1 10  20  30
>2 15  25  35
>
>パラメータを「23」とした場合、
>>パラメータに値を入力、
>>テーブルのTopレコードのA1→A26をチェックして、
>>その中に、一つのフィールドが値を超えるならば、検索の対象になる。
>>ずっとテーブルAの最後のレコードまで。
>>この複雑な検索って、どうしたら、できるのでしょうか?
>>ご伝授ください。
>
>検索の対象になったものを実際にどうされたいのでしょうか?
>
>例えば…
>
>No A1  A2  A3…
>1 10  20  30   →表示する
>2 15  25  35   →表示する 
>3 20  22  19   →表示しない
 
>パラメータを「23」とした場合、
レコードのフィールドの中に一つのデータが「23」を超えたら、そのレコード
を表示させたい(クエリ)。

問い合わせ結果は、
Model  A1   A2   A3   ・・・
1    10   20   30
2    15   25   35

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

【6102】テキストボックスについて
質問  Seri  - 05/8/30(火) 16:07 -

引用なし
パスワード
   帳票フォームを使って入力を行いたいのですが
テキストボックスがNULLの場合にTabキーで他のテキストに移動をした時
入力規制でNULLを制限することができません。
いったん入力した文字を削除しテキストに何も入力されていない状態でTabキーで
移動した場合は入力規制ができました。

「NULL、空文字」等で調べてみたのですがやり方がわかりません。
何かいい方法はありますでしょうか?
よろしくお願いします。


OS:WINDOWS2000  Access2003を使用しています。
・ツリー全体表示

【6101】参照整合性にチェックをいれる
質問  tasukete  - 05/8/30(火) 16:02 -

引用なし
パスワード
   VBAでリレーションを組む時に"参照整合性にチェックを入れる。"と同じ処理は
どうやって記述すればいいのでしょうか?
・ツリー全体表示

【6100】Re:日付/時刻型について
お礼  Seri  - 05/8/30(火) 15:35 -

引用なし
パスワード
   ▼クロ さん:
>▼Seri さん:
>見た目を「yyyy/mm」形式にしてもフィールドの設定が「日付/時刻型」だと
>月初(1日)を表示します。
>
>追加先テーブル(T_設備稼働率_集計)の年月フィールドをテキスト型にするか
>追加先テーブル(T_設備稼働率_集計)を使用したフォームで「年月」コントロールの
>書式を「yyyy/mm」にしてあげればいいのでは?

追加先テーブル(T_設備稼働率_集計)のコントロール書式を「yyyy/mm」に
設定してしまうと月別以外の集計で「yyyy/mm/dd」で表示させることが
出来ないので困っています。

フィールドをテキスト型にして実行してみます。
いろいろと協力してくださってありがとうございます。
・ツリー全体表示

【6099】Re:日付/時刻型について
回答  クロ  - 05/8/30(火) 15:16 -

引用なし
パスワード
   ▼Seri さん:
見た目を「yyyy/mm」形式にしてもフィールドの設定が「日付/時刻型」だと
月初(1日)を表示します。

追加先テーブル(T_設備稼働率_集計)の年月フィールドをテキスト型にするか
追加先テーブル(T_設備稼働率_集計)を使用したフォームで「年月」コントロールの
書式を「yyyy/mm」にしてあげればいいのでは?
・ツリー全体表示

【6098】Re:日付/時刻型について
発言  Seri  - 05/8/30(火) 15:02 -

引用なし
パスワード
   ▼クロ さん:
>▼Seri さん:
>>****************集計結果**************
>> 年月     商品    数量の合計
>>2005/05    あああ     6000   
>>**************************************
>>       ↓ 他のテーブル集計結果を更新
>>
>>****************更新後****************
>> 年月       商品    数量の合計
>>2005/05/01    あああ     6000   
>>**************************************
>
>「他のテーブル集計結果を更新」って何でしょうか?

クエリで集計したテーブルを帳票フォームで連結させるとエラーがでてしまうので
クエリで集計したテーブルとは別のテーブルを帳票フォームに連結させ
クエリで集計したテーブルを別のテーブルに追加し集計データを表示させています。

クエリで作成したテーブル:T_設備稼働率データ
フォームと連結しているテーブル:T_設備稼働率_集計

strSQL = "INSERT INTO T_設備稼働率_集計 SELECT * FROM T_設備稼働率データDoCmd.RunSQL (strSQL)
・ツリー全体表示

【6097】Re:日付/時刻型について
発言  クロ  - 05/8/30(火) 14:48 -

引用なし
パスワード
   ▼Seri さん:
>****************集計結果**************
> 年月     商品    数量の合計
>2005/05    あああ     6000   
>**************************************
>       ↓ 他のテーブル集計結果を更新
>
>****************更新後****************
> 年月       商品    数量の合計
>2005/05/01    あああ     6000   
>**************************************

「他のテーブル集計結果を更新」って何でしょうか?
・ツリー全体表示

【6096】Re:日付/時刻型について
質問  Seri  - 05/8/30(火) 14:39 -

引用なし
パスワード
   ▼クロ さん:
>こういうことでしょうか?
>SELECT Format([日付],"yyyy/mm") AS 年月, 商品, Sum(数量) AS 数量の合計
>FROM テーブル名
>GROUP BY Format([日付],"yyyy/mm"), 商品;

説明が下手でした。お手数をおかけしてすいません。
クロさんが書いてくださったSQLで私も集計しているのですが、
集計結果を他のテーブルに更新したときに日付のデータが
「yyyy/mm」から「yyyy/mm/dd」に勝手に変換されてしまいます。

*****************集計前*****************
  日付      商品    数量の合計
2005/05/01    あああ     5000
2005/05/03    あああ     5000
****************************************

****************集計結果**************
 年月     商品    数量の合計
2005/05    あああ     6000   
**************************************
       ↓ 他のテーブル集計結果を更新

****************更新後****************
 年月       商品    数量の合計
2005/05/01    あああ     6000   
**************************************
・ツリー全体表示

【6095】Re:日付/時刻型について
回答  クロ  - 05/8/30(火) 12:29 -

引用なし
パスワード
   こういうことでしょうか?
SELECT Format([日付],"yyyy/mm") AS 年月, 商品, Sum(数量) AS 数量の合計
FROM テーブル名
GROUP BY Format([日付],"yyyy/mm"), 商品;
・ツリー全体表示

【6094】Re:日付/時刻型について
発言  Seri  - 05/8/30(火) 11:59 -

引用なし
パスワード
   わかりにくくて申し訳ありません。

以下のテーブルデータがあり集計を行う際
-----------------------------------
  日付     商品     数量
2005/05/06   あああ     5000
2005/05/07   あああ     1000
2005/05/09   いいい     5000
-----------------------------------

【詳細集計結果】yyyy/mm/ddで表示したい
  日付     商品     数量
2005/05/06   あああ     5000
2005/05/07   あああ     1000
2005/05/09   いいい     5000


【月別集計結果】yyyy/mmで表示したい
  日付     商品     数量
 2005/05   あああ     6000
 2005/05   いいい     5000

のように集計の内容で日付表示を変更させたいのですが・・・。
・ツリー全体表示

【6093】Re:日付/時刻型について
回答  クロ  - 05/8/30(火) 11:48 -

引用なし
パスワード
   >早速のご意見ありがとうございます。
>説明不足で申し訳ありません。
>集計結果によって「yyyy/mm/dd」で表示したい場合と
>「yyyy/mm]で表示したい場合があるのですが・・・・

チョット意味が分かりません。
事例を挙げていただけますか?
・ツリー全体表示

【6092】Re:日付/時刻型について
発言  Seri  - 05/8/30(火) 10:51 -

引用なし
パスワード
   ▼クロ さん:
>フォームの対象コントロールのプロパティの「書式」で
>設定すればいいのでは?

早速のご意見ありがとうございます。
説明不足で申し訳ありません。
集計結果によって「yyyy/mm/dd」で表示したい場合と
「yyyy/mm]で表示したい場合があるのですが・・・・
・ツリー全体表示

【6091】Re:日付/時刻型について
回答  クロ  - 05/8/30(火) 10:45 -

引用なし
パスワード
   フォームの対象コントロールのプロパティの「書式」で
設定すればいいのでは?
・ツリー全体表示

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