Access VBA質問箱 IV

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

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


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

【3531】Re:メモリ上でのテーブルの作成と編集
お礼  SIA  - 04/9/16(木) 15:07 -

引用なし
パスワード
   YU-TANG様、お返事有難うございます。

トランザクションやRollback、Commitと言った単語が理解できていないのですが、
お教えいただいた内容からすると、希望通りの操作ができそうです。
まずは単語から調べていきたいと思います。

また、

>たとえばトランザクションは Workspace 単位ですから、メモリ上の仮想
>テーブルでアレコレやった結果をせっかく物理テーブルに書き込んでも、
>Rollback したら仮想テーブルも消えますが、物理テーブルの変更も巻き
>添えで消えることが予想されます。
>変数に退避して済むデータ量ならそれでもいいでしょうが、これ以上は
>使い方次第なので、何とも。

については、仮想テーブルでの結果は物理テーブルには書き込む予定がないので
大丈夫ではないかと思っております。また、その結果自体も変数に待避可能な位
のデータ量と予想しております。

本当に有難うございました。
・ツリー全体表示

【3530】Re:日付の最新順にするには?
回答  クロ  - 04/9/16(木) 14:50 -

引用なし
パスワード
   >昇順にすると2004/1/1→2004/0901という順番になってしまうのですが・・・

日付のデータ型は「2004/0901」になると言うことはテキストなのでしょうか?
クエリの空いているフィールドに
Format(Replace(Format([日付],"yyyymmdd"),"/",""),"@@@@\/@@\/@@")
と入れて「並び替え」を降順にしてはどうでしょうか?
・ツリー全体表示

【3529】Re:日付の最新順にするには?
お礼  かこ  - 04/9/16(木) 14:13 -

引用なし
パスワード
   ▼Gin_II さん:
>>昇順にすると2004/1/1→2004/0901という順番になってしまうのですが・・・
>降順にすれば大丈夫だと思います。

降順にしたのですがだめでした。
他に何か設定があるのでしょうか?
・ツリー全体表示

【3528】Re:クエリの処理時間短縮について
お礼  Tomato  - 04/9/16(木) 12:30 -

引用なし
パスワード
   どうもありがとうございます。
インデックスを付けるという考えがまったく浮かびませんでした。
インデックスの付け方は、Create index 文でつけるのですよね。
CREATE INDEX IND_ID_Date ON TableA(ID, Date);
では構文エラーがでます。
ID単独には付けることができるのですが、Dateには付けれません。
日付型には付けることができないのでしょうか?
度々の質問ですが、よろしくお願いいたします。
・ツリー全体表示

【3527】Re:エラーメッセージの表示
発言  こもれび  - 04/9/16(木) 11:47 -

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

▼クロヒョウ さん:
>行います。その一番最後に金額の入力があるのですが、顧客毎に入力をするので、
>必ずしも月末日に入力するとはかぎりません。

一番最後に金額の入力がある…ということは金額のテキストボックスが空欄のまま
「新規レコード」の入力に移動してしまう確率が高い上、このままではチェック
をかけようにもかけにくい状態ですね。

○ 対策案

現状           対策
-------------------------------------------
フォームを閉じると    フォームの「閉じる
テキストボックスが    ボタン」[×]を表示
空欄のままテーブル    しない。
にデータが書き込ま    テキストボックスの
れてしまう。       入力チェックコード
             を記述した閉じる
             ボタンをフォーム上
             に新たに配置する
-------------------------------------------
移動ボタンをクリッ    移動ボタンを表示しな
クするとテキストボ    い。
ックスが空欄のまま    テキストボックスの
テーブルにデータが    入力チェックコード
書き込まれてしまう    を記述した移動ボタ
             ンを新たに配置する
-------------------------------------------

このような対策案ではいかがでしょうか
・ツリー全体表示

【3526】Re:日付の最新順にするには?
回答  こもれび  - 04/9/16(木) 11:15 -

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

