Access VBA質問箱 IV

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

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


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

【3772】Re:生年月日で並べ替え
回答  かみちゃん  - 04/10/23(土) 15:44 -

引用なし
パスワード
   こんにちは。かみちゃん です。

横から失礼します。

>この式をどこに当てはめたらよいのか、わからないのですが
>式ビルドではないですよね?

クエリのデザイモード時にSQLビュー(「表示」−「SQLビュー」)に切り替えてください。
・ツリー全体表示

【3771】Re:生年月日で並べ替え
質問  miya  - 04/10/23(土) 15:26 -

引用なし
パスワード
   ちゅう吉 さん

回答ありがとうございます
この式をどこに当てはめたらよいのか、わからないのですが
式ビルドではないですよね?
>SELECT 生年月日,[18.],[17.],[16.],・・・中略・・・,[3.],[2.],[1.]
>FROM TABLE
>ORDER BY IIf(Len(replace(nz([生年月日],"")," ",""))<6,"a" & [生年月日],[生年月日]),[18.],[17.],[16.],・・・中略・・・,[3.],[2.],[1.];
・ツリー全体表示

【3770】Re:生年月日で並べ替え
回答  ちゅう吉  - 04/10/23(土) 0:10 -

引用なし
パスワード
   >a71/ / "a"と言う文字は表示してないとダメですかね?

先の↓のクエリーなら"a"という文字は出ません。

SELECT TABLE.氏名, TABLE.生年月日
FROM TABLE
ORDER BY IIf(Len(replace(nz([生年月日],"")," ",""))<6,"a" & [生年月日],[生年月日]);


>
>生年月日の後に18.17.16.15.14.13.12.11.10.9.8.7.6.5.4.3.2.1.と
>18.〜1.までも昇順で並べ替えを行っているのですが
>生年月日が空白の為、後の18.〜1.の昇順での並べ替えは
>実行されていないのですが、
>生年月日の後に続く18.〜1.フィールドのデータによって
>並べ替えを行うにはどのようにしたら宜しいでしょうか?
>
>生年月日  18. 17. 16. 15. 14. 13. 12. 11. 10. 9. 8. 7. 6. 5. 4. 3. 2. 1.
>a/ /19   4 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
>a/ /19   6 6 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
>a/ /    6 6 6 6 5 6 6 6 6 6 6 6 6 6 6 6 6 6
>a/01/    6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
>

なら

SELECT 生年月日,[18.],[17.],[16.],・・・中略・・・,[3.],[2.],[1.]
FROM TABLE
ORDER BY IIf(Len(replace(nz([生年月日],"")," ",""))<6,"a" & [生年月日],[生年月日]),[18.],[17.],[16.],・・・中略・・・,[3.],[2.],[1.];

となります。
・ツリー全体表示

【3769】Re:Filter で抽出時のレコード更新
お礼  ぷー  - 04/10/22(金) 22:25 -

引用なし
パスワード
   すみません。
自己レスしました。ありがとうございました。
またの質問の際にはよろしくお願いいたします。
・ツリー全体表示

