ACCESS総合相談所 その4

このエントリーをはてなブックマークに追加
952名無しさん@そうだ選挙にいこう:02/09/26 09:40
教えてください。
コマンドボタンをクリックした時に、
「ファイルを開く」ダイアログボックスを表示させたいのですが、
どのようにしたらよろしいのでしょうか?
よろしくお願いします。
>>952
そんなあなたはツールボタンの魔法の杖(コントロールウィザード)を
押下しとけば幸せに…
954初心者001号:02/09/26 11:31
教えてください。
フォームを開く時、最大化にするモジュールってどのように
したら宜しいのでしょうか?
955952:02/09/26 11:54
APIでできました。
953様ありがとうございました

>>954
Private Sub Form_Load()
DoCmd.Maximize
End Sub

↑これでいいかな?
956初心者001号:02/09/26 12:09
952さんありがとうございました。
所で、みなさんの職業は?
ちなみにわたしは、倉庫屋さん系電算の人ですけど
957ページ移動ボタン:02/09/26 13:05
単票フォームでページ移動ボタンをつくったんですが
(一気に10ページとか100ページ飛べるやつ)

On Error Resume Next
dim 飛ぶ回数 as long
if [後ろ残りいくつ]>10 then
For 飛ぶ回数=1 to 10
DoCmd.GoToRecord , , acNext
Next 飛ぶ回数
else
For 飛ぶ回数=1 to [後ろ残りいくつ]-1
DoCmd.GoToRecord , , acNext
Next 飛ぶ回数
end if

このやり方だと、パラパラっとした飛び方になって何だかまどろっこしい。
何ていうか、100ページ前とか1000ページ後ろに「直行できる」書き方って
ありますか?
958ページ移動ボタン :02/09/26 13:26
↑書き忘れました
連番がついているようなフィールドはナシ
主キーは歯抜けのオートナンバーなので、使いものになりません
>>957
Help見れ。
GoToRecordの引数にoffsetパラメータがあるよ。
960名無しさん@そうだ選挙にいこう:02/09/26 15:24
961名無しさん@そうだ選挙にいこう:02/09/26 15:26
>>957
参考に・・・
Sub move10()
Me.Recordset.Move 10
If Me.Recordset.EOF Then Me.Recordset.MoveLast
End Sub

後はヘルプ見ろ。DAOの参照設定しておけ。

962名無しさん@そうだ選挙にいこう:02/09/26 20:11
教えて下さい。ウィンドウズ98SEで、
アクセス2002を使ってます。

以下の二つのテーブルから、

商品テーブル
 商品番号
 商品名

入荷品テーブル
 入荷番号
 商品番号
 入荷数

商品毎の入荷数の合計を見る為に商品番号で
リレーションさせて、以下のクエリを作りました。

入荷数合計クエリ
 商品番号
 入荷数の合計

しかし、商品テーブルに登録されているが、
入荷が一つもないレコードも、入荷数合計0として
表示して欲しいのですが、出てくれません。

結合プロパティで商品テーブルの全レコードと、
入荷品テーブルの同じ結合フィールドのレコード
だけを表示するをチェックしたりしましたが、やっぱり
表示されません。

何が間違ってますでしょうか?
963名無しさん@そうだ選挙にいこう:02/09/26 20:25
今度マウス受けるんですが、
ただで手に入る模擬試験ソフトってないですかね?
964名無しさん@そうだ選挙にいこう:02/09/26 22:22
>>963
立ち読みで充分
>962
SQLビューにして、出てきたSQL文をここに貼ってみて
>>962
入荷数の合計 :入荷数となってるでしょ
そこに
入荷数の合計 :IIf(IsNull(Sum([入荷数])),0,Sum([入荷数]))と書き換えて
集計の欄の「合計」を「演算」換えてみそ
クエリの作成ビュー(?)や実行ビュー(?)、SQLビュー(?)への
切り替えのショートカットキーは無いのですか?
マウスで切り替えるの飽きますた。
一発切り替えじゃないけど、

Alt + V

S (データシート)
D (デザイン)
Q (SQL)

って感じで左手に滲み込ませておくべし
969957:02/09/27 00:22
あれれ、という感じ
HelpでGoToRecordを検索するだけでよかったんですね(一発じゃん!)
何だかお馬鹿なことをやったもんだと思います
じっさい書きながら思ってはいたんですよ。絶対こんなの変だよな〜
ループってホントはこんなときに使うもんじゃねえよな〜って