>クエリーでの日付を最新順にするにはどうしたらよいですか?
>昇順にすると2004/1/1→2004/0901という順番になってしまうのですが・・・

「並べ替え」の選択で「降順」は選択できませんか?
選択できれば、

例)
  日付
--------------------
  2004/9/1
  2004/8/1
  2004/7/1
  2004/6/1
  2004/5/1
  2004/4/1
  2004/3/1
  2004/2/1
  2004/1/1

のように出来るはずです。
・ツリー全体表示

【3525】Re:日付の最新順にするには?
回答  Gin_II  - 04/9/16(木) 11:12 -

引用なし
パスワード
   >昇順にすると2004/1/1→2004/0901という順番になってしまうのですが・・・
降順にすれば大丈夫だと思います。
・ツリー全体表示

【3524】Re:エラーメッセージの表示
質問  クロヒョウ  - 04/9/16(木) 10:14 -

引用なし
パスワード
   こもれび 様
 レスが遅くなり申し訳ありません。
 急に仕事が休みになってしまいました。

一度に入力する件数は1件のみの場合もあり、そうでない場合もあります。
入力したあろは、そのまま閉じてしまうだけで特に何かボタンをクリックする
ような仕組みにはなっていません。
また、入力は何度かにわけて(顧客名→受注日→下請けへの発注日→・・・・)
行います。その一番最後に金額の入力があるのですが、顧客毎に入力をするので、
必ずしも月末日に入力するとはかぎりません。

また、各項目によって入力者が違います。

実は、アクセスを始めて、まだ1ヶ月あまりという超初心者です。
お手数かけますが、よろしくお願いします。
・ツリー全体表示

【3523】日付の最新順にするには?
質問  かこ  - 04/9/16(木) 9:59 -

引用なし
パスワード
   クエリーでの日付を最新順にするにはどうしたらよいですか?
昇順にすると2004/1/1→2004/0901という順番になってしまうのですが・・・
・ツリー全体表示

【3522】Re:セキュリティウィザードについて
お礼  tak  - 04/9/16(木) 9:06 -

引用なし
パスワード
   自己レスです。
http://www.f3.dion.ne.jp/~element/msaccess/AcTipsGnrlHowToAttachExternalMdb.html#ADO

見つけました。稼動確認してみます。
ありがとうございました。
・ツリー全体表示

【3521】Re:セキュリティウィザードについて
質問  tak  - 04/9/16(木) 9:00 -

引用なし
パスワード
   こもれび さま

ご返信ありがとうございます。
参照設定はADOを確認すればよいですか?
それともセキュリティウィザード実行済みACCESSに接続する際、
特殊な参照設定が必要になるということでしょうか?

ちなみにADOであればコンパイルも通りますので問題はありません。

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

【3520】Re:メモリ上でのテーブルの作成と編集
回答  YU-TANG WEB  - 04/9/15(水) 20:24 -

引用なし
パスワード
   こんばんは、YU-TANG です。

やったことはありませんので、アイディアだけですが。

トランザクションを切ってアレコレやった後に Rollback すれば、結果的に
無かったことに出来るかもしれません。
万一 強制終了しても、Commit さえしていなければ痕跡は残らないはずです。
ただ、使い方によっては、何か予想外の問題が発生するかもしれません。

たとえばトランザクションは Workspace 単位ですから、メモリ上の仮想
テーブルでアレコレやった結果をせっかく物理テーブルに書き込んでも、
Rollback したら仮想テーブルも消えますが、物理テーブルの変更も巻き
添えで消えることが予想されます。
変数に退避して済むデータ量ならそれでもいいでしょうが、これ以上は
使い方次第なので、何とも。
・ツリー全体表示

【3519】Re:クエリの処理時間短縮について
回答  こもれび  - 04/9/15(水) 20:03 -

引用なし
パスワード
   こもれびです、 こんにちは(^^)/

