Access総合相談所 其の21 【桐にしとけ】at BSOFT
Access総合相談所 其の21 【桐にしとけ】 - 暇つぶし2ch609:名無しさん@そうだ選挙にいこう
09/07/14 00:43:17
>>598
ぶっちゃけ、コードが欲しいんだろ?

Private Sub コマンド0_Click()
Dim Ctrl As Control
Dim i As Long

With CurrentProject.AllReports
For i = 0 To .Count - 1
DoCmd.OpenReport .Item(i).Name, acViewDesign, , , acHidden
For Each Ctrl In Reports(.Item(i).Name).Controls
If Ctrl.ControlType = acLabel Then
If Ctrl.Caption = "ABC" Then '比較対照(ABC)はテキストボックスにしておくとよい
Ctrl.Caption = "XYZ" '代入対象(XYZ)はテキストボックスにしておくとよい
End If
End If
Next Ctrl
DoCmd.Close acReport, .Item(i).Name, acSaveYes
Next i
End With
End Sub

こんな感じか?


610:名無しさん@そうだ選挙にいこう
09/07/14 09:54:17
win2000
ACC2000

アクセス起動時にアプリケーションを全画面表示したいのですが、どのようなコードを書けばよいでしょうか
フォームやテーブルの最大表示は出来るのですが、アクセス自体を全画面表示に出来ません

611:名無しさん@そうだ選挙にいこう
09/07/14 11:24:51
Office 14 Beta1 Ships
テクニカルプレビュー来たやつはshareに流してくれ

612:名無しさん@そうだ選挙にいこう
09/07/14 11:26:41
ショートカットを作ってそれの実行時の大きさを最大化にすればokなはずだが?
もちろんそのショートカットから起動すること。


613:名無しさん@そうだ選挙にいこう
09/07/14 12:00:18
ベータテストの参加申し込みがずっと保留状態のままだ
どうやら承認されなかったようだ

614:名無しさん@そうだ選挙にいこう
09/07/14 14:15:20
>>612
そんな手段ががが
トンクル

615:名無しさん@そうだ選挙にいこう
09/07/14 14:48:44
>>610
つ DoCmd.RunCommand acCmdAppMaximize
つ autoexecマクロ

616:名無しさん@そうだ選挙にいこう
09/07/14 16:47:59
XP 2003 VBAちょっと可

クエリで集計した項目がフォーム上から(リストボックスを使っています)うまくソートが
かけられないのですが、どなたかアドバイスいただけませんでしょうか?
項目名は「Pieces の 合計: Pieces」、「Cost の 合計: Cost」です。クエリ上で演算した項目
(項目名は「客単価」等)はうまくいくのですが・・・
集計項目の項目名にスペースが含まれているのが原因じゃないかとか思っているんですが
どうなんでしょうか?

617:名無しさん@そうだ選挙にいこう
09/07/14 17:13:57
>>616
素直に集計した結果を別テーブルにインサートしてそれを使ったほうが早いと思う。
クエリーの結果をさらに加工するというのはいろいろと制限があるし、
かえって遅くなることが多いし予想のつかない結果になったりするから私はそのやり方を多用する。
余計なテーブルが増えるのは非効率のようだけど、
そのテーブルの中がどうなっているのか調べることによりデバックもやりやすくなる。


618:名無しさん@そうだ選挙にいこう
09/07/14 17:35:18
>>617
ありがとうございます。
その方法でやってみます!

619:名無しさん@そうだ選挙にいこう
09/07/14 19:18:02
>>616

>項目名は「Pieces の 合計: Pieces」、「Cost の 合計: Cost」です。
とのことですが、これは合計を計算する項目であって、どういう単位で集計をしているか「グループ項目」の
方を提示してくれないと答えが出ないような気がします。
(結果セットの行の並びについて話しているので、グループ項目がない全体で1行の合計行しか返さない集計ではないでしょうから)

それぞれで結果の並びが違うということは、単純に考えて通常のクエリで作ったものとリストボックスに設定したクエリ(SQL文)
が違うだけだと思いますので、改めて内容を見返すか、それぞれのSQL文をここに提示してもらった方がいいんじゃないでしょうか。

集計クエリを作った場合、集計プロセスの過程でグループ項目でソートされた上での集計ですので、
通常は結果セットの並びは「グループ項目順」になるはずです。

もし、それ以外の並びになるのでしたら、意図的に並びを指定しているはずですので再確認してみてください。
(この辺はSQL文を見れば、「ORDER BY」の記述があるでしょうから一発で分かります)