【3768】Re:レポートの印刷を1枚に納めたい(縮小...
回答  こもれび E-MAIL  - 04/10/22(金) 20:55 -

引用なし
パスワード
   こもれびです

▼佐々木 さん:
>早速、プロパティシートにて幅を確認しましたところ、
>28.651センチもありました・・。

[ページ設定]の用紙は「A4」、印刷の向きは「横」ですか?
数字から考えますとそれかなと思うのですけど・・・
もし、印刷の向きが「横」で左右の余白を10mmとする場合は

A4の縦寸法:29.7(cm)=左右の余白:1(cm)×2 + レポート幅

で、レポート幅は29.7-2=27.7(cm) となります。

>手入力で19cmと入力してみましたが、
>手入力では設定できないのでしょうか?

印刷の向きが「縦」でも「横」でもプロパティシートで設定できる
はずですが?


>テキストボックスをかなり使用している、複雑なレポートなので
>1つ1つ調整していくのは、できれば避けたいです。
>少しだけ、次ページへ移ってしまうだけなのですが、
>その他に縮小する方法はないのでしょうか?
・ツリー全体表示

【3767】Re:Filter で抽出時のレコード更新
質問  ぷー  - 04/10/22(金) 20:28 -

引用なし
パスワード
   >Filter ではなく、SQL文を使っては?
>UPDATE で、WHERE 句を使って絞り込めばいいかと。

ありがとうございます。
SQLを初めてつかいました。抽出は上手くできましたが、更新がどうしたら
よいか解りません。
処理のながれとしては、抽出したレコードを1件ずつ読み込み別のテーブルに
追加処理をし、その後1件ずつレコードの更新を行いたいのです。
以下のようにしたら、抽出のみはうまくできました。
更新はどこでどのようにしたらよいでしょうか?
よろしくお願いいたします。

  Set 入荷DB = CurrentProject.Connection
  MYSQL = "SELECT JN入荷.確定済FLG,JN入荷.雑誌コード " _
     & "FROM JN入荷 " _
     & "WHERE ((JN入荷.確定済FLG)=0);"
     
  入荷TBL.Open MYSQL, 入荷DB, adOpenKeyset, adLockPessimistic
  Do Until 入荷TBL.EOF
    MsgBox 入荷TBL![雑誌コード] <=== 本来ここで別テーブルに追加処理。
    入荷TBL.MoveNext         この後に1件ずつ(追加処理が終
  Loop                 了したもののみ)更新したい。 
  
  入荷TBL.Close: Set 入荷TBL = Nothing
  入荷DB.Close: Set 入荷DB = Nothing
・ツリー全体表示

【3766】Re:生年月日で並べ替え
質問  miya  - 04/10/22(金) 19:12 -

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

ちゅう吉さんの式で並べ替えは実行されました。
IIf(Len(replace(nz([生年月日],"")," ",""))<6,"a" & [生年月日],[生年月日])


a
a/ /19
a/01/
a71/ / "a"と言う文字は表示してないとダメですかね?

生年月日の後に18.17.16.15.14.13.12.11.10.9.8.7.6.5.4.3.2.1.と
18.〜1.までも昇順で並べ替えを行っているのですが
生年月日が空白の為、後の18.〜1.の昇順での並べ替えは
実行されていないのですが、
生年月日の後に続く18.〜1.フィールドのデータによって
並べ替えを行うにはどのようにしたら宜しいでしょうか?

生年月日  18. 17. 16. 15. 14. 13. 12. 11. 10. 9. 8. 7. 6. 5. 4. 3. 2. 1.
a/ /19   4 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
a/ /19   6 6 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
a/ /    6 6 6 6 5 6 6 6 6 6 6 6 6 6 6 6 6 6
a/01/    6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6

並べ替え
第1希望 生年月日が空白の際、最下位
第2希望 18.値 昇順
 ・
 ・
 ・
最後  1.値 昇順

上記の例えだと見ずらいと思うのですが 実際に分かりやすいように
データを入れて並べ替えが実行されているかを見てみたのですが
上記のような結果にはならなかったので
基本的な事で申し訳ないのですが クエリーは左から順に並べ替えの
実行がなされるのですよね?
ややこしい質問で本当にすみません。
・ツリー全体表示

【3765】Re:生年月日で並べ替え
回答  hatena  - 04/10/22(金) 18:33 -

引用なし
パスワード
   >クエリーで式を入れて並べ替えを実行するしか
>方法はないのですね。

と思います。
・ツリー全体表示

【3764】Re:生年月日で並べ替え
質問  miya  - 04/10/22(金) 17:42 -

引用なし
パスワード
   hatena さん
ちゅう吉さん
とても分かりやすい親切な回答ありがとうございます。
クエリーで式を入れて並べ替えを実行するしか
方法はないのですね。
・ツリー全体表示

【3763】Re:生年月日で並べ替え
質問  miya  - 04/10/22(金) 17:41 -

引用なし
パスワード
   hatena さん
ちゅう吉さん
回答ありがとうございます。
クエリーで式を入れて並べ替えを実行するしか
方法はないのですね。
・ツリー全体表示

【3762】Re:レポートの印刷を1枚に納めたい(縮小...
質問  佐々木  - 04/10/22(金) 16:58 -

引用なし
パスワード
   教えていただいてありがとうございます。
早速、プロパティシートにて幅を確認しましたところ、
28.651センチもありました・・。
手入力で19cmと入力してみましたが、
手入力では設定できないのでしょうか?
テキストボックスをかなり使用している、複雑なレポートなので
1つ1つ調整していくのは、できれば避けたいです。
少しだけ、次ページへ移ってしまうだけなのですが、
その他に縮小する方法はないのでしょうか?
・ツリー全体表示

【3761】Re:生年月日で並べ替え
回答  hatena  - 04/10/22(金) 16:53 -

引用なし
パスワード
   >生年月日フィールド テキスト型
>書式   @;99/99/99
>定型入力 99\/99\/99;0;#

>生年月日フィールドの書式の設定を無しにした時の表示は
>何もデータ無しの時は 空白
>データが西暦下2桁のみ 61/ / 
>データが月のみ    /01/
>データが日のみ    / /19

Null か、必ず半角空白が含まれているのですね。

クエリの 生年月日 フィールドの前に下記のフィールドを追加してみて下さい。

フィールド 式1: InStr([txtDate]," ")>0 Or [txtDate] Is Null  生年月日
並び替え  降順                        昇順
表示    □                         レ
・ツリー全体表示

【3760】フォントのインストール
質問  ほびっと  - 04/10/22(金) 16:51 -

引用なし
パスワード
   Access2002です。
VBAでフォントのインストールをしたいのですが、うまくいきません。
Fontsフォルダ内にコピーはされるのですが、フォントとしては使えません。
以下がコードです。コード外でWindowsDirectoryにてWindowsのパスを取得しています。

Sub sbSetFont() 'フォントセットアップ
  Dim strCPth As String, strFDir As String, strFont As String
  Dim objFS As Object
  strFont = "AAAFont.ttf"
  If pstrPth = "" Then pstrPth = CurrentProject.Path
  strCPth = pstrPth & "\" & strFont
  If Dir(strCPth) = "" Then Exit Sub
  strFDir = WindowsDirectory
  strFDir = strFDir & "\Fonts\" & strFont
  If Dir(strFDir) <> "" Then
    Kill strFDir
  End If
  Set objFS = CreateObject("Scripting.FileSystemObject")
  objFS.CopyFile strCPth, strFDir
  Set objFS = Nothing
End Sub

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

【3759】Re:Filter で抽出時のレコード更新
回答  Gin_II  - 04/10/22(金) 15:40 -

引用なし
パスワード
   >  CRITERIAX1 = "確定FLG = 0"
>  入荷TBL.Filter = CRITERIAX1

Filter ではなく、SQL文を使っては?
UPDATE で、WHERE 句を使って絞り込めばいいかと。
・ツリー全体表示

【3758】Re:生年月日で並べ替え
回答  ちゅう吉  - 04/10/22(金) 14:45 -

引用なし
パスワード
   >キー: IIf(Len(replace(nz([生年月日],"")," ",""))<6,"a" & [生年月日],[生年月日])

前の解答が具体的でなかったのですが、上記のを試してみましたのでしょうか?

・・・では、具体的に

クエリーでは

SELECT TABLE.氏名, TABLE.生年月日
FROM TABLE
ORDER BY IIf(Len(replace(nz([生年月日],"")," ",""))<6,"a" & [生年月日],[生年月日]);

こんな感じになると思われます。


#フィールド[生年月日]の内容は
#何もデータ無しの時は 空白    ⇒ Null または "______"
#データが西暦下2桁のみ  61/ /  ⇒ "61____"
#データが月のみ       /01/  ⇒ "__01__"
#データが日のみ       / /19 ⇒ "____19"
#という仕様でしょうか。
#(空白は便宜上"_"に置き換えています)
・ツリー全体表示

【3757】Filter で抽出時のレコード更新
質問  ぷー  - 04/10/22(金) 14:12 -

引用なし
パスワード
   いつもお世話になっております。

下記のようにFilterでレコードを抽出し、そのレコードに更新(UPDATE)したい
のですが、UPDATE するとレコードの読み込みが1件おきになってしまいます。
(UPDATEを外して実行してみると、該当データはすべて読み込まれました)
Filter使用時にUPDATEしてはいけないのでしょうか?
よろしくお願いいたします。(*ACCESS2002使用)

  CRITERIAX1 = "確定FLG = 0"
  入荷TBL.Filter = CRITERIAX1
   
  Do Until 入荷TBL.EOF

    ジャーナル編集

    入荷TBL![確定FLG] = 1
    入荷TBL![確定日] = Date
    入荷TBL.Update
   
    入荷TBL.MoveNext
  Loop
・ツリー全体表示

【3756】Re:生年月日で並べ替え
質問  miya  - 04/10/22(金) 13:06 -

引用なし
パスワード
   ▼ちゅう吉 さん:
hatena さん
ちゅう吉さん
回答ありがとうございます。
返答が遅れてすみません。

>>空白/空白/空白
>>61/空白/空白
>>空白/08/空白
>>空白/空白/13
>>61/空白/13
>>61/08/空白
>>等と生年月日のデータがマチマチな場合があり、
>>年、月、日のどれか1つにでも ”空白”がある人は
>>最下位にくるように並べ替えを行いたいのですが
>>こんな複雑な事は無理でしょうか?
>>今現在、生年月日フィールドの書式に @;99/99/99 と
>>設定してあるので全くの空白の場合( / / )は99/99/99と
>>データがある場合は、そのままを表示とはなるのですが

すみません。フィールド形式を書き込むのを忘れていました。
フィールド型は、テキスト型です。

生年月日フィールド テキスト型
書式   @;99/99/99
定型入力 99\/99\/99;0;#


テーブルに実際に格納されているデータはどのような形になっているの
でしょうか。

生年月日フィールドの書式の設定を無しにした時の表示は
何もデータ無しの時は 空白
データが西暦下2桁のみ 61/ / 
データが月のみ    /01/
データが日のみ    / /19
こんな感じに表示されます。

テキスト型なので文字扱いになるのでしょうか?
やはりクエリーで式を作成して並べ替えを行うしかないのでしょうか?
・ツリー全体表示

【3755】Re:生年月日で並べ替え
質問  miya  - 04/10/22(金) 13:04 -

引用なし
パスワード
   hatena さん
ちゅう吉さん
回答ありがとうございます。
返答が遅れてすみません。

>>空白/空白/空白
>>61/空白/空白
>>空白/08/空白
>>空白/空白/13
>>61/空白/13
>>61/08/空白
>>等と生年月日のデータがマチマチな場合があり、
>>年、月、日のどれか1つにでも ”空白”がある人は
>>最下位にくるように並べ替えを行いたいのですが
>>こんな複雑な事は無理でしょうか?
>>今現在、生年月日フィールドの書式に @;99/99/99 と
>>設定してあるので全くの空白の場合( / / )は99/99/99と
>>データがある場合は、そのままを表示とはなるのですが

すみません。フィールド形式を書き込むのを忘れていました。
フィールド型は、テキスト型です。

生年月日フィールド テキスト型
書式   @;99/99/99
定型入力 99\/99\/99;0;#


テーブルに実際に格納されているデータはどのような形になっているの
でしょうか。

生年月日フィールドの書式の設定を無しにした時の表示は
何もデータ無しの時は 空白
データが西暦下2桁のみ 61/ / 
データが月のみ    /01/
データが日のみ    / /19
こんな感じに表示されます。

やはりクエリーで式を作成して並べ替えを行うしかないのでしょうか?
・ツリー全体表示

【3754】Re:生年月日で並べ替え
回答  ちゅう吉  - 04/10/21(木) 23:15 -

引用なし
パスワード
   フィールド「生年月日」が文字列の場合なら・・・

クエリーで

キー: IIf(Len(replace(nz([生年月日],"")," ",""))<6,"a" & [生年月日],[生年月日])

で、昇順に並べ替える方法ではどうでしょう?
・ツリー全体表示

【3753】Re:生年月日で並べ替え
回答  hatena  - 04/10/21(木) 23:03 -

引用なし
パスワード
   >空白/空白/空白
>61/空白/空白
>空白/08/空白
>空白/空白/13
>61/空白/13
>61/08/空白
>等と生年月日のデータがマチマチな場合があり、
>年、月、日のどれか1つにでも ”空白”がある人は
>最下位にくるように並べ替えを行いたいのですが
>こんな複雑な事は無理でしょうか?
>今現在、生年月日フィールドの書式に @;99/99/99 と
>設定してあるので全くの空白の場合( / / )は99/99/99と
>データがある場合は、そのままを表示とはなるのですが

このフィールド型は、テキスト型でしょうか。数値型でしょうか。
テーブルに実際に格納されているデータはどのような形になっているの
でしょうか。

生年月日フィールドの書式の設定をなしにしたとき、どのように表示されますか。
・ツリー全体表示

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