テーブルのインデックスはどのようになっていますか?
インデックスがIDだけだったりすると遅くなります。

TableB.Date
TableA.Date

これらにインデックスを付けると速くなるのではないかなと思います。
・ツリー全体表示

【3518】Re:セキュリティウィザードについて
回答  こもれび  - 04/9/15(水) 19:52 -

引用なし
パスワード
   「参照不可」が発生しているかもしれないです。
VBAのエディタメニューで「ツール」−「参照設定」
を見て下さい。
・ツリー全体表示

【3517】セキュリティウィザードについて
質問  tak  - 04/9/15(水) 19:14 -

引用なし
パスワード
   初歩的な質問かもしれません。

セキュリティ強化の観点から、いままで使用していたAccess2000プログラムを
修正し、セキュリティウィザード使用しコンバートしたのですが、
セキュリティウィザードを使用すると
Excel2000(VBAモジュールActiveX Data Objects 2.5 Library)
より対象Accessテーブルへのアクセスが不可能になってしまいました。

データベースオープンの際にエラーになるので
コネクションストリングの記述ミスだとは思うのですが、
どういった引数を記述すれば接続が可能になるのかが分らず途方にくれています。
参考になるHPでも結構ですので、お教え願いたいです。

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

【3516】Re:クエリの処理時間短縮について
質問  Tomato  - 04/9/15(水) 15:00 -

引用なし
パスワード
   ▼SIA さん:
>TableBがもしも自前で作成しているものならば、最初からTableBに書き込む際にIDが重複
>しないように、MAXを調べてから書き込んでみたらどうでしょうか?

ご返信、ありがとうございます。
TableB.DateのMaxではなく、TableA.Dateよりも小さいMaxを探す必要があるのです。
TableA.Dateを参照せずにTableBのMaxを調べることができないので、
このような処理になっています。
何かいい案がありますでしょうか?
・ツリー全体表示

【3515】Re:クエリの処理時間短縮について
回答  SIA  - 04/9/15(水) 14:05 -

引用なし
パスワード
   TableBがもしも自前で作成しているものならば、最初からTableBに書き込む際にIDが重複
しないように、MAXを調べてから書き込んでみたらどうでしょうか?
・ツリー全体表示

【3514】クエリの処理時間短縮について
質問  Tomato  - 04/9/15(水) 13:37 -

引用なし
パスワード
   データ量が膨大なため、処理時間の短縮を図っております。
処理としては、以下の条件でデータを抽出したいです。

<条件>
TableA:ID, Date, ItemA  IDは重複なしです
TableB:ID, Date, ItemB  IDは重複してます
TableA.IDとTableB.IDが同一で、TableB.DateはTableA.Dateより小さいけれども
TableBの中では最大なものを抽出。

現状の処理としては、以前【3365】にて教えて頂いたように

SELECT TableA.ID, TableA.ItemA, TableB.ItemB FROM TableA, TableB
WHERE (TableA.ID=TableB.ID AND
TableB.Date=(SELECT Max(Date) FROM TableB WHERE TableB.Date<TableA.Date))

にて抽出を行なっているのですが、少しでも処理時間を短縮したいと思っています。
上記以外に少しでも処理時間がかからない方法をご存知でしたら教えていただきたいです。
よろしくお願いいたします。
・ツリー全体表示

【3513】Re:コメント化/非コメント化
お礼  わだあつと  - 04/9/15(水) 13:12 -

引用なし
パスワード
   ▼GinIIさん、SIA さん:

やってみたいと思います。
どうもありがとうございました。
・ツリー全体表示

【3512】Re:コメント化/非コメント化
回答  SIA  - 04/9/15(水) 12:52 -

引用なし
パスワード
   Access97で使えるかどうかは分かりませんが、一時的に一部のソースを
実行不可にするだけでしたら、

If 0 Then
  A = B + C

   〜処理〜

  Debug.Print A
End If

という風に、Ifで回避すると複数行でも楽です。
・ツリー全体表示

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