>>Me.Recordset.Move ・・・
このやり方、何となくカッコいいです。Recordsetって言葉は、
いまだに見るとドキドキします。素っ裸でVBAの荒野に放り出された気分
970961:02/09/27 00:26
>>969
レス読むとVBA使ってるように思えるんだけど・・・
RecordCountとか使ってないの?
971962:02/09/27 00:26
>>966
出来ました!ありがとう!なるほど、nullには
要注意か、、。

>>965
ありがとう。例のテーブルより本当はもっと
複雑だったので、貼るのは困難でした。
972名無しさん@そうだ選挙にいこう:02/09/27 00:54
クエリを作っていると、

「集計関数の一部として指定された式〜〜〜〜を
含んでいないクエリを実行しようとしました。」

とエラーが出て、意味が分からないのでヘルプを
見たら英文で余計分かりません。私は何回読んでも
サッパリ意味が分からないのですが、何故怒られ
てるんでしょうか?
973名無しさん@そうだ選挙にいこう:02/09/27 00:57
>>972
それはおまえがちゃんとした質問もでききないダメな奴だから!!
せめてクエリのSQLでも貼ってみろ。
974957:02/09/27 02:04
>>970
VBAってのは、使わないこともないですけど、マクロを変換しただけ
のレベルに毛がはえた程度です。
Recordsetという言葉は、まだ2、3度どしか使ったことがありません。
Access始めて2年ちょっとですけど、クエリ信者だった時期が長く(いまでも
まだそう)、クエリだけじゃやっぱりきびしいかな〜みたいなとき
仕方なくという感じで。

RecordCountって言葉は初めてです

全部でいくつ=Count(*) ←ネット上で拾ってきた書き方です
いま何番目=CurrentRecord ←同じくネット上で・・・
後ろ残りいくつ=[全部でいくつ]-[いま何番目]

この3つのテキストボックスをフォームに貼り付け、For〜nextで
パラパラ飛ばしてました。

オオーっと、いろいろやっているうちにいつのまにか2時になってしまったぞ。
VBAどっぷりのスリリングな夜(このレベルでも刺激を楽しめる程度の未熟者です)
ありがとうございました。

では、おやすみなさい
975970:02/09/27 02:34
>>974
フォームでレコードセレクタ使っててちょっとVBA書くなら
me.recordset.recordcount とか me.recordset.bookmark とか
使うと便利だよ。(ヘルプ参照)
あと me.recordsetclone とかも使うとフォームで表示してるのとは
違う事ができる。
976名無しさん@そうだ選挙にいこう:02/09/27 09:37
教えてください。
コマンドボタンをクリックした時にハイパーリンクでJPGファイルを
開くようにしたのですが、Internet Explorerで開いてしまいます...
Photoshopなどの別のビューアで開くようにするにはどのようにしたらよろしいのでしょうか?

フォルダオプションで拡張子JPGをPhotoshopに関連付けてもInternet Explorerで開いてしまいます。
(ただしエクスプローラからJPGファイルをダブルクリックした場合はちゃんとPhotshopで開かれます)

よろしくお願いします。
>>976
ハイパーリンクって何のことかわかってる? URLじゃなくてファイルに
リンクしてるんだろうけど、デフォルトブラウザが開くのは当たり前。

何のためにそんなボタンを作ったのか書いてくれると嬉しいんだが。
978名無しさん@そうだ選挙にいこう:02/09/27 12:06
>>976
shell関数使え。
979名無しさん@そうだ選挙にいこう:02/09/27 13:22
コンボボックス(cboData)の値を
  コード | データ
  01   | ごはん
  02   | パン
  03   | 紙粘土
という風に2列にしていて、
列幅を「0cm;10cm」、連結列を「1」にしています。

ここに
cboData.Value = "あああ"
としても、1列目を0cmにしていると表示されないようです。
これの2列目のValueにデータを入れるにはどうしたら良いのでしょうか。
980初心者001号:02/09/27 16:50
質問ですが、
エクセルを開かずに、指定されたセルにデータを打ち込む
モジュールを教えて下さい。
981名無しさん@そうだ選挙にいこう:02/09/27 17:40
>>980
アプリケーションを表面に出さないことは可能だが
ファイルを開かずに更新する事は不可能では?
それともAccessでExcelを起動させてファイルを更新させたいのかな?
982981:02/09/27 18:22
追加
表面にアプリケーションを出さずにバックグラウンドでファイルを開いて
更新しセーブする事は可能
983初心者001号:02/09/27 18:28
>>980
質問詳細の不足でごめんなさい。
以下の様なモジュールで組むと

With woObjExcel
.Parent.Workbooks.Open FileName:=msUserPath
.Workbooks.Application.Visible = True
.Workbooks.Application.ActiveWindow.Activate

所定のセルへの書き込みは可能ですが、アプリケーションが表面
に出てしまいます。
表面に出さない様にしたいのです。
中々、わからずに困っています。
984981:02/09/27 19:06
>>983
これで出来るよ

With woObjExcel
.Parent.Workbooks.Open FileName:=msUserPath
.Workbooks.Application.Visible = False '----------ここ True → False
.Workbooks.Application.ActiveWindow.Activate
'-------書き込み処理
.ActiveWorkbook.Save '---------------セーブ処理
.Quit'-------------------------------アプリケーション終了
985Tommy:02/09/28 01:40
Access2000で在庫管理システムの在庫表を作成しています。
今まで通貨型の数値をInt関数で小数点以下を切り捨てていたのですが、
変更になり、切上げにしたいのですが、ヘルプを探すとROUNDUP関数が
出てきたのですが、その関数を使えば良いのでしょうか。
またROUNDUP関数で良いとしたら、どうしたら使えるようになる
のでしょうか。IntをROUNDUPに上書きすると次のようなメッセージが
表示されてしまいます。「式に未定義関数'ROUNDUP'があります。」
モジュールのデザイン画面から[ツール]−[参照設定]を選択して開かれる
参照可能なライブラリファイルのどれかにチェックを入れなければ
いけないのでしょうか。参考まで、現在は上から順に下記にチェック
が入っています。

・Visual Basic For Applications
・Microsoft Access 9.0 Object Library
・Microsoft DAO 3.6 Object Library
・OLE Automation
・Microsoft Visual Basic For Applications Extensibility 5.3

どなたか解かる方いらっしゃいましたら、教えていただけないでしょうか。
どうぞ宜しくお願い致します。
986名無しさん@そうだ選挙にいこう:02/09/28 04:08
>>985
=Int([数値]+0.9)
これで切り上げにならない?

ちなみに、負の値でもちゃんとやりたかったら
=Fix([数値]+0.9)
これで可能かと・・・
987名無しさん@そうだ選挙にいこう:02/09/28 05:30
988御堂 静 ◆DHA/tpPY :02/09/28 08:49
もう少しで1000ですね!

とこでエクセルの質問は勘弁して!

>>985
RAUNDOUPという関数は使ったことが無いのでわかりませんが、RAUNDOなら使えるんじゃないですか?
RAUNNDO で切り上げる場合には、0.5を足して四捨五入をすればよいです。
989名無しさん@そうだ選挙にいこう:02/09/28 09:02
SQLサーバーとつないで、やっている人いますか?

年末に向けてスキルアップを図ろうと思います。
苦労話などお聞かせいただけませんか...
990HOKUTO:02/09/28 09:08
>>988
ROUND 関数は、算術四捨五入ではなくて銀行型四捨五入だから注意。
銀行型四捨五入は 5 の切り上げ/切捨てが偶数/奇数で交互に入れ替わる。

ROUND(0.5)→0
ROUND(1.5)→2
ROUND(2.5)→2
ROUND(3.5)→4
991HOKUTO:02/09/28 09:15
992名無しさん@そうだ選挙にいこう:02/09/28 09:29
うそー!
知らなんだ。試してみよーッと
>985
ここ読んどけ。
「丸めを行うカスタム プロシージャを実装する方法」
http://support.microsoft.com/default.aspx?scid=kb;ja;JP196652
994名無しさん@そうだ選挙にいこう:02/09/28 09:39
>>991
ありがとうございました。
995初心者001号:02/09/28 10:48
>>984さん
ありがとうございます。
成功しました。
996名無しさん@そうだ選挙にいこう:02/09/28 10:56
次スレを建ててください
997名無しさん@そうだ選挙にいこう:02/09/28 12:04
長く続いてほしいので
次スレ、たててきますた。

http://pc.2ch.net/test/read.cgi/bsoft/1033182163/
では私目が
999名無しさん@そうだ選挙にいこう:02/09/28 13:11
余裕で999もろた
1000名無しさん@そうだ選挙にいこう:02/09/28 13:11
余裕で1000もろた
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。