620:名無しさん@そうだ選挙にいこう
09/07/15 08:35:46
>>615
ありがとうございます
最大化(アプリケーション)マクロの実行でも出来るんですねー

出来るファイルと出来ないファイルがあるけどなんだろ

621:名無しさん@そうだ選挙にいこう
09/07/15 09:24:37
autoexecって未だに使ったことがないな。使い道がわからないし。
ユーザビリティを考えると、フォームは必須になるから
起動時の設定で事足りちゃうと思うけど。
なにか「これはautoexecじゃないとできない」っていうものってあるの?


622:名無しさん@そうだ選挙にいこう
09/07/15 12:49:08
>>621
俺は主にフォームを開く前に設定したいグローバル変数を設定するためのプロシージャを呼び出すのに使っている。
hogehoge.iniとかいう設定ファイルから呼び出すようにすると基本設定をhogehoge.iniで変えることができる。
例えば使うPCの解像度に応じて呼び出すフォームを変えるなんてことも可能。
そういう設定はautoexecマクロからautoexecプロシージャを呼び出してするということに決めておけば楽。
起動時のフォームでも出来るがグローバル変数を設定するためだけの
ダミーの起動時フォーム作るよりこれが一番しっくりくる。


623:名無しさん@そうだ選挙にいこう
09/07/15 20:25:09
しっくり感はともかくやっぱりAUTOEXEC必須ってわけじゃないよな

624:なると海峡
09/07/15 23:01:46
困っています。是非とも皆さんのお力をお貸しください。Access2003です。

以下のようにフォームがあります。

①検索結果一覧フォーム
 テーブルと連結しているテキストボックスが数個あり、起動するとフォームの
 プロパティのレコードソースに記載されているSQL文に従い、テーブルの
 内容を表示する。

 例えば以下のようなSQL文が記載されています。

  SELECT TOP 50 [ID] FROM [AddressTable]

②検索条件作成フォーム
 日時やIDや名前などを入力するテキストボックス・コンボボックスが
 複数存在し、それらの入力の有無に従い、Select文のWhere句以下を作成します。

 検索実行ボタンが押された場合、DoCmd.OpenForm を用いて
 検索結果一覧フォームを開くのですが、その時にDoCmd.OpenForm
 の4つめのプロパティであるWhereConditionに、作成したWhere句以下の
 文字列を指定します。具体的には下記のようなロジックになります。

 DoCmd.OpenForm "フォーム1",acNormal, ,作成したWhere句以下

これらを用い、検索条件作成フォームで検索条件を作り、その条件を検索結果一覧フォーム
に表示させる検索結果に影響させたいのですが、うまくいきませんでした。

 

625:なると海峡
09/07/15 23:02:59

例えば Name = Hanako のデータを含むデータのTOP50を検索したいとします。
通常のSELECT文であれば、

SELECT TOP 50 [Name] FROM [AddressTable] WHERE Name = 'Hanako'

で指定できます。しかしながら、今回のようにDoCmd.OpenFormの
オプションでWhere句以下を指定しフォームを開いた場合には、まずTOP50
で検索が行われ、そのあとにName = Hanakoで絞り込みが行われます。

例えば、初めのTOP50での検索で、NameがHanakoであるデータが存在しなければ
検索結果は0件となります。意とした結果が返りません。

どのようにすれば私の求める結果を実現できるのか、助言をお願いしたく
参りました。よろしくお願いします。

※①、②の設定はあまり変えたくないのです。①のテキストボックスを
 非連結にして・・・というのはあまり考えたくありません。


 

626:名無しさん@そうだ選挙にいこう
09/07/15 23:52:56
>>625
副問合せ


627:名無しさん@そうだ選挙にいこう
09/07/16 00:13:45
>>625
WhereConditionじゃなくOpenArgsにパラメータ渡して、
検索結果一覧フォームとやらの開く時イベントでSQL
生成すれば。
それがイヤだったんだろうなという雰囲気は感じるが、
根拠なくそこを避けて議論するのも不自然だしな。
一応言ってみた。

628:名無しさん@そうだ選挙にいこう
09/07/16 00:28:50
>>623
必須ではないけれど設定すれば必ず最初に実行されるってのは便利ってば便利。


629:621
09/07/16 00:43:02
ちょっと調べてみたけど、Accessに限っていえばそれほど必要ないのかな。
Excelとかだと確かに便利そうだけど。

>>622
「起動中。しばらくお待ちください」とかいう小さめなフォームを表示するのも駄目かな?
利用者からは案外評判がよかったのだけど。

>>628
shift押しながら起動するとキャンセルされるのは、起動時の設定と変わらなかったと思うけど。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch