Access総合相談所 其の20 【桐にしとけ】

このエントリーをはてなブックマークに追加
1名無しさん@そうだ選挙にいこう
ACCESSに関する質問はこちらへ!


▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★ OS、ACCESSのバージョンを明記してください。
★ 質問内容は具体的に書いてください。
  ・何がしたいのか
  ・どんな処理を試したか
  ・動作状況など駄目な理由
  テーブル/フォームの構成、クエリ、VBAの内容など差し支えない
 範囲で詳しく書くと、早く回答が得られるかもしれません。
  図解があれば尚良し。
  聞き返さなくても詳細が把握できる質問が望ましいです。
★ 事前にヘルプ・Google等で調べられる範囲は調べてください。
  大概の疑問は検索することで解決します。
★ アドバイスを貰ったら、必ず経過・結果の報告をして下さい。
  ギブアンドテイクで情報を共有しましょう。

▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【 システム環境  . 】 Windows**, Access**
【 VBAが使えるか .】 はい・いいえ
【 VBAでの回答  】 可・否
【 検索キーワード 】 Googleやヘルプでの検索キーワード

前スレ
Access総合相談所 其の19 【桐にしとけ】
http://pc11.2ch.net/test/read.cgi/bsoft/1216293538/

桐はこちら↓
管理工学研究所「桐」【4】
http://pc11.2ch.net/test/read.cgi/bsoft/1100708378/
2名無しさん@そうだ選挙にいこう:2009/01/03(土) 17:30:28
ACCESS2000総合相談所
http://pc.2ch.net/bsoft/kako/965/965614164.html
ACCESS総合相談所 その2
http://pc.2ch.net/bsoft/kako/1007/10079/1007987001.html
ACCESS総合相談所 その3
http://pc.2ch.net/bsoft/kako/1019/10190/1019087338.html
ACCESS総合相談所 その4
http://pc.2ch.net/bsoft/kako/1027/10274/1027491281.html
ACCESS総合相談所 その5
http://pc.2ch.net/bsoft/kako/1033/10331/1033182163.html
ACCESS総合相談所 その6
http://pc2.2ch.net/bsoft/kako/1037/10378/1037856185.html
ACCESS総合相談所 その7
http://pc2.2ch.net/bsoft/kako/1043/10439/1043996834.html
ACCESS総合相談所 その8(消息不明です)
http://pc2.2ch.net/bsoft/kako/1051/10516/1051630268.html
ACCESS総合相談所 その9(消息不明です)
http://pc2.2ch.net/test/read.cgi/bsoft/1061828549
ACCESS総合相談所 その10
http://pc5.2ch.net/test/read.cgi/bsoft/1075378966/
ACCESS総合相談所 その11
http://pc5.2ch.net/test/read.cgi/bsoft/1089812359/
ACCESS総合相談所 その12
http://pc8.2ch.net/test/read.cgi/bsoft/1106963038/
ACCESS総合相談所 その13 【桐にしとけ】
http://pc8.2ch.net/test/read.cgi/bsoft/1121055646/
ACCESS総合相談所 その14 【桐にしとけ】
http://pc8.2ch.net/test/read.cgi/bsoft/1128486351/
ACCESS総合相談所 その15
http://pc8.2ch.net/test/read.cgi/bsoft/1142586697/
ACCESS総合相談所 その16 【桐にしとけ】
http://pc11.2ch.net/test/read.cgi/bsoft/1157195290/
3名無しさん@そうだ選挙にいこう:2009/01/03(土) 17:31:51
ACCESS総合相談所 その17 【桐にしとけ】
http://pc11.2ch.net/test/read.cgi/bsoft/1175943813/
ACCESS総合相談所 その18 【桐にしとけ】
http://pc11.2ch.net/test/read.cgi/bsoft/1198885955/
4名無しさん@そうだ選挙にいこう:2009/01/03(土) 17:52:17
FAQ
Q1) Access で累計や残高を計算するのにはどうすれば良いですか?
A1) 桐にしとけ。Accessでは、9500レコードまでならばDAOrecordset作って先頭から逐次計算していけば出来ます。
5名無しさん@そうだ選挙にいこう:2009/01/03(土) 19:14:20
 今だ>>4ゲットオォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧∧   )      (´⌒(´
  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
        ̄ ̄  (´⌒(´⌒;;
      ズザーーーーーッ
6名無しさん@そうだ選挙にいこう:2009/01/03(土) 19:28:50
>>4

どうでもいいが、その9500レコードって共有ロック数の規定値の問題なんじゃないのか。
7名無しさん@そうだ選挙にいこう:2009/01/03(土) 20:21:47
確か、ここの過去スレ保存してる所あったよね?
8名無しさん@そうだ選挙にいこう:2009/01/04(日) 07:48:52
すれ違い気味ですが、あるフォルダにあるアクセスのファイルを(フォームをと通して)参照、
更新は可能で、ファイルそのもの自体のコピーを不可にすることができるでしょうか?
9名無しさん@そうだ選挙にいこう:2009/01/04(日) 09:03:31
後半だけなら可能なのか?
10名無しさん@そうだ選挙にいこう:2009/01/04(日) 17:38:24
>>8
AccessとゆーよりOSの話だけど、原理的に無理と思われ。
参照する時点でファイル丸ごとクライアントにコピーしてるみたいなもんだから。
すなおにサーバ系DBを使ってください。
11名無しさん@そうだ選挙にいこう:2009/01/04(日) 18:06:20
>>8
フォームからしか開けない形で(工夫がいるが)パスワード設定しとけよ
Access2007のパスワードは未だ破られてないぞ
128:2009/01/05(月) 14:28:50
レス下さった方ありがとうございました。
参考にさせて頂きます。
13名無しさん@そうだ選挙にいこう:2009/01/08(木) 11:54:01
xp sp2 access2003 VBA可(初心者)

明細画面のヘッダ部にソート可能な機能を付加しているんですが、
何度もソートを繰り返していると「これ以上クエリを開けません」といったエラー
メッセージが出てしまいます。
これを解消する方法は(クエリの開放?みたいな命令・・)ないでしょうか?

コードは以下のような感じです(ソートボタンを押したタイミングです)

rs.sort = "AAAA"
set rs = rs.openrecordset
set me.recordset = rs
me.requery

初心者丸出しの質問で恐縮ですが、宜しくお願いします。
14名無しさん@そうだ選挙にいこう:2009/01/08(木) 13:54:55
質問です、以下に登場するmdbファイルはアクセスのファイルですか?

184 名前:非公開@個人情報保護のため[sage] 投稿日:2009/01/08(木) 13:48:22
http://www.dotup.org/uploda/www.dotup.org0717.jpg
こんなのとか

185 名前:非公開@個人情報保護のため[] 投稿日:2009/01/08(木) 13:50:16
特許庁非公開内部情報を補助金ゴロの岡田ちゃん(誰かの息子)が所持・流出させてる件に付いて、御意見くださいませ<m(__)m>
--------------------------

【過去最大のつこうた】IPA職員が、11歳ハメ撮り動画をDL&大企業情報流出★77【眉も曇らす】
http://tsushima.2ch.net/test/read.cgi/news/1231385809/507

507 名前: すずめちゃん(東京都)[] 投稿日:2009/01/08(木) 13:21:49.87 ID:IpWrArXx ?PLT(17000)
http://img.2ch.net/ico/nida2.gif
>>373
あれれ〜

なんで公開前にファイルを入手してるのかなぁ?

http://www.dotup.org/uploda/www.dotup.org0726.jpg
http://s01.megalodon.jp/2009-0108-1335-37/www.dotup.org/uploda/www.dotup.org0726.jpg

186 名前:非公開@個人情報保護のため[] 投稿日:2009/01/08(木) 13:52:18
>>184
http://s01.megalodon.jp/2009-0108-1351-30/www.dotup.org/uploda/www.dotup.org0717.jpg
15名無しさん@そうだ選挙にいこう:2009/01/08(木) 18:02:39
>>13
ソートボタン_Click()の中で変数:rs を宣言されていると思いますが、
最後に rs の廃棄はされてますか?(DatabaseObjedtも同様)

Set rs=Nothing
Set db=Nothing
16名無しさん@そうだ選挙にいこう:2009/01/08(木) 20:38:14
教えてください。初心者で、つい1週間前から会社でアクセスを使い始めました。

今日、アクセスが強制終了してしまい、その後、データが壊れていますとメッセージが
でるようになってしまいました。
メッセージによると、コピーを作って、ツールから最適化と修復ボタンを押せと
言っているのですが、受け付けません。

これはもうだめでしょうか?

アクセス2003で、OSはわかりません。データは会社のサーバーに入れてありました。
よろしくお願いします。
17名無しさん@そうだ選挙にいこう:2009/01/08(木) 20:57:55
1813:2009/01/08(木) 21:57:19
>>15
レスありがとうございます。

ソートボタン_Click()の中でrsを破棄してませんでした。
今は抽出条件入力画面→明細画面という形をとっているため、
変数rs(dbも)は外部変数で定義しています。
rsの破棄は、抽出条件入力画面フォームを閉じたときに行っていました。

頂いたレスに関して質問したいことがあるのですが、
ご指摘にあるように、ソートボタン_Click()の中で破棄するような形でいろいろ
試した後に改めて質問させてください。
その時にまたご教授いただけると助かります・・・


19名無しさん@そうだ選挙にいこう:2009/01/08(木) 22:21:03
>>17さん回答ありがとうございます。
サイトを読むと修復不可能かもしれません。
ところで.ldbファイルとは隠しファイルですか?出来るとしたら、データベースと
同じフォルダ内にできるのでしょうか?

とにかく、明日やってみます。
20名無しさん@そうだ選挙にいこう:2009/01/08(木) 22:37:26
>>19
ldbファイルはロックファイルでmdbファイルと同じフォルダに作られます。
複数ユーザーが同時にmdbを使用している時に使用されるファイルなので
今回の場合は削除してしまって構いません。
21名無しさん@そうだ選挙にいこう:2009/01/09(金) 14:09:18
明細行表示フォームで、各明細行の項目1つを入力していき、
保存ボタンが押されたタイミングでテーブルを更新したいんですが、
そんなことできますでしょうか?
現在だと入力後、カーソルを移動させたら自動で保存されちゃいます・・・

xpで2003を使ってます。
22名無しさん@そうだ選挙にいこう:2009/01/09(金) 18:03:59
>>21
簡単にはできない。相当頑張ればできる。・・・と思います。
23名無しさん@そうだ選挙にいこう:2009/01/09(金) 18:08:34
>>21
> 明細行表示フォームで、各明細行の項目1つを入力していき、
> 保存ボタンが押されたタイミングでテーブルを更新したいんですが、
普通に、保存ボタンのクリックイベントにマクロでも設定して書き込めば良いじゃん

> 現在だと入力後、カーソルを移動させたら自動で保存されちゃいます・・・
連結コントロールだからでしょ、プロパティのコントロールソースを削除
24名無しさん@そうだ選挙にいこう:2009/01/09(金) 19:36:26
Access2002で作成したmdbがあるんですが、
これを他のVistaPCに2007Runtimeを入れて
使用することはできるんでしょうか?

要約すると、
1.Vistaに対応していないAccess2002のmdbが動くか
2.2007Runtimeには下位互換性があるのか
です。
25名無しさん@そうだ選挙にいこう:2009/01/09(金) 20:02:39
>>24
桐にしとけば、そういう心配は要らんぞ
26名無しさん@そうだ選挙にいこう:2009/01/09(金) 22:45:16
>>24
ランタイムじゃないけど、2002でつくったmdbが2007でエラー出まくってる。
ものによっては普通に動くかもしれないな。
27名無しさん@そうだ選挙にいこう:2009/01/10(土) 04:00:24
>>24
この辺りが参考になるかもしれません。
ttp://technet.microsoft.com/ja-jp/library/cc178973.aspx

まぁ、複雑なものほどエラーが発生する可能性は高いと思いますが・・・
2821:2009/01/10(土) 08:52:56
>>22
>>23
レスありがとうです。
これからいろいろ調べて見ます。
29名無しさん@そうだ選挙にいこう:2009/01/10(土) 13:06:23
日本は1400年前から官僚国家・役人天国、役人が一般人を支配する国だ
戦争に負けても、社会党が政権とっても、変わらなかった、今後も永遠に変わらん

おまえら一般人は、せっせと働いて年貢を納めてろ!
30名無しさん@そうだ選挙にいこう:2009/01/10(土) 20:29:31
>>26>>27
レスありがとうございます。
う〜ん、やっぱ試してみるしかないですね。
31名無しさん@そうだ選挙にいこう:2009/01/11(日) 17:22:40
16です。
やはりファイルの修復はだめでした。なんとかデータだけエクセルファイルでひろうことが
できたのが救いです。
みなさんいろいろ教えてくださってありがとうございました!
32名無しさん@そうだ選挙にいこう:2009/01/11(日) 20:30:54
>>31=16
お疲れ様でした。
今後、データを救うことができない破損にも遭遇するかもしれません。
定期的なバックアップを是非とも行いましょう。
33名無しさん@そうだ選挙にいこう:2009/01/12(月) 12:54:16
フォーム上のテキストボックスに入力した数値を
テーブル上の項目の値に加算したいんだけど
update文の中でテキストボックスの値を指定するのってどうしたらできるんでしょうか
34名無しさん@そうだ選挙にいこう:2009/01/12(月) 14:02:57
>>33
少しずつ意味合いは異なりますが
Me.TextBox1.Text
Me.TextBox1.Value
Forms!Form1!TextBox1.Text
Forms!Form1!TextBox1.Value

この辺りを使って、
QueryString = "UPDATE table1 SET field1 = field1 + " & Me.TextBox1.Text
のようにすれば宜しいかと。
※テキストボックスの内容が数値以外だった場合も考慮するとよりベターです。
35名無しさん@そうだ選挙にいこう:2009/01/12(月) 16:39:08
>34
ありがとうございます。
もうすこし詳しくいうと

倉庫(在庫)テーブル(倉庫TBL)
ID、棚ID、商品ID、個数、入庫日時、出庫日時、出庫フラグ

商品(箱)テーブル(商品TBL)
ID、商品名

棚テーブル(棚TBL)
ID、名前、位置情報(メモ)

のようなテーブルを用意して入庫、出庫、空棚検索、入出庫履歴などの
機能を作りこみたいわけなんですが、

ある箱を出庫したときにその箱を出庫済みにする(出庫フラグをfalseにする)処理と
特定の商品が入っている棚をリストアップする処理に、
どうしても出庫した箱を入力するテキストボックスや、検索したい商品IDを入力するテキストボックスと
そこにはいった文字をもとにしたクエリが必要になるなあと思ったんですよ。

クエリのところでそういうSQLを書いて、ボタンを押されたときにそのクエリ
を呼ぶようにすればいいんですよね?
素人ですみません
3634:2009/01/12(月) 17:53:43
>>35=33
多少のVBAの知識と、最低限のDAOもしくはADOの知識を前提に
レスしてしまいました。(クエリで前述のSQL文をそのまま書いても動作しません)

作り込みたい内容はよく分かりましたので、下記HPなどを参考に
1つずつ実現していってはどうでしょうか?(一度に欲張らずにコツコツと)

ttp://www.accessclub.jp/index.html
左側にあるリンク、VBA物語,DAO入門講座,ADO入門講座あたりが良いと思います。
37名無しさん@そうだ選挙にいこう:2009/01/13(火) 20:32:25
フォームの入力エリア(テキストエリア?)についてなんですが
この入力エリアに入力される文字数を64文字とか制限する設定は
どこでしたらよいのでしょうか?
38名無しさん@そうだ選挙にいこう:2009/01/13(火) 21:39:07
>>37
入力規則
細かく制御するならKeyPressイベント
39名無しさん@そうだ選挙にいこう:2009/01/13(火) 21:41:22
連結するフィールド長を64にすればいいんじゃね?
そうでなければVBAでコード書くか
40名無しさん@そうだ選挙にいこう:2009/01/13(火) 23:02:10
>>37
桐にしとくと簡単だよ
41名無しさん@そうだ選挙にいこう:2009/01/13(火) 23:46:21
いままで動いていたシステムが、急に動かなくなった。
調べてみると、Replace関数でエラーが出てる。
新しく作りなおしても、Replaceが機能しない。

Accessの修復インストールするか・・・
42名無しさん@そうだ選挙にいこう:2009/01/13(火) 23:54:26
俺なら更新後処理で
Me!テキスト = Left(Me!テキスト, 64)
43名無しさん@そうだ選挙にいこう:2009/01/14(水) 22:22:34
> 41
作った環境と今使用している環境が違うんじゃないの?
44名無しさん@そうだ選挙にいこう:2009/01/14(水) 23:27:55
数種類のバージョンが混在した環境なのかも。
Replace関連のエラーというと2000あたりだろうか。
45名無しさん@そうだ選挙にいこう:2009/01/15(木) 16:21:07

Like演算子の使い方がうまくいかないのですが・・・・
rs = db.OpenRecordset(stspl, dbOpenDynaset) を実行したときに

実行時エラー3075
クエリ式 '名称_カナ Like *アイウ*'の演算子がありません。
というエラーが起こってしまいます。

stsqlは以下のような文字列になっているのですが、何処かおかしいところがあるでしょうか・・・?
"SELECT * FROM T001 WHERE 名称_カナ Like *アイウ*"
46名無しさん@そうだ選挙にいこう:2009/01/15(木) 16:33:20
*アイウ* をシングルクォートで囲んで下さい。
4745:2009/01/16(金) 07:39:23
>>46
すみません、ありがとうございました。
48名無しさん@そうだ選挙にいこう:2009/01/16(金) 13:16:57
Access2000で作成したADPをAccess2003で開くと(または変換すると)、
レポートの入力パラメータの記述が途中で切れてしまう(もしくは空白)症状が
確定現象として発生しております。

このような症状の改善策をご存知の方はいらっしゃいますでしょうか?
49名無しさん@そうだ選挙にいこう:2009/01/18(日) 11:47:07
50名無しさん@そうだ選挙にいこう:2009/01/18(日) 21:24:11
例えばフォームでその日の最高値を表示させるのはどうしたらいいですか
51名無しさん@そうだ選挙にいこう:2009/01/18(日) 21:30:15
仮定の質問には答えられません
貴方達とは違うんです
52名無しさん@そうだ選挙にいこう:2009/01/18(日) 21:40:36
すいません

たとえば一つのテーブルに日付と100からの番号があるとして
その日の最終番号の次の番号をテキストに表示させたいんです
53名無しさん@そうだ選挙にいこう:2009/01/18(日) 21:44:32
Dmax()+1
とか
54名無しさん@そうだ選挙にいこう:2009/01/18(日) 21:47:43
ありがとうございます。
でも、日付別がわかりません
たとえば、日付のテキストが同じ
フォーム上にあるとして

毎日100から連番を取るんです
55名無しさん@そうだ選挙にいこう:2009/01/18(日) 21:49:24
Dmax() のカッコ内にexper 指定する、ヘルプで調べて勉強して
56名無しさん@そうだ選挙にいこう:2009/01/18(日) 22:03:28
有難うございます
何とかなりそうです
貴重な時間をありがとうございました。
57名無しさん@そうだ選挙にいこう:2009/01/18(日) 22:06:13
>>56
ゴメン、書き違い
experじゃなくcriteriaね
58名無しさん@そうだ選挙にいこう:2009/01/18(日) 23:05:06
ありがとうございます
今格闘中です
59名無しさん@そうだ選挙にいこう:2009/01/19(月) 09:00:27
xp sp2 2003 VBA可です。

非連結の単票フォームでマスタの登録画面を作っています。
保存ボタンを押したあと、採番されたID(オートナンバー)を表示させたいのですが、
IDの値を取得する一番簡単は方法は何でしょうか?
DAOでrs.AddNew 、 rs.Updateを使っています。
宜しくお願いします。
60名無しさん@そうだ選挙にいこう:2009/01/19(月) 12:17:16
連結のテキストボックスを作っといて、それのコントロールソースを…
61名無しさん@そうだ選挙にいこう:2009/01/19(月) 12:59:51
>>60
ああ・・・なるほど、非表示で。
ありがとうございました。ちょっと試してみます。
62名無しさん@そうだ選挙にいこう:2009/01/19(月) 13:06:41
>>59
rs.AddNewを実行した段階でオートナンバー型の採番が行われますので、
AddNew後であれば rs からIDの取得が可能です。

AddNew→ IDを表示→ 入力を行って→ Update
63名無しさん@そうだ選挙にいこう:2009/01/19(月) 13:09:29
>>62
そうなんですか!
ありがとうございます。
64名無しさん@そうだ選挙にいこう:2009/01/20(火) 14:55:23
単票フォームに入力された値を全てクリアする
コードってあったらおしえてください。
me.aaa.value=null
me.bbb.value=null



とかやってて悲しくなってきました・・・・
65名無しさん@そうだ選挙にいこう:2009/01/20(火) 14:58:22
For each control in ホニャララ

つーか桐にしとけばファミリって使えるぞ
66名無しさん@そうだ選挙にいこう:2009/01/20(火) 15:14:50
>>65
ありがとうございました。使い方を調べてみます。
67名無しさん@そうだ選挙にいこう:2009/01/21(水) 09:52:37
オプショングループでオプションボタンを2つ作成したのですが、
ソースの中でlockedとかをコントロールしていたら、
フォームを開いた時点でボタンを選択すると黒塗りが移動しなくなってしまいました。
(選択されたボタンのイベント自体は動作しています)
原因の対処方があれば教えて下さい。


68名無しさん@そうだ選挙にいこう:2009/01/21(水) 10:44:20
特許庁のシステムとか、西武百貨店のシステムとか、三井リハウスのシステムとか
アクセス→QSLサーバー接続で作ったシステムです
それぞれ、プロが数千万円の助成金で作ったシステムです

見本としてドゾー

469 名前: すずめちゃん(アラバマ州)[sage] 投稿日:2009/01/21(水) 10:37:01.88 ID:dHGJSy0O
ほれ全部うpした 解凍したら6Gになるから
http://ipa-giwaku.com/filebank/3.rar
拡張子.dbxは下のフリーソフト使えば見れるようになるよ
http://www.asahi-net.or.jp/~tz2s-nsmr/soft/dbxview/ne03ws.htm
拡張子.mdbはエクセルで開ける

パスは DD`(4Y か test で だいたい開ける それでもダメなら報告してね
まずかったら消す
69名無しさん@そうだ選挙にいこう:2009/01/21(水) 11:58:12
もろうていいの?
70名無しさん@そうだ選挙にいこう:2009/01/21(水) 14:31:59
…はむぅ('ω'`)
71名無しさん@そうだ選挙にいこう:2009/01/21(水) 16:16:15
>>68
分割してダウンロードしやすいのはコッチ

特許庁のシステムとか、西武百貨店のシステムとか、三井リハウスのシステムとか
アクセス→QSLサーバー接続で作ったシステムです
それぞれ、プロが数千万円の報酬や助成金で作ったシステムです
プログラム作成のお勉強見本としてドゾー

http://www.megarotic.com/jp/?d=5QJSGGIV
http://www.megarotic.com/jp/?d=Y6UWMAXE
http://www.megarotic.com/jp/?d=XL71JT2W

基本はnews
72名無しさん@そうだ選挙にいこう:2009/01/21(水) 20:02:59
QSLが気になって仕方ない
73名無しさん@そうだ選挙にいこう:2009/01/22(木) 12:50:24
>>71
スゲーーー
74名無しさん@そうだ選挙にいこう:2009/01/22(木) 12:59:08
もろうた♪
オススメどれ?
75名無しさん@そうだ選挙にいこう:2009/01/22(木) 14:42:01
抽出条件入力フォーム→明細表示フォームという感じのを作っているのですが、
明細フォームに追加したソート機能を実行した場合、
戻るボタン押下後、抽出条件入力フォームへ戻るとき処理時間が5秒程かかってしまいます。
明細画面でソートを行わなかった場合は1秒もかかりません。
上記現象を解消する方法があったらおしえてください。

me.orderby = "AAAA"
me.orderbyon = true
を使っています。
7675:2009/01/22(木) 14:46:16
補足です。

戻るを押したとき、「検索キーが見つかりません」とかメッセージが出てきました・・・
77名無しさん@そうだ選挙にいこう:2009/01/22(木) 17:13:48
特許庁も西武もフォームとかは手抜きだなぁ、お役所仕事は楽で良いわ
78名無しさん@そうだ選挙にいこう:2009/01/22(木) 17:30:04

日本は1400年前から官僚国家・役人天国、役人が一般人を支配する国だ
戦争に負けても、社会党が政権とっても、変わらなかった、今後も永遠に変わらん

おまえら一般人は、せっせと働いて年貢を納めてろ!

支配して甘い汁吸ってる側は、地縁・血縁・遠縁で繋がってるんだよ
一般人が、今頃それに気付いても、ビクともせんわ

働け、働け、年貢を納めろ
79名無しさん@そうだ選挙にいこう:2009/01/22(木) 20:10:51
656 名前: すずめちゃん(アラバマ州)[sage] 投稿日:2009/01/22(木) 20:09:35.67 ID:QCEQrtFA
流出ファイルうpしておいた パスは 135 ね 
解凍したら全部で6Gあるから注意してね
http://ipa-giwaku.com/file1.html
http://ipa-giwaku.com/file2.html
両方DLしてから解凍してくれ

拡張子.dbxは下のフリーソフト使えば見れるようになるよ
http://www.asahi-net.or.jp/~tz2s-nsmr/soft/dbxview/ne03ws.htm
拡張子.mdbはエクセルで開ける 起動フォームでテーブルがブロックされるものは、シフトキー押しながら起動で解除してテーブル見る

中のファイルのパスは DD`(4Y  か test で だいたい開ける それでもダメなら報告してね
80名無しさん@そうだ選挙にいこう:2009/01/22(木) 23:17:42
xp sp2 access2003 VBA可
フォーム内にサブフォームをデータシートビューでクエリを
表示、編集可能な状態にしていて
更新、追加、削除のどの動作にも問題はないのですが、一点だけ、
サブフォーム内上段の項目名のフィルタになる部分を押すと
「クエリー式'[ID]'=の構文エラー」となってしまいます

理由が分かる方いらしたら教えてください。
81名無しさん@そうだ選挙にいこう:2009/01/22(木) 23:51:42
フォームでAND,OR,NOT検索ができるボタンをつくりたいのですが、
どなたかやり方を教えていただけないでしょうか。
イベントのビルドのところのプログラムで、Filterを使えばいいということはわかっています。
82名無しさん@そうだ選挙にいこう:2009/01/23(金) 07:49:06
ACCESでデータベースを作っていますが、
SQLで書くのではなく、OPENQUERIY使ってクエリを読み込ませる形で検索するようにしてるんですが、
これってよくないのでしょうか?
SQL書くより楽だし、変更があったとき、クエリを入れ替えるだけなのでやりやすいのですが。
ただしソフト開くと中はクエリだらけです。
83名無しさん@そうだ選挙にいこう:2009/01/23(金) 07:49:45
OPENQUERIYでなはく、openqueryでした。すみません。
84名無しさん@そうだ選挙にいこう:2009/01/23(金) 13:03:16
>>75
フォームやコードの詳細が分からないので何とも言えませんが、
抽出条件フォームに戻る際にソートを解除してから戻ってみては?

>>80
エラーをそのまま解釈すると、[ID]と比較する抽出条件が
設定されていないように思いますが。

>>81
[Access Filterプロパティ]でぐぐると多数サンプルが出てきます。
要はVBAを使ってFilterプロパティに条件式を設定すればOKです。

>>82
別に悪くないと思いますよ。
保存されたクエリを実行した場合のメリットもありますし
後は保守性や好みの問題でしょう。(自分はVBA中にSQLを書く派です)
85名無しさん@そうだ選挙にいこう:2009/01/23(金) 13:20:24
特許庁のデータベースたいしたことないな、俺でも作れるわ。
8681:2009/01/24(土) 00:50:25
ありがとうございます。
87名無しさん@そうだ選挙にいこう:2009/01/24(土) 01:06:56
AC2000:
フォームのラベルで
"&"が正しく表示されません
どげんしたらよかとですか
88名無しさん@そうだ選挙にいこう:2009/01/24(土) 02:49:04
>>87

&&
8982:2009/01/24(土) 07:38:14
>>84
ありがとうございました。
気になっているのは、他の会社でも自分みたいなやり方で作っているのかどうかということです。
当方社内SEですが、転職したことがないので他の会社のスタンダードな作り方がわかりません。
やっぱスタンダードはVBA中にSQLを書くやり方なんでしょうか?

もし、転職した際クエリを読み込ませるといった、こういった作り方してたら笑われるのではないかと。
個人で使うACCESSでなく、部署内で使うACCESSに対してこういったクエリを読み込ませるやり方で作っています。
9075:2009/01/24(土) 07:43:58
>>84
ありがとうございます。早速試してみます。
9187:2009/01/24(土) 09:37:01
>88
ありがとう!
92名無しさん@そうだ選挙にいこう:2009/01/24(土) 14:22:21
>>89=82
動的にクエリの形式が変化する場合など、VBA中にSQLを書かざるを
得ないケースもありますね。
あと共同で作業を行う場合は一定のルールを設けておいた方が効率的です。
その意味で標準は‘作法’みたいなもので会社によって様々だと思います。
郷には入れば郷に従え。
93名無しさん@そうだ選挙にいこう:2009/01/24(土) 16:05:00
>>92
そうですか、ありがとうございました。
94名無しさん@そうだ選挙にいこう:2009/01/25(日) 12:04:53
476 名前: すずめちゃん(アラバマ州)[sage] 投稿日:2009/01/25(日) 12:02:20.71 ID:pNrDVo49
解析班のために岡ちゃんが流出させた上のファイル全部うpしとく
パスは 135 ね
解凍したら全部で6Gあるから注意してね ウイルス削除済み
(p)http://www.adrive.com/public/7d08fe24675fa758db8ab29ba4cae136e10a2d9958ce415d2f248de84871eb52.html
(p)http://www.adrive.com/public/a300a6e3cecf155dda7f8c1843a9280da156b41119f79d58644217407ad6652d.html
(p)http://www.adrive.com/public/002efa3ac3b17864e3839888a0de348b1c565c1f24f226e403086491af4adb71.html
(p)http://www.adrive.com/public/945451d37fe9b7c3e609f5915f7abf0c9afaa1d78149ede318b38ac1724a79bc.html
負荷分散のため分けた。
全部同時にDLすれば早いぞ1時間位 全部DLしてから解凍してくれ

拡張子.dbxは下のフリーソフト使えば見れるようになるよ
(p)http://www.asahi-net.or.jp/~tz2s-nsmr/soft/dbxview/ne03ws.htm
拡張子.mdbはエクセルで開ける 起動フォームでテーブルがブロックされるものは
シフトキー押しながら起動で解除してテーブル見る

中のファイルのパスは DD`(4Y  か test で だいたい開ける
それでもダメなら報告してね 皆で解析するからw
後、個人情報を悪用したらダメだよw解析用だけにつかってねw
95名無しさん@そうだ選挙にいこう:2009/01/26(月) 10:18:08
西武百貨店のDB凄いな
96名無しさん@そうだ選挙にいこう:2009/01/27(火) 09:48:02
自分でメニューバーを作成して、そこに「印刷(標準のメニュー)」を追加したんですが、
これを選択するといきなり印刷がはじまってしまいます。
いったん設定画面(ページ数とかページ指定の画面)を表示したいのですが、どうすればいいでしょうか?
ちなみにショートカット(ctr+p)だと設定画面が表示されます。
97名無しさん@そうだ選挙にいこう:2009/01/27(火) 13:03:25
>>96
「印刷」ではなくて「印刷プレビュー」を使う。
98名無しさん@そうだ選挙にいこう:2009/01/27(火) 14:29:11
当方XP SP2、2003、VBA可です。
明細画面の画面の大きさ(1明細の幅、高さではありません)って何処で指定するんでしょうか?
開いた時の明細表示数を多くしたいんです。
99名無しさん@そうだ選挙にいこう:2009/01/27(火) 15:03:02
>>98
どこまでやりたい?
全画面でいいなら、開くときにでも
DoCmd.Maximize
を入れてやれ。
100名無しさん@そうだ選挙にいこう:2009/01/27(火) 23:39:03
>>98
モニターを買い換える
101名無しさん@そうだ選挙にいこう:2009/01/28(水) 08:04:10
>>100

同じインチ数の、若しくは画面サイズはすこし大きいがワイド画面を(ry
10298:2009/01/28(水) 08:16:33
>>99
ありがとうございます。
全画面はちょっとあれなんですが、開くときにサイズ変えてやればいいんですね。

>>100
それはちょっと・・・
103名無しさん@そうだ選挙にいこう:2009/01/28(水) 15:03:01
DAOを使うときのrs変数の宣言場所なんですが何処が理想なんでしょうか?
自分の場合、検索条件入力画面→明細表示画面(ソート機能付き)というのを作った場合、
外部変数(ex_rs)として1つ宣言。あとソートボタンがおされた時にそのプロシージャ内でローカル宣言(l_rs)後、
Set l_rs = ex_rs
l_rs.sort = "XXXXX"
set rs = l_rs.OpenRecordset
set Me.OpenRecordset = l_rs
me.Requery
set l_rs = nothing
という風にやってます。

同じよな機能を実装する場合、皆さんも上記のような感じになりますか?
104名無しさん@そうだ選挙にいこう:2009/01/28(水) 15:10:58
Access2003
レポートのテキストボックスで、日付型フィールドに連結しているのがある。
値がNULLのとき「−−−」と表示し、
日付の値のとき「H12/03/04」などと表示するようにしたい。
カスタム書式でなんとかならんかに
105名無しさん@そうだ選挙にいこう:2009/01/28(水) 15:13:01
>>104
> レポートのテキストボックスで、日付型フィールドに連結しているのがある。
106名無しさん@そうだ選挙にいこう:2009/01/28(水) 15:18:08
1日24時間、時間ごとのデータを4カ所入力するとき、エクセルのフィル
みたいにあらかじめ年月日時間を入れておいてから、データだけをキー
ボードから入力したい。初歩の初歩ですがそのやり方が全く分からない。
その都度年月日と時間を入力しないでいい方法を教えてください。

107名無しさん@そうだ選挙にいこう:2009/01/28(水) 15:27:01
>>104
クエリでiif使えば万事解決

↓クエリに追加
日付表示:iif(isnull([日付])=True,"---",[日付])

日付表示のテキストボックスの書式に
ge/m/d
108名無しさん@そうだ選挙にいこう:2009/01/28(水) 15:55:38
ごめん >>107 だと

ge/m/d が反映しないな 2009/01/28 になってしまう

どうしても「H12/03/04」じゃないとだめなの?
109名無しさん@そうだ選挙にいこう:2009/01/28(水) 16:39:16
>>107 Accessスレはレス早いな。ありがたし。

クエリーにした。
>日付表示のテキストボックスの書式に
>ge/m/d
こうするとなぜか西暦になったのでクエリー式でFormat$した。
110名無しさん@そうだ選挙にいこう:2009/01/28(水) 16:40:31
げ。108見落とし。重ね重ねありがたし。
111名無しさん@そうだ選挙にいこう:2009/01/28(水) 16:43:02
>>103
自分は db や rs をなるべく直前に開いて直後に破棄するようにしています。
その方が不慮の強制終了が発生した時にデータ破損のリスクが低くなるような…?

あと2画面を遷移させるのが好みではないので、ヘッダに検索条件入力を装備した
明細表示画面を作ると思います。そうしておいて検索条件やソート条件を変更後、
[表示]ボタンでフォームのRecordSourceに必要なSQL句を再セットしちゃいます。
ソートの度にクエリが実行されるので速度的には不利なんでしょうが面倒が無いのでw

>>104
テキストボックスのコントロールソースを見るとフィールド名が設定されていると
思うのですが、これを細工すれば可能です。(>>107-108さんとは別の方法として…)
(元)hoge
(改)=IIf(IsNull([hoge]),"−−−",Format([hoge],"ge/mm/dd"))

>>106
入力用のフォームを作って、日付入力をするテキストボックスの[定型入力]を
設定すればできるようになります。
112名無しさん@そうだ選挙にいこう:2009/01/28(水) 20:14:28
>>103
rs変数って何?
こんなん普通は通じないよ
別にa変数でも良いわけだし
AccessではよくRecordsetオブジェクトの変数名に
rsがよく使われるから雰囲気で通じてるだけ
113名無しさん@そうだ選挙にいこう:2009/01/28(水) 20:24:38
なんだこいつw
114名無しさん@そうだ選挙にいこう:2009/01/28(水) 20:42:02
何かしらんが>>112、必死だなww
115名無しさん@そうだ選挙にいこう:2009/01/28(水) 20:44:17
Access2002のはがきウィザードでレポートを作ったんですが、
あて先にマンション名などを入れると、町番の前という変な位置で
改行されます。

〜〜県〜〜市〜〜町
1−1−1〜〜マンション

という具合です。
どうにかなりませんでしょうか?ウィザードでは住所1にしか
設定していません。マンションはテーブルの別フィールドに
しないとダメですかね?
116名無しさん@そうだ選挙にいこう:2009/01/28(水) 20:58:58
>>104
書式に「ge/mm/dd;;;−−−」だけでいいんじゃね。
117名無しさん@そうだ選挙にいこう:2009/01/28(水) 23:44:56
「文字列優先項目設定」機能について(桐9-2009aで追加)
電話番号や郵便番号のように、「ゼロ(0)」で始まる数字で構成されているデータをExcelに変換すると、Excelが自動的に数値としてデータを変換し、ゼロが失われてしまいます。
このような場合は、[Excelファイルの書き出し]画面の「文字列優先項目設定」機能を利用して「数字を文字として処理するよう」に設定することで回避することができます。
(「文字列優先項目設定」機能については、「質問と回答」のこちらをご覧ください。)
※指定した項目のデータは、「文字列式(="<値>"の形式)」で変換されます。
118103:2009/01/29(木) 10:00:49
>>111
(いつも?)ありがとうございます。
大変参考になりました。
119名無しさん@そうだ選挙にいこう:2009/01/30(金) 18:48:45
Access2000 から 2007に移行してmdbもaccdbへ変換して場合、
ネットワーク共有時の検索速度が改善されるでしょうか?
今mdbで超遅くて困ってます。
120名無しさん@そうだ選挙にいこう:2009/01/30(金) 21:14:25
>>119
妙な期待はしないでください
121名無しさん@そうだ選挙にいこう:2009/01/30(金) 22:48:19
ほとんどmdbしか使ってないな。
Word、Excelなどと違って古いAccessで2007形式読めないし
これといって目に見えたメリットがない。
122名無しさん@そうだ選挙にいこう:2009/01/31(土) 00:02:07
>>119
2007のネットワーク共有では速度は特に改善されません。
メリットとしては SharePoint と統合できる点でしょうか。
ttp://office.microsoft.com/ja-jp/help/HA100241851041.aspx#collaboration

もし現行の mdb に於いて、抽出に使用するフィールドのインデックスが
作成されていないようでしたらインデックスを作成して様子を見てください。
それでも検索速度に不満でしたら SQL Server の導入を検討しましょう。
123名無しさん@そうだ選挙にいこう:2009/01/31(土) 09:31:00
>>119
設計自体変えない限り期待薄。
どうせ変えるならSQL鯖に移行した方が幸せになれると思うけど。
124119:2009/01/31(土) 11:01:30
みなさんありがとうございます。
速度の改善は無いのですね。
SQL Serverへの移行が結局一番まともな方法と言う事ですね。

ちなみに、mdbをネットワーク共有して使っているのですが1台で使うだけなら
遅くないのに、2台以上で使うといきなり遅くなるのはmdbの問題より設計の
問題の方が原因は大きいですか?
125名無しさん@そうだ選挙にいこう:2009/01/31(土) 11:14:18
クドイなコイツ
126名無しさん@そうだ選挙にいこう:2009/01/31(土) 12:43:41
>>124
処理速度の問題は何がボトルネックになっているのかを見極めなくてはなりません。
例えば「ホームページの閲覧が遅い」という場合でも関連する要素はたくさんありますし、
同じようにファイル共有したmdbの処理が遅い場合でも考慮すべき点はたくさんあります。

一般論として、あるテーブルに関するクエリを実行する際に
・Accessではインデックスがあればインデックスがネットワークを流れる
・Accessではインデックスが無ければテーブル全体がネットワークを(ry
・SQL Serverではクエリの結果だけがネットワー(ry
というような違いがありますが、ファイルサーバーが強力でネットワークが鬼速なら…
(以下、スレ違いにつき省略しますね)
127119:2009/01/31(土) 13:20:01
>>126
単純な話ではないという事ですね。ありがとうございました。


>>125
ごめんね
128名無しさん@そうだ選挙にいこう:2009/01/31(土) 16:25:43
自分のマシンで作ったmdbに、ネットワーク環境にあるmdbからテーブルをリンクさせると、
リンクテーブルだけでなく全てのテーブルが開くのに時間がかかってしまいます。
回避策はありますか?
129名無しさん@そうだ選挙にいこう:2009/01/31(土) 16:48:06
>>128
あなたのPCで作ったmdbを、ネットワーク先のPCにコピーする
130名無しさん@そうだ選挙にいこう:2009/01/31(土) 16:54:48
>>128
もしかしたら、これかな?
Access 2002、Office Access 2003、および Office Access 2007 のリンク テーブルでパフォーマンスが低下する
http://support.microsoft.com/kb/275085/

テーブルのサブデータシート名のプロパティが既定値の[自動]のままだと開くのが遅くなる。
131名無しさん@そうだ選挙にいこう:2009/01/31(土) 17:27:19
レスありがとうございます。

>>129
複数人でネットワーク上のデータを共有し、データの加工は自分の端末で行いたいので、
それはできません。

>>130
リレーションシップは設定していないのですが、その場合も影響があるでしょうか?
132名無しさん@そうだ選挙にいこう:2009/01/31(土) 21:02:47
ランタイムで起動させた時にタスクバーのタイトル名が空欄なのは何故?
ランタイムはファイル名表示できない仕様ですか?
133名無しさん@そうだ選挙にいこう:2009/01/31(土) 21:21:38
>>132
Package Solution Wizard でタイトル指定しなかったの?
134名無しさん@そうだ選挙にいこう:2009/01/31(土) 21:26:54
>>133
Package Solutionで指定できるんですか・・・
それ使ってパッケージ化すればADOの参照設定も指定できるかな。
ありがとうございます。
135名無しさん@そうだ選挙にいこう:2009/02/01(日) 00:08:50
>>131
>126 さんとカブりますが、一口に遅いっつっても、ネットワーク経由で
デカいファイルをコピーしたら常識的にこれくらいはかかってもしょうが
ないよねって線と、明らかに異常って線があるでしょ。まずはそこを
切り分けたほうが良いのでは。
前者ならもう言われているように、サーバ型に移行しないと根本的に無理。
後者なら、サポート情報を徹底的に調べて、該当していたら回避策を
適用してみる。
下の技術情報の関連情報欄にパフォーマンス関連のリンク集があるから、
必要ならそこから当たってみてはどうですか。
ttp://support.microsoft.com/kb/889588/
136名無しさん@そうだ選挙にいこう:2009/02/01(日) 00:16:35
>>135
リンクテーブルを開くのが遅いのは仕方ないと思ってますが、
リンクではない、ローカルのテーブルまで明らかに遅くなるんです。
リンクテーブルを追加するまではすぐに開いていたんですが…
とにかく調べてみます。ありがとうございました。
137名無しさん@そうだ選挙にいこう:2009/02/01(日) 03:18:32
たしかローカルテーブルを開くときも、リンクテーブルをチェックしに行くよ。
Access2000の頃にどっかで読んだ。
クエリをリンクテーブル代わりに使って回避してたみたいだけど。
138名無しさん@そうだ選挙にいこう:2009/02/01(日) 11:36:00
>>137
>クエリをリンクテーブル代わりに使って回避してたみたいだけど。
ここを詳しくお願いします。
テーブルを開くとき、直接開くのではなくクエリから開くということでしょうか?
139名無しさん@そうだ選挙にいこう:2009/02/01(日) 14:08:28
>>128さん
まるで見当違いかもしれませんが、一連のお話をうかがっていると
Accessの問題ではなくネットワークの問題のような気がします。
共有リソースの名前解決に時間が掛かっているような…??

[ネットワークコンピュータ]でブラウズした時の動作は軽快でしょうか?
これが遅ければ>>136のような症状が出るのも納得できるのですが。
140128:2009/02/01(日) 14:39:10
>>139
レスありがとうございます。

ネットワークコンピュータでブラウズとは、
リンクテーブルの置いてあるマシンでテーブルを開いてみる、ということでしょうか?
リンクテーブルの置いてある端末は同じ建物内にはないので
それを試してみるのは難しいです。

ネットワークは、確かに、移転やら何やらしてあまり良い状態とは言えません。
共有リソースの名前解決…
ここら辺は今の自分では手に負えない感じです。
141名無しさん@そうだ選挙にいこう:2009/02/01(日) 15:11:23
>>140
(スレ違いなので小声でやりとりしてると思って下さいw)

同じ建物内ではないと聞いて、ますます名前解決の問題という念が強くなりました。
[ネットワークコンピュータ]→[全てのコンピュータ]→[コンピュータ名hoge]→[共有フォルダhoge]→[hoge.mdb]
この操作が軽快である事が必要です。(正しく設定されていればサクサク動きます)

問題が起きていた場合の解決方法はネットワーク環境に依りますので
[Windows 名前解決]でググってみてください。ヒントが沢山ヒットするはずです。
問題が早く解決するといいですね。
142137:2009/02/01(日) 16:19:23
>>138
リンクテーブル自体を一切作成せず、クエリのSQL文にIn句を使って
外部テーブルを参照(事実上これがリンクテーブルの代わり)してた。
昔そういう事例があったのを見かけたというだけで、同じかどうかは
分かりません。試してみるなら、In句でググってみてはどうですか。
143名無しさん@そうだ選挙にいこう:2009/02/01(日) 16:46:45
>>141
ご指摘の操作を明日試してみようと思います。
>問題が早く解決するといいですね。
ありがとうございます。

>>142
ググってみました。
こういう方法があるとは知りませんでした。

ありがとうございました。
144名無しさん@そうだ選挙にいこう:2009/02/01(日) 19:51:35
>>142
横レス悪いけどそんな方法があるなんて知らなかった。
なんかリンクテーブルって大元のテーブルに変更があっても同期して変わってくれないから
いちいちリンクしなおすのがめんどくさいんだよね。
でもその方法ならそんな手間もなくなりそうだね。有益な情報をありがとう。
145名無しさん@そうだ選挙にいこう:2009/02/01(日) 20:23:01
なんだよ2007のリボンって、邪魔なだけで意味ないんだけど
146名無しさん@そうだ選挙にいこう:2009/02/01(日) 21:19:03
FFだと重要アイテムなのにな
147名無しさん@そうだ選挙にいこう:2009/02/02(月) 10:22:27
Office 2003 Personal (OEM)と Office 2007 Standard アップグレードを持ってるんですが
この状態でAccess 2007のアップグレード版を使うことってできます?

>対象製品は、Microsoft Access 2000~2002、Microsoft Office Access 2003、
> 2000~2007およびXPバージョンのMicrosoft Officeスイート。

調べてみたら↑とあるんですが、Officeスイートに該当すると考えていいですか?
148128:2009/02/02(月) 20:25:05
昨日はいろいろなアドバイスをありがとうございました。
今日試してみた結果を報告します。

[ネットワークコンピュータ]→[全てのコンピュータ]→[コンピュータ名hoge]→[共有フォルダhoge]→[hoge.mdb]
この操作自体は特に遅く感じられませんでした。

また、ネットワークドライブ上の共有mdbからテーブルを開く動作も
ローカルのmdbから開くのとは違ってすぐでした。

あと、>>137さんのIN句でクエリをリンクテーブル代わりにする方法ですが、
不思議なことにすぐ開くようになりました。ワークテーブルもです。

どうしてこのような現象が起こるのか理解しきれない部分はありますが、
回避策が見つかって助かりました。
ありがとうございました。
149名無しさん@そうだ選挙にいこう:2009/02/03(火) 00:12:19
>>148
>>130 は試さなかったの?
150名無しさん@そうだ選挙にいこう:2009/02/03(火) 02:04:09
いま会社のデータベースは97で運用しています。
最近VISTAのPCが入ったので97をインストールはできたのですが
テーブルからもデータを表示することができないです。
対処法としてどういった方法があるのでしょうか?
会社の他のパソコンはXPです。
151名無しさん@そうだ選挙にいこう:2009/02/03(火) 03:10:15
>>147
出来ない。
そこに書いてあるOfficeはStandardじゃなくてProfessional版のことだね。
152名無しさん@そうだ選挙にいこう:2009/02/03(火) 07:44:53
>>149
突っ込みどうもです。
今日試してみます!
153名無しさん@そうだ選挙にいこう:2009/02/03(火) 18:41:00
>>150
Vistaで公式サポートされてるのは2003以降の筈。
XPのPCに2003or2007入れて変換したらいいんじゃない?
でもバージョン飛ぶからテーブルデータを除いた部分
(特にVBA周りとか)は正常動作しない可能性あるけど。
154名無しさん@そうだ選挙にいこう:2009/02/03(火) 20:25:17
>>147
全く問題ナシ。インストールできるよー。
155128:2009/02/03(火) 21:00:45
>>130を試してみましたので報告します。

参考に貼っていただいたurl先での説明には、原因として
>データベース内に多くのリンク テーブルが存在し、それらのテーブルに多くのリレーションシップが含まれていて、
とありますが、リレーションシップのあるなしは関係無いようです。

問題のmdbにはリレーションシップは一つも設定していませんが、
サブデータシート名を[自動]から[none]に変更すると、ワークテーブルに限り
すぐ開くようになりました。リンクテーブルには変化が見られませんでした。

なので、すべてのテーブルの動作を早くしたい場合にはIN句で、
ワークテーブルだけでよい場合にはサブデータシート名のプロパティを変更するのがお勧めです。
(↑環境によって違いがあるかもしれませんが…)
IN句を使うと、リンクテーブルマネージャで貼り替えできなくなるので、ちょっと注意が必要です。

どうもありがとうございました。
156名無しさん@そうだ選挙にいこう:2009/02/03(火) 22:04:06
ひょっとしてaccdeに変換ってコンパイルエラー全部取らないとできない?
だとしたら苦行すぎる・・・。
157名無しさん@そうだ選挙にいこう:2009/02/03(火) 23:22:12
2007を持っていないからよくわからんが、
コンパイルエラーがでるものなんか怖くて使えない。
俺だったら、まず最初に潰すエラーだけどな。
論理エラーより見つけるのが簡単だし。
158名無しさん@そうだ選挙にいこう:2009/02/04(水) 17:12:48
曖昧検索をクエリの抽出条件に入れて、データの検索をするフォームを作成してます。
検索フォームのテキストボックスの文字列から、クエリの抽出条件になるようにし、曖昧検索かつブランク時は全部抽出
するようにしてます。
検索ボックスが少ないとうまくいきますが、五つくらいになると「クエリが複雑」となりました。
何か良い方法はないでしょうか。

最終的には10くらいの複数キーワードもしくはチェックボックスで検索したいです。
159158:2009/02/04(水) 17:18:06
失礼しました。テンプレも見てませんでした。

OSはXPでアクセス2000です。
VBAは、ちょっぴりだけ分かります。(非常に簡単な文のみ理解出来ます)
超初心者ですが、ググりながらなんとか曖昧検索の概念は理解できました。

クエリが複数、で調べましたが対処方法がまだ見つかりません。
よろしくお願い致します。
160名無しさん@そうだ選挙にいこう:2009/02/04(水) 21:48:22
複数のクエリは必要なくない?
一つのクエリにOrで10個条件指定する
161158:2009/02/04(水) 22:06:03
複数クエリは不要…なんですか?

今やりたいのは、例えば
●顧客名
●案件名
●処理内容

など、検索フォームに複数の検索ボックスがあります。
顧客名の検索ボックスに入った文字列を、データテーブルの「顧客名」フィールドから抽出するために、「顧客名」フィールドの抽出条件を、『検索フォームの顧客名ボックスのテキストで曖昧検索もしくはテキストがブランクの場合』としています。

同様に、「案件名」フィールドのデータを抽出したいなら、そのフィールドの抽出条件を顧客名と同じように設定しなくては出来ないと思ったんですが…
162158:2009/02/04(水) 22:22:45
すみません、我ながら分かりづらいのでPCから書き直します。

【既にあるもの】
・案件一覧テーブル(案件番号(主キー)、顧客名、顧客住所、案件概要、処理方法、担当部署、担当者氏名、苦情の有無・・・等30項目)
・案件一覧のデータすべてを配置したフォーム
・検索用フォーム(案件番号、顧客名、顧客住所、案件概要、処理方法 という5つのテキストボックスあり)

【やりたいこと】
・クエリで、案件一覧テーブルから案件番号、顧客名、案件概要、処理方法等、主要な部分を10つ抜き出す。
・そのクエリの案件番号、顧客名、顧客住所、案件概要、処理方法というフィールドには抽出条件を入れることにより、
 検索フォームのテキストボックスのテキストを元に、あいまい検索をしたい。

【やったこと】
クエリが以下のようになってます。
 案件一覧テーブル      案件一覧テーブル
 案件番号            顧客名

 抽出条件なし         Like "*" & [Forms]!フォーム名!テキストボックス名 & "*" or [Forms]!フォーム名!テキストボックス名 is null

※顧客名以外のフィールドも同様です

【結果】
4つほどでは、うまく行きました。あいまい検索もでき、検索用のフォームのテキストボックスにテキストがない場合は
全抽出してくれます。

5つになると、複雑すぎて出来ないといわれました。。。

163150:2009/02/04(水) 22:39:01
ACCES2007を入れてみたのですが、開く権限がないので開けません。
みたいな文章がでます。
旧バージョンを開く時はデータベースを使用可能にするとのことらしいのですが、
具体的にどのようにすればよろしいのでしょうか?
164名無しさん@そうだ選挙にいこう:2009/02/04(水) 22:51:26
オプションのセキュリティーセンターだかなんかで
マクロのセキュリティーを低くすればいいかな
165名無しさん@そうだ選挙にいこう:2009/02/04(水) 23:26:17
>>162
条件式、そこはOrじゃなくてAndじゃない?
Orで結ぶのはフィールドごとの条件。

>Like "*" & [Forms]!フォーム名!テキストボックス名 & "*" or [Forms]!フォーム名!テキストボックス名 is null
Like "*" & [Forms]!フォーム名!テキストボックス名 & "*" And Not [Forms]!フォーム名!テキストボックス名 Is Null

さらに、全検索地が空欄の場合に全レコードを出したいなら、
式1:IIF(すべてのテキストボックスが空欄, False, True)というフィールドを
クエリに追加して、 式1=True を他のフィールドの条件と Orで結ぶ。
166名無しさん@そうだ選挙にいこう:2009/02/04(水) 23:36:36
>165さん

条件式はand ですか? orではなく??

データ入力ミスがある場合があり、たとえば担当部署がブランクの場合もあります。
ですので、こちらのイメージは、すべての抽出条件に「検索フォームのテキストであいまい検索する or ブランクのときも検索する」とすれば

<顧客名をブランクにして、担当部署にAというテキストを入れると>
顧客名がブランク(入力ミス)であっても、担当部署がAであればすべて抽出できる

というイメージでした。

or [Forms]!フォーム名!テキストボックス名 is null  を抽出条件に入れてないと、
<顧客名をブランクにして、担当部署にAというテキストを入れると>
顧客名がブランクでないもので、担当部署がAのものがヒットする → 顧客名に入力ミスがあったものはヒットしない

と言うことになりました。

全検索値がブランクの場合でも、もちろん全レコード出したいのですが、上記のようなことをしたいのです。
Andで大丈夫でしょうか?
(すみません、会社にあるアクセスのため、現在試してみることができません)
167名無しさん@そうだ選挙にいこう:2009/02/05(木) 00:01:47
>>166
どう説明すればいいのか、難しいんだけどやってみればわかるw

「入力漏れがあった場合には、そのフィールドにフィルターをかけない」と考えるとわかりやすいかも。
つまり、フィールドの条件が入力されている場合にだけ、フィルターをかける。
だからAnd。
気をつけて欲しいのは、Andの後は Is Null ではなく Not Is Null。

あとは、検索地がまったく入力されていない場合に全件抽出されるように 式1=True を付け加える。
168名無しさん@そうだ選挙にいこう:2009/02/05(木) 00:11:06
クエリをデザインビューでみると構成はこんな感じ。

式1:式1:IIF(すべてのテキストボックスが空欄, False, True)
式2:Like "*" & [テキストボックス] & "*" And Not [テキストボックス] Is Null

項目1 項目2 項目3 項目4 ……  式1
 式2
     式2
          式2
               式2
                   ・
                   ・
                   ・
                        True 
169名無しさん@そうだ選挙にいこう:2009/02/05(木) 00:14:34
一つの条件につき一つクエリを作ってUnionするのがわかりやすいかも。
170名無しさん@そうだ選挙にいこう:2009/02/05(木) 00:14:42
何となく分かってきました!
他条件とORで結ぶ、つまり五個の他条件があれば、五行になるんですよね?

また、調べていたんですが、NZを使うのもありですか?
171名無しさん@そうだ選挙にいこう:2009/02/05(木) 00:21:19
>>170
そうですそうです。

NzでNullを空文字指定すると、そのフィールドを全件引っ掛ける。すると
他条件とは Or で結ばれているので、一つでも未入力のボックスがあると常に全件抽出されてしまう。

たしかにNzを使うとシンプルになりそうなんだけど…。
うまい設定方法を思いつかない。
172名無しさん@そうだ選挙にいこう:2009/02/05(木) 00:30:58
NZを使って、一行に条件を書く(AND)のはだめでしょうか?

あと、最初に書いたやり方(抽出条件を、テキストボックスの文字 OR テキストボックスがNULL)でも4つほどの項目ではうまくいきましたが、本当はダメ?これは、一行にすべて書きました。
173名無しさん@そうだ選挙にいこう:2009/02/05(木) 00:40:03
すみません、そういえば、最初のやり方でやった場合、一度クエリを閉じて開き直すと、一行に書いたはずの条件がすごい行になってました。

アクセスが他のフィールドとORでそれぞれ結び付けてくれたみたいです。

何となく分かって来ました。みなさんありがとうございます!!
174名無しさん@そうだ選挙にいこう:2009/02/05(木) 00:43:12
あー、フィールドごとの条件はOrで結ぶのだと思ってた。
Andで抽出だったんだね。
それならNzで一行にして大丈夫なはず。
最初のも条件の書き方としては大丈夫だと思う。
175名無しさん@そうだ選挙にいこう:2009/02/05(木) 00:54:23
はい、書き方悪くてすみません。

つまり、担当部署がAでかつ、顧客名にドラえもんを含むデータというイメージです。さらに他条件がブランクなら、入力漏れも含めてヒットさせたいんです。

検索条件… 担当部署=A、顧客名=ドラえもん

検索結果…案件番号×××、担当部署A、顧客名ドラえもん、処理内容ブランク…
(ANDなので担当部署Bはヒットしない)
こんな感じに…
176名無しさん@そうだ選挙にいこう:2009/02/05(木) 11:00:47
Access2007テキストインポートでxmlスキーマエラー出て、どうしようもなかったんだけで
いつの間にか直ってる
WindowsVISTAの自動更新で直った模様
177名無しさん@そうだ選挙にいこう:2009/02/05(木) 11:25:48
1明細2段表示の明細フォームで、コマンドボタンを押したとき、
下段の項目を非表示にして、明細行の高さを1段表示ぎりぎり(解除コマンド押下で逆その逆)に
したいのですが、うまくいきません。

以下のようなコーディングです。
me.下段の項目1.visible = false
me.下段の項目2.visible = false
me.下段の項目3.visible = false
me.詳細.height = XX

XXを0にしても下段のフィールドが意識されてるような高さの狭まり方になります。
どなたかご教授ください。

xp sp2 access2003 vba可です。
178177:2009/02/05(木) 13:06:01
自己解決しました。項目自体の高さを低くして対応しました。
もっとスマートな方法があれば教えて下さい。
179名無しさん@そうだ選挙にいこう:2009/02/05(木) 23:37:16
明日目が覚めると自己解決するかも?
180名無しさん@そうだ選挙にいこう:2009/02/06(金) 14:46:37
簡単な顧客管理を作成して、LAN対応の外付けハードディスクから複数の人が使用できるように
してるんですが、1台のPCだけから他人が開いていると開けない状況が発生してこまっています。
ファイアーウォールとかその辺あたりの問題と思っていろいろ調べているのですが、
まだ解決していません。なにか参考になるようなことが有れば教えていただけないでしょうか?
環境は全て、xp sp2 access2003です。
181名無しさん@そうだ選挙にいこう:2009/02/06(金) 17:38:46
access2007を使ってます。
検索や置換の入力欄に、検索や置換をしたい言葉をペーストするにはどうしたらいいですか?
元々貼り付ける等の操作ができないのでしょうか?
182名無しさん@そうだ選挙にいこう:2009/02/06(金) 17:47:18
Ctrl + V
183名無しさん@そうだ選挙にいこう:2009/02/06(金) 17:54:18
>>180
さまざまな原因が考えられます。
試しに、[Access 他のPCから開けない] でググってみたところ参考になりそうなページが
多数ヒットしましたよ。 1つずつチェックしてみてはどうでしょうか?
184名無しさん@そうだ選挙にいこう:2009/02/06(金) 17:58:46
セル内のテキストをコピーして検索の入力欄に貼り付けたのに、
検索しても引っかからないのはなぜでしょう?
185名無しさん@そうだ選挙にいこう:2009/02/06(金) 18:07:53
>>184
末尾に改行コードが入っちゃってるのかも。。。
186名無しさん@そうだ選挙にいこう:2009/02/06(金) 18:16:37
短い単語なら検索に引っ掛かりました。
検索入力欄の文字数(バイト数)制限などがあるのでしょうか?
187名無しさん@そうだ選挙にいこう:2009/02/06(金) 18:23:36
あと、複数の行に同じ数値を貼りつけるといった、エクセルでよくやるような操作は、
accessではどのように操作したらできるでしょうか。
188名無しさん@そうだ選挙にいこう:2009/02/06(金) 19:25:33
>>187
そういうのは桐にしとけ
もしくは、検索と置換のダイアログで我慢
189名無しさん@そうだ選挙にいこう:2009/02/07(土) 10:50:38
2007 でもクエリやフォームの設計をみれないように保護することはできないんですかね?
190名無しさん@そうだ選挙にいこう:2009/02/07(土) 11:08:55
>>189
出来るよ
191名無しさん@そうだ選挙にいこう:2009/02/07(土) 12:37:15
>189 は桐にしとけって。
192名無しさん@そうだ選挙にいこう:2009/02/07(土) 17:47:39
別に2003でも可能じゃないのか
2000でも
2002 だったかで昔試したことあるけど
データベースのインポートで全部見れちゃうようになったように思う


2002の本みながら 2007 使って復習してるんだが
http://tsware.seesaa.net/article/102191758.html
これでかなりつまづいてしまった。
うまく動かせてる人いる?
たとえばフォームで入力/選択されたのをwhere条件にしてレポート開くとかが
うまくできないんだけど。
俺がよくわかってないからなだけかもしれんけど。
195名無し変更議論中@詳しくは自治スレへ:2009/02/08(日) 23:40:06
>>194

> 2002 だったかで昔試したことあるけど
> データベースのインポートで全部見れちゃうようになったように思う

何もせずにそのままならインポートされちゃうのは当たり前だろ

> たとえばフォームで入力/選択されたのをwhere条件にしてレポート開くとかが
> うまくできないんだけど。

Private Sub cmdOpenReport_Click()
If Me.Filter = "" Then
MsgBox "Apply a filter to the form first."
Else
DoCmd.OpenReport "rptCustomers", acViewReport, , Me.Filter
End If
End Sub
とっても単純なことかもしれませんが、クエリで自レコードを参照することはできないでしょうか?

具体的には、フィールドに入力する際のルックアップ(コンボボックス)で、入力中のレコードの他フィールドの値を検索条件にしたいです。
未入力の場合の例外とかは特に考えなくてかまいません。
197名無し変更議論中@詳しくは自治スレへ:2009/02/09(月) 19:08:14
テーブルのルックアップでは多分無理でしょうね(未確認だけど)

どうせ入力はフォームでやるんだからフォーム上のコンボボックスのソースの中の
クエリの条件部分に編集中のテキストボックスを指定してやればできるんじゃないの
(確認はしていないので自分で試してみてね)
198名無し変更議論中@詳しくは自治スレへ:2009/02/10(火) 13:47:41
SQLでクエリ作った時、構文を読みやすい様に整えて書いたのに、一旦閉じるとぐちゃぐちゃになるのは止めて欲しい……
>>198
あれマジでむかつくな
200名無し変更議論中@詳しくは自治スレへ:2009/02/10(火) 22:18:15
SQL文で直接入力するときって、その方法でしかできない場合が多いから改行とかスペースとか
の状態が保存されないと保守が面倒なんだよな
何度もバージョンアップしてるんだから、リボンなんかよりそろそろ何とかしてくれてもいいんじゃないの?
>>200
俺なんか編集用のためだけにテキストファイルに整形したSQL残してる
ホント何とかしてほしい
俺はデザインビューでしか作らないから気にならない♪
FROM (((Table1 LEFT JOIN Table2) LEFT JOIN Table3) LEFT JOIN Table4) ※ON句省略

みたいにJOINするたびに括弧で囲まなきゃいけないのをなんとかして欲しい。
SqlServerだとこんなことしなくていいのに・・・
204名無し変更議論中@詳しくは自治スレへ:2009/02/11(水) 13:41:23
Accessはデザインビューで簡単にSQLが作れるのが売りなんだろうけど、SQL文直打ちも前提に作られていないんじゃ
かゆいところに手が届かなくて今一歩ですね
(そういう点ではやはり桐はかゆいところに手が届くソフトなんだよな)
205名無し変更議論中@詳しくは自治スレへ:2009/02/11(水) 14:38:47
アクセスでは開発の基本機能を提供していますので、ユーザーが御自分で工夫してください

>>203
御自分で、VBA組んで文字列生成してください

>>204
御自分で、孫の手を購入してください
206名無し変更議論中@詳しくは自治スレへ:2009/02/11(水) 16:41:38
うーん普通の孫の手のでは背中くらいしかかけないんだよね
孫の手のソフトがあれば買うと思うんだけどなぁ
207名無し変更議論中@詳しくは自治スレへ:2009/02/11(水) 21:42:16
アクセス欲しいんだけど
ヤフオクで以外と高いし、ヤフオクで買ったことないから
不安だしいやだ。
会社のシステム変わるからマジで勉強しとかないとやばい。
ちなみに会社のアクセスは2000です。
どうしよお…
208名無し変更議論中@詳しくは自治スレへ:2009/02/12(木) 00:05:08
>>207
会社のシステムが変わるんなら、他の人はどうしてるんでしょう
みんなは扱えるんですかね
会社のアクセスをコピればOK
2000まではアクティベーションがないからいけるな
211名無し変更議論中@詳しくは自治スレへ:2009/02/12(木) 19:03:42
>>209
どうやってコピーするんですか?
うちの会社大手電機だからコンプライアンス違反すると
やばそうなんだけど…
212名無し変更議論中@詳しくは自治スレへ:2009/02/12(木) 19:12:40
個人でこそこそやる分には自己責任だからいいが
公的な場であんまり違法行為をすすめるなよ
>>211 も真に受けるな
本当に困っているなら迷う前にさっさと買って勉強に励め
213名無し変更議論中@詳しくは自治スレへ:2009/02/12(木) 19:30:25
>>211
VL版なら、そのままimgで持ってこい
個別ライセンスなら、1ライセンスに3CPUまでアクチできるから大抵は口数余ってるだろ
>>211
Access2000のCD−ROMを普通にCD−RにコピーしたものとライセンスキーもメモってくればOK。
あとは家のPCに普通にインストールできる。今まで外注で5つぐらいのソフトウェア会社を回ったけど
どこもコピーしまくりだったよ。おかげで俺も簡単にコピーに手を染めるようになったよw
215名無し変更議論中@詳しくは自治スレへ:2009/02/12(木) 21:22:39
こいつら...
てゆうか本当に自宅でも必要な仕事なら、
自宅用のライセンスキーを会社が買ってくれるんじゃね?
217名無し変更議論中@詳しくは自治スレへ:2009/02/13(金) 11:31:37
1ライセンスで同一人物が会社と自宅で使用したらダメなのか?
法人ライセンスは判らないが、MS-Office の個人ライセンスなら、
デスクトップとモバイルマシン両方に入れられるというものだったはず。
219名無し変更議論中@詳しくは自治スレへ:2009/02/13(金) 18:36:36
★ WinXP SP3、ACCESS2003
★ フォームにクエリの結果を表示したときに、

【通常の表示】
PCID  パソコン名    LANカード  サウンドカード・・
1     PC1号     有       無
2     PC2号     無       有
3     PC3号     無       無
・・・

と表示されますが、その表示を、行と列を入れ替えて、

【希望する表示】
PCID    1      2     3     
パソコン名   PC1号   PC2号  PC3号
LANカード  有      無     無
サウンドカード 無      有     無
・・

みたいにできますか?

・何がしたいのか
社員が管理しているPCの情報を管理しようと思って、ACCESS2003を使い始めて
三日目なのですが、1社員あたりせいぜい多くても5台くらいしか持っていませ
んが、一方、PCのオプションは、LAN、Sound以外に、10数種類くらいあるので、
表示を見やすくしたいのです。
220名無し変更議論中@詳しくは自治スレへ:2009/02/13(金) 18:41:59
できます
221名無し変更議論中@詳しくは自治スレへ:2009/02/13(金) 18:53:51
>220
サンプルのmdbを俺に送ってくれ
222名無し変更議論中@詳しくは自治スレへ:2009/02/13(金) 18:56:56
ふじ子に送りますた
223名無し変更議論中@詳しくは自治スレへ:2009/02/13(金) 19:03:35
ヒント教えてくれよ。
VB使うのか?
224名無し変更議論中@詳しくは自治スレへ:2009/02/13(金) 19:05:42
>>223
クロス集計クエリ
225名無し変更議論中@詳しくは自治スレへ:2009/02/13(金) 19:15:34
>224
今試してみたが、行として選択できるのは三つまでってメッセージが出ている
ぞ。
226名無し変更議論中@詳しくは自治スレへ:2009/02/13(金) 19:22:30
早くヒント教えてくれよ。
今日中に作らないと、しばかれるんだよ。
227名無し変更議論中@詳しくは自治スレへ:2009/02/13(金) 19:42:21
>>226
クロス集計クエリ
>>226
ほい。Access神のHP。
ttp://pub.ne.jp/hatena/?entry_id=1846749
>>216-218
ソフトウェアアシュアランスなら自宅のPCにインストールして使う事も可能。
高いけどな。
230名無し変更議論中@詳しくは自治スレへ:2009/02/13(金) 21:18:36
桐なら転置書き出しで一発なんだが…
クロス集計を幾つか作って結合すりゃ簡単だろ
232名無し変更議論中@詳しくは自治スレへ:2009/02/14(土) 08:16:30
>231
一晩試したが、まだできない。
もう少し詳しく教えてくれよ。
233名無し変更議論中@詳しくは自治スレへ:2009/02/14(土) 08:29:00
もう、しばかれるの決定済みだから良いじゃん
元のクエリが分からんとはっきりしないんだけど、もし

PCID     パソコン名  備品     有無
グループ化  グループ化  グループ化  先頭
行見出し  行見出し  列見出し   値

こうなってるなら、

[PCID]&[パソコン名]  備品    有無
グループ化       グループ化  先頭
列見出し        行見出し  値

こうすれば良いだけ
ちなみに列名を二行で表示するのは無理
235名無し変更議論中@詳しくは自治スレへ:2009/02/14(土) 08:56:52
>234
さんきゅう。
でも、ACCESS始めて4日目なので、俺の頭では、解説してくれても
さっぱりわからない。だれかサンプル作ってどこかにuploadしてくれよ。
頼むよ。
フォームの元になるクエリ(またはサブフォーム)を書き換えればイーンダヨ
フォームを開いて、左上の三角定規を押してみ。すると元になるクエリ名が表示されるはず。
そしたらフォームを閉じクエリビューに移って、該当クエリ→デザインで書き換えれば良い

他にどんな条件がくっついてるか分からんから、これで合ってるかどうか不明
下手するとぶっ壊れるから、mdbファイルのバックアップ取っておいてね
237名無し変更議論中@詳しくは自治スレへ:2009/02/14(土) 09:41:10
>236
俺にはだめだ、さっぱりわからん。。。。。うーーーー
238名無し変更議論中@詳しくは自治スレへ:2009/02/14(土) 09:59:35
そういうのは桐でやれよ
そういうそれなりに高度なことをド初心者にやらせといて出来なきゃしばくってどんだけw
240名無し変更議論中@詳しくは自治スレへ:2009/02/14(土) 10:33:21
ACCESSはあきらめて、EXECLとVBでやろうかな。
実は俺、VBは超得意なんだ。でもACCESSを断念するのは悔しい
241今日はバレンタインデーか…:2009/02/14(土) 11:16:22
俺会社でこういうの頼まれてよく直してやってるけど
誰も助けてくれないとこんなに困る人が実際いるんだな
回答じゃなくてごめんね
242名無し変更議論中@詳しくは自治スレへ:2009/02/14(土) 12:22:30
219ですけれど、クロス集計クエリっていうのを皆さんに教えてもらい
ましたが、これって、本当に私のやりたいことできるのでしょうか?
私は、要するに、行と列を入れ替えて表示したいだけなんですが。
一発で、そういうのできるコマンドみたいなのないんでしょうか?
こういう要望って、少なからずあると思うんですが、ACCESS2003には
そういう気の利いた機能はないのでしょうか???
>>242
本来の使用法とは異なるのかもしれないが
行と列を入れ替えるのはクロス集計が一番スマートなやり方だと思う。
集計とついているからって、何もそれにこだわる必要はない。
要は応用力だと思うし、第一用意されている機能を使わないのは労力の無駄。
俺は滅多に使わないが。
いま出勤したところ

後ろにいるあの娘がもしチョコレートくれたらrecordset開いて行列いれかえる
やり方教えてあげる
245名無し変更議論中@詳しくは自治スレへ:2009/02/14(土) 12:55:10
キモヲタの224には期待するな
よし、期待せずに待ってるぞ
会社だったら義理チョコぐらいもらえるだろう(土日が休みなら月曜という可能性も捨てがたいが)。
よかったな、219。
>>245
関係ない>>224涙目w
>>247
219?
>>249
>>242の冒頭に219って自己紹介してあるの…
251250=247:2009/02/14(土) 13:18:16
あっもしかしてバレンタインの件?
そっちじゃなくてクロス集計に疑問を持った219に
別のやり方を教えてくれる人が現れたから。
だから247は間違えたわけではないよ。
>>251
おk
意外と人居るんだな
「土 曜 の バ レ ン タ イ ン デ ー な の に」
>>242
SQLでゴリ押しでやる方法もある。ただしPCの台数が決まってる場合に限る。
まず>>219の情報が「テーブル1」というテーブルに保存されていたとしたら
↓のSQLで要望の表示になる。ただし普通は絶対こんなことせずにRecordSet回すけどね。
(今日はめっちゃ暇だったんで書いてみたw)

SELECT PC1_Info.Dat, PC2_Info.Dat, PC3_Info.Dat
FROM ((
SELECT PC1.JoinKey, PC1.Dat
FROM (
SELECT 1 AS JoinKey, CSTR(PCID) AS Dat FROM テーブル1 WHERE PCID = 1
UNION ALL
SELECT 2 AS JoinKey, パソコン名 AS Dat FROM テーブル1 WHERE PCID = 1
UNION ALL
SELECT 3 AS JoinKey, LANカード AS Dat FROM テーブル1 WHERE PCID = 1
UNION ALL
SELECT 4 AS JoinKey, サウンドカード AS Dat FROM テーブル1 WHERE PCID = 1
) PC1
) PC1_Info
INNER JOIN (
SELECT PC2.JoinKey, PC2.Dat
FROM (
SELECT 1 AS JoinKey, CSTR(PCID) AS Dat FROM テーブル1 WHERE PCID = 2
UNION ALL
SELECT 2 AS JoinKey, パソコン名 AS Dat FROM テーブル1 WHERE PCID = 2
UNION ALL
SELECT 3 AS JoinKey, LANカード AS Dat FROM テーブル1 WHERE PCID = 2
UNION ALL
SELECT 4 AS JoinKey, サウンドカード AS Dat FROM テーブル1 WHERE PCID = 2
) PC2
) PC2_Info
ON PC1_Info.JoinKey = PC2_Info.JoinKey )
>>254の続き

INNER JOIN (
SELECT PC3.JoinKey, PC3.Dat
FROM (
SELECT 1 AS JoinKey, CSTR(PCID) AS Dat FROM テーブル1 WHERE PCID = 3
UNION ALL
SELECT 2 AS JoinKey, パソコン名 AS Dat FROM テーブル1 WHERE PCID = 3
UNION ALL
SELECT 3 AS JoinKey, LANカード AS Dat FROM テーブル1 WHERE PCID = 3
UNION ALL
SELECT 4 AS JoinKey, サウンドカード AS Dat FROM テーブル1 WHERE PCID = 3
) PC3
) PC3_Info
ON PC1_Info.JoinKey = PC3_Info.JoinKey

※PCIDのみ数値項目と仮定したのでCSTRを使った。
256244:2009/02/14(土) 16:06:04
いま不機嫌ですが何か?

「あたしたち」から、だって
>>253
お楽しみは日が暮れてからだろ。
おれももう直ぐ出かけるよ
258228:2009/02/14(土) 20:00:05
俺が教えたAccess神のHPは無視かい!
怖くて誰も踏めんだろうによ。
260219です:2009/02/14(土) 22:35:07
>254
うーーーーーー、感謝していますが、なんのこっちゃさっぱりわかりません。
そのSQLをどっかに張り付ければいいんでしょうか?
>258
HP見たんだけれど、みなさんが勧めてくれるクロス集計クエリではなかった
ので、あまり詳しく見ていません。
つまりやる気がないと
262名無し変更議論中@詳しくは自治スレへ:2009/02/15(日) 00:39:42
Microsoft Access 2000 を使っています。
SQLの勉強中なので、自分で打ち込んだSQL (selectとかcreate tableとか) を実行したいのですが、
Accessの中でそれらしい画面を見つけられませんでした。
自分で打ち込んだSQLを実行する方法ってありますか?
>>258
Access勉強中なのでそういったサイト紹介はありがたいよ。
>>262
桐を…

つか、Access使ってるんなら、クエリのデザイン画面からsql画面へ行って、
確認するもんじゃないの?
>>262
クエリを新規作成するか開いて、
クエリウィンドウを右クリック(or メニューの表示を選択) SQL ビューを選択。
266名無し変更議論中@詳しくは自治スレへ:2009/02/15(日) 01:11:06
それが分からないから質問しているんじゃないの
とりあえず新規でデザイン画面を呼び出したら、最初に現れる「テーブルの表示」を
すぐに閉じて、「表示(V)−SQLビュー(Q)」とメニューをたどるるかクエリのタイトルバー
を右クリックして、「SQLビュー(Q)」を選択すれば、直接SQL文を入力できる画面になります

また、AccessでSQL文を作ったり、現在の(デザイン画面で作った)クエリのSQL文を確認したいときにも
上記の方法で画面を切り替えることで確認できるので始めの内はデザイン画面で作ってあとで
それを元にSQL画面で調整するってな使い方が一般的だと思います
267名無し変更議論中@詳しくは自治スレへ:2009/02/15(日) 01:12:40
あっ一つ前で既に答えられていましたね
268262:2009/02/15(日) 01:27:07
>>264-267
皆様ありがとうございます。
SQLビュー、まさにこういう画面を求めていました。

ただ、画面を表示する手順から察するに、
これってクエリ作成に特化した機能っぽいですね。
一応 create table 等のSQLも実行できましたが。

できれば、いろんなSQLを実行してすぐに結果を見る、ということを繰り返したいのですが、
そういった機能 (VisualStudioで言うところのイミディエイトウィンドウ的なモノ) は
無い、というのが答えですかね?
269名無し変更議論中@詳しくは自治スレへ:2009/02/15(日) 01:43:37
直ぐにビュー画面を呼び出せばいいだけじゃないの?
自分は利用したことはないですけど、マイクロソフトのページにいって
SQL Server のExpress Edition でもダウンロードして試してみたらどうですか
ふつうにエディタがついてるんだから、
イミディエイトウィンドウ使えばいいんじゃないの?
271名無し変更議論中@詳しくは自治スレへ:2009/02/15(日) 01:58:45
>>270
どういう事? VBEのコードウィンドウとイミディエイトウィンドウの事いってんのかな?
ちがうのけ?
268が言ってるsqlってのが、アレだけどさ。
>>268
Accessではテーブル操作とクエリ操作は別々の画面が用意されていますから
CREATE や DROP といったSQL句の実行結果をすぐに確認するには不便ですね。
その意味では「無い、というのが答え」になるかと思います。

Accessにこだわらないのであれば、要望にもっとも近いものはSQL Server 2000に
含まれていたクエリアナライザになるかと思います。(入手ができれば…ですが)
今でしたら無償の SQL Server 2008 Express with Tools はいかがでしょう?
これに含まれる SQL Server Management Studio Basic が使えるかと思います。
274254:2009/02/15(日) 07:06:33
>>260
>>そのSQLをどっかに張り付ければいいんでしょうか?

SQLビューに貼り付けて実行すればいいんだよ。
SQLビューの表示方法はちょうど>>266さんが書いてくれてる。w
でもあなたは私の想像以上にシロウトさんだったようだからこの件は忘れてくれ。
多分実行できたとしても応用はできないと思う。
275名無し変更議論中@詳しくは自治スレへ:2009/02/15(日) 18:38:16
>>196
桐にしとけ、30年前から普通の 表引き
もう古臭いんだけどなぁ、今だに秀逸なんだよな
>>260
列数と行数がその程度であれば明らかにExcelでやるべきことだと思うんだけど、
Excelという選択肢はないの?
のちのち集計をしたりSQLServerへのアップグレードを考えなければ、
そういう文字列だけの管理にAccessを使うのはどうかと思うんだ。

>>268
素直にSQLServer2005Expressを入れたら?無料だし、お望みのことがすぐに出来るよ。

>>275
その桐にしとけっていうネタはいつまでやるの?もういい加減飽きない?

277名無し変更議論中@詳しくは自治スレへ:2009/02/15(日) 20:21:39
>>196
テーブルのフィールド定義に設定するルックアップではできないけど、普通にクエリで作ればできますよね
ただ、実際の利用場面を考えるとあえてクエリでやらなくてもフォームのコントロールの設定でもいけるよ
何時リクエリすれば良いんだろうか?
279名無し変更議論中@詳しくは自治スレへ:2009/02/15(日) 20:29:47
自分も最初は変な掲示板のタイトルだと思っていたけど今思うと
Accessユーザーも桐ユーザーもお互いの便利な点を知らない人が多いと思うので、
こういう両方のユーザーが共通の話題について意見をだしやすくなるのはタイトル
としては調度いいと思うけどな
>>279
それが本当にできていればね。
まじめに質問している人に「桐にしとっけ」って言ったところで何の意味がある?
Accessを使わざるを得ないから、ここで質問しているというのに。
これからDBソフト購入しようと思っているのだけどとか言う人に勧めるのは
理解できるが。
281名無し変更議論中@詳しくは自治スレへ:2009/02/15(日) 21:13:06
なるほどタイトルならともかく、確かに単に桐にしとけってだけのレスじゃ意味ないな
桐がいいならそういう場合桐ならどう簡単にできるかもう少し書いてくれればいいのにね
そもそも「桐」という名前自体このスレで十数年ぶりに見ました。それこそPC9801全盛の頃以来です。
このスレには旧世代の亡霊がひっそりとたたずんでいるんですね・・・w
全然現役だろ
此処の人って桐の社員だよね
DOS桐が現役で使われてるところへ、
Accessにコンバートする仕事があったなぁ。
もう4,5年前だけど。
286桐の社員:2009/02/15(日) 21:30:54
皆さん、もっと桐を使って下さい。
桐って、このスレで初めて知った。
業務で使うことは、まず無いし。
データ入力のパートとかは桐を使ってるらしいよ、入力速いんだってさ。
289287:2009/02/15(日) 22:14:01
>業務で使うことは、まず無いし。

俺個人および勤務してる会社ではってことだから。念のため。
290名無し変更議論中@詳しくは自治スレへ:2009/02/15(日) 22:15:26
Accessにしろ桐にしろ選択肢が多いことはいいことだ
291名無し変更議論中@詳しくは自治スレへ:2009/02/15(日) 22:30:56
互いの長所を併せ持つソフトがあれば最高に便利なんだが…
まじめに桐を勧めるにしても、回答したあとに桐との作業(労力)比較があるといいね。
293名無し変更議論中@詳しくは自治スレへ:2009/02/15(日) 23:40:55
Access2000以降はADOを推奨みたいな説明をAccessの解説本によくのっていたけど、
デスクトップデータベースとしてしか利用していない(SQL ServerやOracleとか)自分としては
処理スピードは遅いし、テーブルやクエリの定義を操作するのにADOXとか使わないといけないし、
あまりメリットを感じないんだけど、一般的にローカルやファイルサーバーに共有mdbとしてしか
データを利用していない場合、他の人はADOとDAOのどちらを利用しているんでしょうか
本当にADOって優先的に使う意味なんてあるんですか?
294名無し変更議論中@詳しくは自治スレへ:2009/02/15(日) 23:42:26
> (SQL ServerやOracleとか)
じゃなくて、(SQL ServerやOracleとか利用していない場合)
の誤りでした
君はmdbだけなのにADOを使ってるの?
>>293
2003の時はデフォルトでDAOが参照されていたし、2007の新しいエンジンはDAOベースだということを考えれば、
DAOでいいと思うよ。
>>293
解説本がADOを推奨するのは、MSが発表している今後のロードマップを踏まえての事でしょう。
ttp://msdn.microsoft.com/ja-jp/library/ms810810.aspx

そんな訳で長期に渡って使用しそうなものは面倒でもADOを、
短期で使うものには使い勝手の良いDAOで組むというのが理想なんでしょうね。
しかし、どっちで組んでもバージョン問題が発生しやすいという・・・orz
298219:2009/02/16(月) 00:49:44
254,255さん!
できました。ありがとうございます。これを応用すれば、
どうにかできそうな気がしてきました。助かりました。
皆さん、ありがとうございました。
299254:2009/02/16(月) 07:21:58
>>298
げっ!できたの?
JOINとかUNIONのオンパレードで作った冗談クエリーだったのにw
まあオメ。(ド素人扱いしてスマンかったw)
>>299
逆説的に無理だということを伝えるためのクエリかと思ってた・・・
>>君はmdbだけなのにADOを使ってるの?

大抵の人はそうじゃないの
参照設定面倒くさいし
302名無し変更議論中@詳しくは自治スレへ:2009/02/16(月) 14:27:58
それ昔の話だろ
もう全部マクロで良いじゃん
304名無し変更議論中@詳しくは自治スレへ:2009/02/16(月) 18:56:40
ADOとDAO利用について、結局大多数の意見はどっちよりなんでしょ?
一般的にははADO
でも、Accessしか使わない
(そういう人が大半だとも思うが)
ならDAOの方が良いよ
DAOにしか出来ないこともあるし、mdbに使うのが前提な分構文が楽
【 システム環境  . 】 Windows2000, Access2003
【 VBAが使えるか .】 はい
【 VBAでの回答  】 可

マクロやVBAでメッセージボックスを出すときに、
他のアプリケーションを使用していても、一番手前にメッセージを表示させることって出来ますか?
307名無しさん@そうだ選挙にいこう:2009/02/17(火) 01:43:05
M$のスタンスの変遷

Access2000 これからはADOの時代だぜみんな!マンドクさくてもADO使えや!

Access2002 既定の参照設定からDAOはずしたら、苦情殺到。。。ショボーン(´・ω・`)

Access2003 既定の参照設定にDAOを復活させました。正直スマンカッタ orz

Access2007 新エンジンACEはもちDAO組み込みっス。えADO?なんですかそれ←今ココ
>>306
できたような記憶があったので調べてみました。
分かりやすくまとめてあるページを見つけましたよ。
ttp://634.ayumu-baby.com/vba/dialog.html
>>308
わー、これだー!
ありがとうございます!!
フォームを開くときに、他のフォームが開いていたらメッセージ出力して開けないようにしたいのですが、
一番かんたんな方法はどういった物があるでしょうか?
いまは「開くときイベント」にforms.countをチェックしてやっているのですが、
ここでチェックに引っかかり docmd.closeを実行したら、当たり前ですが「閉じる時イベント」が実行されてしまうため
(これを実行したくないです)あまり個人的にはやりたくありません・・・・
宜しくお願いします。

xp sp2 access2003 VB可です
>>310
開く時イベント(Form_Open) には Cancel というパラメータがありますから
docmd.close の代わりに Cancel=True とすれば良いと思いますよ。
>>311
ありがとうございます!早速試してみます。
>>307ってホント?迷走しとるなあ…
314名無し変更議論中@詳しくは自治スレへ:2009/02/18(水) 00:34:59
>>307
分かりやすいですね
315名無し変更議論中@詳しくは自治スレへ:2009/02/18(水) 18:04:14
結局2007って2003に比べて便利になったの?
あまり良いイメージないんだけど
拡張子が変わったりADO構文が別物になったりしてるのはさすがにやりすぎ。
あえて一度不便にして、課金製に移行する布石にしてんじゃねーのかとすら思う
>>315
便利になったとは思えないよ。ユーザーを無視したインターフェイスの変更で
使い難くて仕方が無い。今に始まった訳じゃ無いけどさ。
俺はむしろ2007の方が使いやすい感じがする。
リボンもシンプルになっていてわかりやすいし、致命的に悪くなってるところは無いように思う。

sharepointサービスとの連携みたいなのは使わないからいらないけど・・・。
タブとか分割フォームなんかは悪い機能じゃないと思う。

>>316
2007でADOって使うの?DAOに回帰したのかと思ったんだけど。
319名無し変更議論中@詳しくは自治スレへ:2009/02/18(水) 21:55:58
> ADO構文が別物になったりしてるのはさすがにやりすぎ
え、ADOって構文変わってるの!
どこがどのくらい変わったの?マイクロソフトのページとか説明ありますか?
320名無しさん@そうだ選挙にいこう:2009/02/18(水) 23:53:10
>>318
たぶんM$のアオリを真に受けて、ADOで構築しちまったレガシーシステムの
移行とかがあるんじゃないの。いや >316 がそうかどうか知らんけど、一般的に。
M$が手のひら返して泣くのはいつも現場。
321名無し変更議論中@詳しくは自治スレへ:2009/02/19(木) 09:50:31
使うのがMDBとACCDBだけなら、DAOもADOも要らないんじゃないの?
全部Accessのアプリケーションレベルで処理、マクロとコマンドだけ
2007だとマクロで変数使えるしエラー処理できるし

俺、何か間違ってる?
322名無し変更議論中@詳しくは自治スレへ:2009/02/19(木) 11:32:51
>>318
> 俺はむしろ2007の方が使いやすい感じがする。

カスタムメニューとかカスタム ショートカットとかは、どうしてるの?
xmlで書いてるの?
323318:2009/02/19(木) 15:22:05
>>322
ごめん。そこまで使い込んでない。
単純に新しいインターフェースとかデザイナの機能なんかが使いやすいかなと思っただけだ。

>>321
aceってDAOベースだから、DAOと同じコードは動くみたいだね。
ADOが変わったというのは確認出来てないけど。
フォームのテキストボックス内でカーソル移動させる方法ってありますでしょうか?

目的としては、
テキストボックス:郵便番号に入力するとテキストボックス:住所に「○○県○○市○○町」と自動表示された後、
カーソルが自動表示された住所の終端に来るようにしたいのです。
現在はカーソルが住所に移動したときに、自動表示された住所が選択された状態になってしまいます。
325名無し変更議論中@詳しくは自治スレへ:2009/02/19(木) 16:33:55
TextBox.SelStart
TextBox.SelLength
326316:2009/02/19(木) 18:20:53
誤解を招いてしまったようで申し訳ない。「変わった」というのはここ、コネクション部分のことを言いました。
"構文"と言ったら普通は他の部分と思いますよね。すいませんでした
RST.Open Source:=SQL, ActiveConnection:="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MDB", CursorType:=adOpenStatic
RST.Open Source:=SQL, ActiveConnection:="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=MDB", CursorType:=adOpenStatic"
でもこれって結構おおごとじゃないですかね
327名無し変更議論中@詳しくは自治スレへ:2009/02/19(木) 20:45:11
>>326 それを聞いてちょっと安心した

でも、AccessにしろExcelにしろ自分でメニューバーにオリジナルのメニューを追加して利用しているんだけど
これってメニューバーのなくなってリボンになった2007ではそのままでは、マクロで自動的にメニュー作成とかできなく
なっているんでしょうかねぇ やっぱり動作できなくてエラーになりますか?

今までメニューバーにオリジナルメニューをマクロで利用していたユーザーってどうしているんでしょうか
過去の自分の資産が有効活用できないのは困ると思うのですが
無料になったランタイムをパッケージ化してユーザーに配って使わせてる人いる?
複数クライアントがスタンドアローンとして入力した後の
テーブル結合の依頼がACCESS本体入ってる自分の所に来て大変…。
SQLサーバー買って同時入力させる為にコード書き直すのも大変な労力なんだよなぁ
>>326
まあ、固定の文字列が変わっただけなら置換で全部変更出来るからあまり問題なさそうだけどな。

>>327
メニューバー自体がもうWindows7以降どうなるかわからないし、いまのうちにリボンに移行しておけ
っていうことなんじゃないかな。
330名無し変更議論中@詳しくは自治スレへ:2009/02/19(木) 23:24:37
リボン嫌い! メニュー大好き!
リボンはMSが特許とってるからいろいろと普及しないでしょ。
332名無し変更議論中@詳しくは自治スレへ:2009/02/20(金) 00:03:59
未確認だけど、2007のVBEはメニュー形式じゃないよね?
もしそうなら、表の操作メニューとの整合性を考えていないって事になるよな
333名無しさん@そうだ選挙にいこう:2009/02/20(金) 00:14:59
>>332
「VBEはリボンじゃなくてメニューバーのままだよね」って意味かな?
もしそうなら、その通り。ほとんど(まったく)変わってない。
だから、2007での作業はVBAでコーディングしているときが一番ストレスないというw
334名無し変更議論中@詳しくは自治スレへ:2009/02/20(金) 00:45:50
>>333
> 「VBEはリボンじゃなくてメニューバーのままだよね」って意味かな?
そうです

> もしそうなら、その通り。ほとんど(まったく)変わってない。

なんかリボンて中途半端ですね
きっと初心者を前提にした使い勝手を想定しているもので、玄人向けな機能ではない気がします
(ユーザーインターフェイスを前提にしたExcelやWordの場合は意味がある気もしますが、
Accessの場合本当に有効なインターフェイスなんでしょうか?)
他の人はどう思っているんでしょうか
>>328
レプリケーション使ってみれば?

しょっちゅう競合が起きるようなデータなら他の対策も必要だけど、
単純に追加するだけのデータなら何の問題もないよ。

ブリーフケースを使って同期させることもできるし、
自分でVBAを書けるんなら起動時に同期と競合の解決をさせることもできるよ。
>>324
谷尻さんのACCESS実用プログラミングという本に全く同じ例題が載っていたように思う。
337名無し変更議論中@詳しくは自治スレへ:2009/02/20(金) 09:01:03
>>331
リボンもメニューも特許なんて取ってないぞ

メニューは真似されちゃったけど、たぶん訴えてもMSが勝てない

リボンはMSが先手打って「競合製品以外には無料で使用許可を出す、ただしソースの提供はしない」って宣言した
その後に許可なく真似たら、訴えたらMSが勝てるかもしれないので、極めて無許可で真似しずらい

激しい心理戦
338名無し変更議論中@詳しくは自治スレへ:2009/02/20(金) 14:20:53
>>328
テーブル併合処理をパッケージに含めれないのか?
「メニュー」がなんのことかよくわからんが
そのへんのアプリの「ファイル」とか「編集」とかのメニューのことなら
まねされたんじゃなくて
共通のUIを実現するために Windows が提供している機能なんですけど。

メニューは別につけなくてもいいけどアプリケーションを作成する上でのガイドラインとして
MS自身がメニューの利用を推奨してたし。
340名無し変更議論中@詳しくは自治スレへ:2009/02/20(金) 18:05:22
会社でアクセス2000使ってるんですが
今度会社のシステムが変わり、引継ぎをしてくれた人の
クエリやマクロが使えなくなります。
全然アクセス組むことができない私も勉強しなくては
なりません。そこでどんな参考書を買えばよろしいでしょうか?
自宅に入ってるアクセスは2000、2002です。
341名無し変更議論中@詳しくは自治スレへ:2009/02/20(金) 19:15:30
> 共通のUIを実現するために Windows が提供している機能なんですけど。
まさにその通り
Windowsってソフト間の操作の違いにユーザーが惑わされず使えるようにと、共通環境を
前提に作られたシステムなのに自らその前提ルールを破ってきたないよな
DOS時代のソフトは使い勝手を高めるためにファンクションキーに独自の機能を割り当てて
操作感を高めたりしてオリジナルなソフトが多かったけど、今後はリボンも他社のソフトに対しても
普及させるつもりなのかな?
まったくマイク○ソフトってば勝手なんだから
自分たちでロゴ準拠基準を決めて
それに従うことを推奨しておきながら
自分たちのアプリはそれに従わないってのが
昔からのマイクロソフトですから
343名無し変更議論中@詳しくは自治スレへ:2009/02/20(金) 23:25:53
イニシアチブをとりたがり過ぎなんだよ
アメリカって国と同じ
OSを作ってる会社がイニシアチブを取らないでどうするんだ・・・。
マイクロソフトはもう永遠にインターフェースを変更するなってことなの?
accessで作ったデータベースをwebで使うことってできますか?
accessってローカルだけで使うのかな。
2007 でデータアクセスページはなくなったな
ASP.NET で Access データベースにアクセスすることはできる
あ、2007形式のファイルにアクセスできたかどうかはいまちょっとわかんない
>>344
インターフェイスの変更が極端なんだよ。
それまでのユーザーを無視するようなことを、何度もやってきた。
自分の考えが絶対で、他人のことを全く考えないゲイツがいなくなったから、
今後はマシになってくれることを期待。
348名無し変更議論中@詳しくは自治スレへ:2009/02/21(土) 03:30:41
>>347
ミニノートのディスプレーからHDまで多種多様な環境を考慮すると
リボンは合理的だと思うよ。
VSのような画面で困るモードが変わるたびにツールバーが移動して
しまうような現象も抑えられるし。
アウトルックの左ペインも常に同じ場所に同じコマンドが配置されて
いるという観点から合理的だと思う。
よく考えられたGUIと感じる。

このやろー!と思ったのは最初の一週間だけだったよ。

あとリボンはVS2008SP1でMFC入りした。
MS以外の製品にも使われるようになると思う。
Access 2007 なのですが、
レポート上でテキストボックスを day1 から day31 まで配置して
ループで値をセットしていきたいんですが
どうくめばコントロールを選択あるいは移動できるのかわかりません。
いいアイデアありませんか?
>>349
印刷用にテーブルを用意して31レコードにする・・・っていうのがスマートかなと思うけど、
テキストボックスを配置しないといけないということであれば、テキストボックスの名前を
「day1」「day2」・・・「day31」にして

For i = 1 to 31
   me("day" & i) = ・・・
Next

とするのはどうだろうか
おぉ

For i = 1 to 31
   me("day" & i) = ・・・
Next


これでいけました。
括弧でくくればよかったんですね。
ありがちうございます。
昔開発したソフトをvistaで使ってみたけど
偉く格好良いインターフェイスになるな。
こういうとこはwindows製品のメリットだと感じる。
353名無し変更議論中@詳しくは自治スレへ:2009/02/22(日) 00:23:11
>>340
> 全然アクセス組むことができない私も勉強しなくては
> なりません。そこでどんな参考書を買えばよろしいでしょうか?
> 自宅に入ってるアクセスは2000、2002です。

ぜんぜん使えないのに、2つもバージョンの違うAccessを個人で持っている不思議
>>353
家族のPCとか、譲ってもらったPCに元々入ってたとか。
会社のをコピったとかw
356名無し変更議論中@詳しくは自治スレへ:2009/02/22(日) 08:30:41
Winny
357名無し変更議論中@詳しくは自治スレへ:2009/02/22(日) 11:20:03
>>307
M$のスタンスの変遷

Access2000 これからはADOの時代だぜみんな!マンドクさくてもADO使えや!

Access2002 既定の参照設定からDAOはずしたら、苦情殺到。。。ショボーン(´・ω・`)

Access2003 既定の参照設定にDAOを復活させました。正直スマンカッタ orz

Access2007 新エンジンACEはもちDAO組み込みっス。えADO?なんですかそれ←今ココ

Access2010 マクロでフィールド名に変数使えるようにしたからね、今のうちに全部マクロに移行ヨロ

Access2012 VBA付属は辞めますた。どうしても必要な方はVisualStudio買ってください<m(__)m>
358名無し変更議論中@詳しくは自治スレへ:2009/02/22(日) 12:32:15
> Access2010 マクロでフィールド名に変数使えるようにしたからね、今のうちに全部マクロに移行ヨロ

> Access2012 VBA付属は辞めますた。どうしても必要な方はVisualStudio買ってください<m(__)m>

VBA使えなくなったらとても困ると思うんですけど

でもVB6がVB2008へ進化して「VB.Net」対応になっているのに対して、VBA自体はVB6の頃と同等なままなのが不安なのも事実
今後、VBAの扱いってどうなっていくんだろう

プログラミングを仕事にしている人は「VB.Net」になっても対応できるスキルがあるから平気かもしれないけど、Access・Excelで
なんちゃってアプリを作って仕事に活用している大多数のライトユーザーは仕様変更に対応できないと思いますよね

M○ソフトも一応その辺は分かっているのか、それともバージョンアップする必要性を感じていないのか分からないけど
なんとなく据え置きになってるね
>>358
>プログラミングを仕事にしている人は「VB.Net」になっても対応できるスキルがあるから平気かもしれないけど

変化に対応できなくて、未だにVB6にしがみついてる連中も結構いるけどね
360名無しさん@そうだ選挙にいこう:2009/02/22(日) 16:55:53
そう自分を責めなさんな。
361名無し変更議論中@詳しくは自治スレへ:2009/02/22(日) 16:59:09
>>353
知人の知合いにこないだコピーさせてもらいました。
さて勉強しようかと思うんですが、書店にAccess2000の
参考書ってもう売ってないんですね〜
アマゾンで買うしかないですかね
362359:2009/02/22(日) 17:04:26
>>360
自分がVBを本格的に使うようになったのは.NETになってからさ。
まだ若いものでね。
363名無し変更議論中@詳しくは自治スレへ:2009/02/22(日) 17:52:17
>>361
爽やかな奴だな
364名無し変更議論中@詳しくは自治スレへ:2009/02/22(日) 18:49:21
素直なのもいいけど、さらっとコピーしましたと言われるのも困りものですね
さて、それはさておきAccess2000の参考書を探しているみたいですが、基本的に
2000〜2003のバージョンはよほど突っ込んだ使い方をしないのであれば、操作的にも
機能的にみてもほとんど違いはないと思ってかまわないと思いますので、本を探すにも
それほど不自由はしないのではないかと思います
(実際は2007でも2003を意識して書かれているので大丈夫だとおもいますけど)

私の経験で言えば、本屋で参考書を購入するのも良いですが、図書館がかなりお薦めです
昔と違って最近は1つの図書館だけでなくその地域全体の図書館で連携して他の図書館の
書物も、インターネットで検索などした上で取り寄せ最寄の図書館が受け取れますので、
利用してみてはどうでしょうか
以下は、一例ですが図書館の検索ページです
→ http://www2.lib.city.saitama.jp/STCLIB/servlet/search.inp_cond

地域によっては実施されていないかもしれませんが、検討してみてはいかがでしょうか
一冊では不安でしょうから、初心者用の本〜VBAの本まで一通り取り寄せてみて自分にあった
本で勉強してみるといいと思います
また、見つかった本で気になるものがあれば、Amazonなどでレビューを見てみるのも書籍選びの
参考になると思います

ある程度Accessを扱えるようになったら、あとはケースによっていろいろなテクニックが解説されている本を参考に
すると一気に理解が深まります(VBAで言えば辞典的な本はあまり役に立たないというよりヘルプで十分な気がします)
365名無しさん@そうだ選挙にいこう:2009/02/22(日) 20:59:46
>>362
キャリア少ないからってあんまり気に病むな。
まじめに考えすぎると心の病気になるぞ。
若いからできないのは当たり前くらいに開き直るのが吉。
ソフトウェア会社で10年以上働いてるけどいまだにVB6の仕事ばっかだな。
というかお客は業務が処理できればいいわけでそれ以前にプログラミング言語の種類自体知らないんだから当然だけどね。
先週、Access2003のシステムを使ってる顧客から、2007にしたらエラーばかりで困ると言ってきた。
連絡もなしに勝手な真似すんじゃねーての。
Access2007でテキストボックスの中に
=[単価]*[数量]
(それぞれテーブルのフィールド名)
と書いてあるのですが、単価や数量を更新するとそれを計算してくれます。
が、そのときに妙にタイムラグがあります。
それこそ、一瞬消えてワンテンポ置いてから表示されるみたいな。

VBAで計算を書いてやると一瞬で表示が切り替わるし、非連結のテキストボックス同士の計算なら
ちゃんと表示されるのでマシンスペックの問題ではなさそうです。

これの原因って何かありますか?
369368:2009/02/22(日) 22:49:00
書き込みしてからすぐに思い当たることがあって調べてみたら、
どうやら
=Nz([単価],0)*Nz([数量],0)
と書くと遅くなり、
=[単価]*[数量]
なら大丈夫なことがわかりました。
下の書き方だと、片方がNullだったときに計算結果もNullになるので
出来ればNzを使いたいのですが、Nzを使っても遅くならない方法はありませんか?
試さないで適当に書くけど

=Nz([単価]*[数量],0)

じゃあだめなのかな
371名無し変更議論中@詳しくは自治スレへ:2009/02/23(月) 00:28:51
iif分でケース分けでやるとどうでしょう?
372名無し変更議論中@詳しくは自治スレへ:2009/02/23(月) 00:29:20
iif文じゃなくてiif関数でした
373368:2009/02/23(月) 12:42:51
>>370
試してみたら同じ状態でした。

>>371
iifを使うってことは、
=IIf([数量] Is Null,0,[数量])*IIf([単価] Is Null,0,[単価])
こんな感じでしょうか?
これだと普通に表示されますが、ここまで書くとなるとVBAで更新時のイベントを書くのと
あまり変わらない感じがします。


ちなみに、2000でも同じ状態でした。
とりあえず、VBAで更新時の処理として書くことで対処しますが、何かいいアイディアがあれば教えて下さい。
VBA でレコードからデータ取り出せるようになると
できることが増えるからおもしろくなるな
いくらでも時間つぶせそうだ
>>373
最初からテーブルの数量と単価フィールドにnullを入れなければいいのでは?
テキストボックスにデフォルトで 0 いれるとかかな
377名無し変更議論中@詳しくは自治スレへ:2009/02/23(月) 20:48:45
だったらテーブルのフィールド既定値でいいんじゃない?
iifは何の略ですか?
379名無し変更議論中@詳しくは自治スレへ:2009/02/23(月) 21:17:20
関数なんですけど
イク、イク、フェラリーランド♪
今日のアメリカなんか指標あったかな?
ごめん。間違った。
>>375
俺もそう思う。
Nullに意味を持たせていないなら、規定値を設定するべき。

俺ならいまからでも規定値を設定する。
既存データに対しては、更新クエリ使ってでも対処するな。
(代理レススレまで荒らされて、ようやく書き込めたよ)



384名無し変更議論中@詳しくは自治スレへ:2009/02/23(月) 22:13:18
>>364
そうですか。図書館ですか!今週末、市立図書館に行ってみます。
ありがとうございました。
385名無し変更議論中@詳しくは自治スレへ:2009/02/23(月) 22:15:47
規定値は邪悪だろ
普通に、Required/値要求 設定
VBA書くとき、with使う?
どこかのサイトでは見やすいといっていたが
個人的には見づらいし、思うような動作をしないときがあるから嫌いなのだが。
後者に関しては、単なるスキル不足なんだろうけど。
俺は参照が未だにわからない
[ ]をつけて始めて動くものもあれば、なくても動くものもある。法則性が未だにつかめない。
参照は謎としかいいようがない。
既定値を設定しても、フォーム上のテキストボックスに何も入力しなければNullで保存される。
[] は間にスペースとか_とかの特殊文字が入るときに使うけど
そうじゃないのも[]つけて統一してしまった方がいいような気がする
390名無し変更議論中@詳しくは自治スレへ:2009/02/24(火) 11:26:24
だったら変数名とかも型に応じた接頭語強制ってことで
391名無し変更議論中@詳しくは自治スレへ:2009/02/24(火) 18:48:05
> 既定値を設定しても、フォーム上のテキストボックスに何も入力しなければNullで保存される。
そんなことはないんじゃない?

今試しにテーブルに長整数のフィールド作って、初期の既定値0のまま保存して、
そのテーブルを元にフォームウィザードで新規フォームを作ってみたけど、新規レコードには
ちゃんとテーブルのフィールド既定値である0が自動入力されてましたよ

新規レコード位置では、既定値だけが表示されていてその他のテキストボックスが
Nullの状態で保存されているみたいに見えるってことと勘違いしてるってことないですか?
>>386
同一オブジェクトの複数のプロパティに値をセットするような場合は
with を使った方が見やすいかもしれませんね。
処理速度も with を使った方が速くなると聞いたことがありますが
こちらについては体感できるほどの差は出ないように思います。

>>391
規定値は自動で表示こそされますが、表示された規定値を削除して
レコードを保存することが可能だという事を>>388さんは言われているのでは?
その意味では>>385さんの方法が正攻法に思います。
質問なんですが、フォームとデータ切り離してバックエンドとして繋げた方が良いですか?
データだけ切り離しとけば何かあった時でも最悪データ破壊だけは免れるという
イメージがあるんですが・・・そんな変わらないのかな
>>393
そのほうがいいと思うよ。壊れづらいというほかに

・ファイルを誤って削除されてもデータ(格納ファイル)は残っている可能性がある(別フォルダーに格納するとなおよい)。
・フォーム等に修正が生じたとき、フロントエンドファイルだけを更新すればいいので業務に支障をきたしづらい。
・データ格納に、より大きな領域を与えることができる(2G制限があるからね)。
・万が一リンクテーブルを削除してしまっても、データは残っている。
・リンクテーブルを使わずにテーブルに接続すれば、情報の秘匿につながる。

等、多分デメリットを上回るメリットがあると思う。
>>393
ほとんど>>394さんが網羅して下さっていますが、バックアップや
最適化の仕組みをフロントエンドに組み込むことができるという
メリットもありますね。

データ破損のリスクに関しては経験上ほとんど差はないと思います。
>>394-395
ありがとうございます。
やはりメリットの方が大きいようですね。
切り離して運用しようと思います。
397名無し変更議論中@詳しくは自治スレへ:2009/02/25(水) 08:28:52
スタンドアローンなら分離する必要ないだろ
バックアップしてないの?
リンクテーブル遅いし
398388:2009/02/25(水) 08:54:10
>>391,392
ごめんなさい。ちょっと書き方が悪かったですね。
既定値で0が表示されますが、それを消して編集を確定するとnullで保存されるので、
既定値に0を設定しても確実に0が保存されるとは限らないということです。
ということで、>>392さんの言ったとおりです。


リンクテーブルってランタイム使ってクライアントに配った場合はどうなるん?
確かランタイムじゃautoexeでメニュー用意してやらないとまともに動かない上に
テーブル操作もできんし、ましてやリンク先いじるなんてできないっしょ。
400名無し変更議論中@詳しくは自治スレへ:2009/02/26(木) 00:28:57
>>394
> ・リンクテーブルを使わずにテーブルに接続すれば、情報の秘匿につながる。

kwsk頼む
>>400
リンクテーブルだと、shift押しながら開いたときに直接テーブルのデータを書き換えられちゃうけど、
ADOやDAOで接続するようにすればリンクテーブルを直接編集されなくて済むってことかと。
CreateDatabaseで新規に作ったファイルにDAOを参照設定したいのですが、
どうすればいいのでしょうか?
Access2003で質問です。

フォーカスの移動に応じて状況依存ヘルプをラベルに表示したいと思っているんですが、
全てのコントロールのGotFocusを書かずに済む方法ってありますか?
親フォームのイベント等でフォーカスの移動を知ることができればいいのですが。
404名無し変更議論中@詳しくは自治スレへ:2009/02/26(木) 21:53:14
現在、ACCESS勉強中、練習にと思って、障害者の方々が参加できるアビリンピックという競技の課題をやってみようと思ってびっくり!
こんなデータベース、健常者でも3時間で作れないよ。すごいな。

http://www.jeed.or.jp/activity/abilympics/download/30th_kadai112-A.pdf
>>403
イベントでやるなら全部書くことになると思うけどねぇ・・・
ヒントテキストとかステータスバーに表示するとかじゃダメなの?
406403:2009/02/27(金) 07:24:01
>>405
一行で収まらないような、入力規約や操作ヒントを出したいと考えているので。
フォーカス移動をイベントで取得できそうに無ければ、タイマで監視みたいな方法になるかな?
>>403
それは手間とか見栄えって問題であれば、フォーカス取得時のところに
=func()
って書いてやればみんなそれを呼んでくれる。
Function func() の中では
ActiveControl.Name
で名前を取得出来る。
ショートカットってあるじゃん。alt & aみたいな。
あれを設定するとラベルに(a)がついて目障りじゃん。どうしたらすっきり出来るんだい?
仕様です。
410名無し変更議論中@詳しくは自治スレへ:2009/02/27(金) 19:36:08
404ですが、スルーされちゃってますね。もしかして、私が思うほど難しい問題ではなくて、皆さん、これくらいのデータベース、ちょろっと作れちゃうですか?
本とか読んでもどうしても作れない私にアドバイスを・・・
>>410
ただ読んだ感じ、作り上げることよりも
概念を理解できているかに重きを置いているような気がする。
3時間ではフォームすら俺には作れない。
412名無し変更議論中@詳しくは自治スレへ:2009/02/27(金) 20:00:49
>>411
やっぱそうですよね。仕様を読んだ限り、フォームも二種類のピクチャ用意して、予約済みかどうか明確に判るようにしなければならないようなきがしますので、
あとクエリも与信管理なんて、普通の本には出てきませんよね。こういうのはやはり実務でACCESS使ってる(金融関係とか)人でないと、作成無理ですよね。
障害を持っている方は、何か特別な才能を持っているとしか思えないです。
>>412
障害者って言ってもピンキリだよ。
事故で義足になった人だって、障害者なんだし。
>>412
ホーキンス博士も障害者だぞ。知的障害者がACCESS使うかよw 先入観ありすぎてワラタ
415名無し変更議論中@詳しくは自治スレへ:2009/02/27(金) 20:45:51
>>413
>>414

いや、その辺は混同してないつもりなのですが、繰り返しになりますがこのスレの住人さんたちは、>>404のデータベース
ちょちょいと作れそうな人が多そうなんで、何を勉強すれば、例題レベルのデータベースが作れるのか、聞きたかったんです。

やっぱ、3時間でこのデータベース作るのは、どう考えても無理ですよね。
416414:2009/02/27(金) 21:00:32
>>415
今の俺には無理。俺は実際のコードを見ながら勉強したいんだけど、mdbで売ってるのって結構値段が高いんだよね。数万円からだよね。
数千円の本には書けない内容があるからだろう。コードを見るだけで数万円ということは、それを作るためのノウハウはもっと高いだろうね。
結論としては、安い値段では教える気にならないくらいの努力を積むことが必要だと思われる。
417名無し変更議論中@詳しくは自治スレへ:2009/02/27(金) 21:48:05
誰でも最初は素人 こつこつと自分のペースで覚えていけばいい
ただ継続していくのが一番大事ですよ
画像付きの商品一覧みたいなのを作りたいのですが、
表形式のフォームで行毎に画像を変えるのは出来ない
のでしょうか?

画像ファイルはOLE型ではなく、外部に持ちたいです。

>>418
フォーム上に Image オブジェクトを配置して、フォームのイベント時に
Image オブジェクトの Picture プロパティをセットしたらできそうですよ。
420名無し変更議論中@詳しくは自治スレへ:2009/02/28(土) 03:32:40
次のように[テーブルA].[住所]をクエリーで、[テーブルB].[都道府県]と前方一致
したものに対して、結果Cを出したいのですが、うまくいきません。

テーブルA
ID 住所
01 埼玉県さいたま市
02 千葉県船橋市
03 東京都八王子市
04 埼玉県秩父市
05 茨城県土浦市

テーブルB
都道府県
埼玉県
千葉県


結果C
01 埼玉県
02 千葉県
04 埼玉県


クエリーのフィールドには
IIF([テーブルA].[住所] Like [テーブルB].[都道府県] & "*" , [テーブルB].[都道府県])
が入っております。
テーブルA、テーブルBから 結果Cを導くには、フィールドにどんな値を埋めたらよいでしょうか?
>>420
SELECT テーブルA.ID, テーブルB.都道府県
FROM テーブルA, テーブルB
WHERE (((テーブルA.住所) Like (テーブルB.都道府県) & "*"));
422名無し変更議論中@詳しくは自治スレへ:2009/02/28(土) 04:23:05
Access2000を使用しております
データアクセスページの事で質問ですが、グラフ作成の際
エラーが発生し作成できません
エラー内容は"オブジェクトがありません エラー424"と表示されます
エラーの回避方法などご存知の方、ご伝授頂けないでしょうか?
宜しくお願いします。
423418:2009/02/28(土) 09:09:23
>>419
回答ありがとうございます。
データに[商品コード]があり、外部に C:\image\[商品コード].bmp があります。

表形式のフォームの場合には、レコード読込毎に発生するイベントが見つからず、
ImageオブジェクトのPictureプロパティに画像ファイルをセットすることが
出来ませんでした。
>>415
別に無理ってことはないだろ?
障害者って言っても、Access初心者ってわけじゃないだろうし、
課題の1〜5まではAccessのもっとも基本的な
「テーブルのデータをフォームに表示する」と「フォームからデータを入力してテーブルに保存する」
って作業だし、印刷だってテーブルさえちゃんと出来ていれば5分とかからず作れる。

障害者と初心者を混同してないか?

何を勉強すればって言っても、
テーブルにデータを保存する方法
テーブルのデータをフォームで表示する方法
テーブルのデータをレポートで印刷する方法
あとは、テーブルからデータを検索して有るかどうかをチェックする方法
を勉強すれば出来るだろ。
そこからさらにマニュアル作れって、鬼だな
426名無し変更議論中@詳しくは自治スレへ:2009/02/28(土) 14:48:44
マニュアルまで作れってすごいな MOSよりよっぽど難しそうな感じ
427名無し変更議論中@詳しくは自治スレへ:2009/02/28(土) 19:45:31
>>425
>>426
同意です。MOSって結局、テストの為のテストって感じで、あまり問題のときがいが無いんですよね。
それに比べて、アビリンピック課題は、結構、実用的なデータベース作成を求めてる様で、
この課題で、勉強したいと個人的に思ってます。でも、与信管理とか、イベント管理とか、
実際にその業務に関わっている人達が有利な問題ですね。ちなみに今年からは更にSQLも使用する様な課題にレベルアップするそうです。
マニュアルは別として、DB部分だけでも作成したいと思っていますので、色々と質問するかもしれませんが、
よろしくお願いします。
>>424
障害者と初心者の混同はしていないつもりです。ただ、与信管理や予約処理の部分は、アドバイスにある内容だけ勉強しても無理なような気がするのですが・・・
>>427
無理と言われたらそうですかと答えるしかないけど、
424に書いたことがちゃんと出来るようになったら、きっとこのプログラムは作れると思うよ。

テーブルの読み書き・検索の応用がAccessのすべてだから。
429名無し変更議論中@詳しくは自治スレへ:2009/02/28(土) 22:35:49
一般的にAccessを使いこなしているって言われている人はどの程度のレベルの人を
いうものなんでしょうか(フォーム・クエリを使えるのは当然で、VBAを思うように使えるレベルとか?)

それと漠然とした質問ですが、自分は基幹システムから出力したテキストファイルを元にデータ
を取り込んで利用する形態がほとんどですが他の方もそんな感じの利用法が多いんでしょうか
>>429
一般的になら、そのレベルは使いこなしてるうちに入るんでは?
中にはAccessの機能をほとんど使いこなしているが、
テーブル設計が駄目駄目な人もいるんだろうな。
432414:2009/03/01(日) 01:09:57
割り込んですみません。
WinXPspsとACCESS2002sp3です。
今日、突然メニューバーが消えてしまって、どうしても出せなくなりました。
唯一つかと思いきや、PCの中の全てのmdbファイルのメニューバーが消えてしまって焦りました。
結局、ネットでマクロを作ってメニューバーを出す方法を見つけ出して解決したのですが、
この現象の原因はなんでしょうか?突然、前触れもなく起きてビックリしました。
433名無し変更議論中@詳しくは自治スレへ:2009/03/01(日) 01:21:24
>>430
いえ、覚えても覚えてもAccessってのはまともなのを作ろうとすると、クエリの数がどんどん増えていって
管理が大変なんですよ。

基本的にフォーム上に表示されている日付や期間やそのほかにも絞込み用の項目を参照してパラメータクエリ
にして作るのが普通でしょうから、一つのフォーム上で、抽出のために何種類かのクエリを選択できるようにすると、
今度はフォーム上のコントロールを変則的に扱わなければならなくなるんでVBAでもあっちを変更したら、それに合わせて
これこれのコントロールのソースを変えたり表示を切り替えたりしなければならなくなったりと、
非常にめんどくさいです。
(取り込んだ何種類かの外部データを抽出条件に沿って取り出す場合大体の部分(日付期間指定)は同じなもんで、フォームを
 いくつもつくるのに抵抗を感じているので、ついつい一つのフォーム内に詰め込みすぎてしまうとこうなってしまいます)
ですので、他の方はそういう点をストレスなくうまく管理できているのかなぁと思ったもので...
434名無し変更議論中@詳しくは自治スレへ:2009/03/01(日) 01:29:34
>>431
> 中にはAccessの機能をほとんど使いこなしているが、テーブル設計が駄目駄目な人もいるんだろうな。

入力の段階から自分で蓄積して言ったデータベースなら確かに正規化に合わせてテーブル設計をするのが普通だと
思いますが、私のように外部データを取り込んで利用しているのでそれほど正規化を意識しないでやってます
(というか外部データの場合、正規化を意識するとかえって、取り込むデータとそうでないものを取捨選択しなけ
 ればならなくなったり、別にマスターを準備したりするんですけどそのマスタの取得タイミングも意識しなければ
 ならなくなるもので、読み込むデータ量に合わせてケースバイケースで対処しています)
435名無し変更議論中@詳しくは自治スレへ:2009/03/01(日) 01:41:54
みなさんは一つのmdbファイルにいくつのテーブル・クエリ・フォーム・モジュールを
つくりますか?

ちなみに今自分が作っているやつは、今ざっと見た限りでは、
テーブル(23)・クエリ(50)・フォーム(7)・レポート(0)・モジュール(3)
ってな感じです
データテーブルはリンクしているので、大体がアプリケーション部分ということになりますけど、
それでも最適化した状態で約1Mくらいは容量くっています
>>435
それがどれほどすごいかは理解できないが、俺は基本的に単機能で作る。
なので1ファイルだとテーブル・フォーム等は数個しかない。
その代わりメニューを作り、外部mdbを立ち上げられるようにしている。
クエリはほとんど使わない。SQLのテストとか、フォームの雛形作るために一時的に作ることはあるが。
フォームは絶対に閲覧用と入力用を別に作らない。面倒くさいもの。
閲覧用=入力用だね。連結フォームは使わないので、これで十分。
どうしても一覧がほしくてサブフォームを使うにしても、そこは書き換え禁止にしてある。
>>432
メニューバーがマウスで移動出来るようになってると、ちょっとしたマウスの操作で消しちゃうこともあったりしますよ。

>>433
クエリを作っておかないでVBAで書いてみたらどうでしょう。

Docmd.RunSQL "select * from ・・・"

438414:2009/03/01(日) 10:00:16
>>437
一仕事終えて、ネットで遊んでいて、さて閉じるか、というときに見たらメニューが消失していました。
ネットで探したら、私以外にも突然消えた人がいました。
そして、他のmdbや新規mdbの全てでメニュー消失で更に驚きました。
起動時の設定をいくらいじっても直らないのには閉口しました。
ようやく、マイクロソフトの情報を探し当てましたが、結構苦労しました。これは糞仕様と言ってもいいのではないでしょうか?
439名無し変更議論中@詳しくは自治スレへ:2009/03/01(日) 12:53:11
せっかくだからどういう時にメニューが消えるエラーが発生するのか関連ページを
公開してよ
440414:2009/03/01(日) 12:57:23
ACCESS メニューが消える に一致する日本語のページ 約 47,000 件中 1 - 10 件目 ( 0.095 秒)
441名無し変更議論中@詳しくは自治スレへ:2009/03/01(日) 13:18:17
>>436
取り込む外部データはデータ4種類、取り込むマスタ1種類、内部的に保持するマスタ4種類なんですが、取り込んだデータは
フォーム上で抽出表示するデータの時点で集計されたデータで何レベルか種類があります。

また、クエリは基本的にアクションクエリは作らないようにしていますが、今年度・前年度を
横に並べて、新旧比較ができるようにしているので、単純な集計クエリだけでできず、色々レベルの
集計結果を得るために必要な中間クエリがいっぱいあります。

左右にならべて表示するまでに「今年集計クエリ、前年度集計クエリ」→「UNION ALLで連結するクエリ」
→「左右に並ぶようにそれらを集計クエリ」→「集計レベル1(科目・補助科目・組織名)」→「集計レベル2(科目)」
「集計レベル2(組織)」そのほかデータによっては「明細抽出用クエリ(今年度・前年度それぞれ)」、
「スピードアップのために途中集計を一時テーブルに書き出す」ってな
感じです。
作成当初はクロス集計クエリを使おうかと思ったのですが、集計キーとなる項目を計算式で作っていたの
が原因かどうか分からないですが、パフォーマンスが思ったより悪かったようだったのであえて避けました

普通のAccess使いは単一集計だけで、集計で何種類もレベルを変えた見せ方なんてしないんでしょうかね?
442名無し変更議論中@詳しくは自治スレへ:2009/03/01(日) 13:47:19
>>440
現象と対処法は載っていましたが、結局ACCESS メニューが消える原因は分かりませんでした
原因ってなんなんですか?
443名無し変更議論中@詳しくは自治スレへ:2009/03/01(日) 14:13:35
陽気の性だよ
特に黄砂の吹く季節は頻発する
>>438
糞仕様っていうからにはマイクロソフトのサイトに「メニューバーが何もしなくても勝手に消えるのは仕様です」って書いてあったってことだよね?
それがどのページなのか教えてほしいです。
>>441
あまりにも複雑ならVBAでワークテーブルにデータを作るのもいいんじゃないかな。
ちなみに、前年と当年を並べるなら

SELECT *
FROM tbl AS A, tbl AS B
WHERE (((A.年月)=DateAdd("yyyy",-1,[B].[年月])));

こんな感じでクエリを作ればとりあえず並ぶ
446名無し変更議論中@詳しくは自治スレへ:2009/03/01(日) 18:10:20
なるほど自己結合ですか、そういう考え方もありですね気づきませんでした

ただ今のところ今年度・前年度の「同月」「年度累計」比較をしていて、期間はフォーム上
の日付でそれぞれ指定できるようにしています

また外部データは日中に行われる対象の仕訳をソースとして取り込んだ後に、最終的な結果までクエリで
算出させています
ですから、ソースから結果まで全部連動させたクエリだと指示の都度表示に時間が掛かってしかたがないので、
フォームで年月を選択した際に、「集計レベル1(科目・補助科目・組織名)」で今年度・前年度の比較を
列項目に展開した形でワークテーブルに一旦書き出して、対象年月を変えない限りは、これを仮のソースにして
その後の「集計レベル2(科目)」「集計レベル2(組織)」を集計できるようにしています

こういう利用の仕方ってあまり一般的ではないんでしょうかね
作ったいいけど保守がめんどうに思えてきました
他の方はもっと効率的にやっているんですかね
今改善方法として、外部データ(仕訳)を取り込む際は、月単位でまとめて得るように
しているので、取り込む際に一旦仮テーブルに読み込んでから、そこで本登録にあたって
「個々の仕訳明細データ」と「月単位の集計データ」の2種類を正規データとして本テーブルへ
読み込んで、対前年同月・累計で比較するときは、「月単位の集計データ」を元に集計をするように
改善しようかと検討中です
447名無し変更議論中@詳しくは自治スレへ:2009/03/01(日) 18:27:05
>>445
> WHERE (((A.年月)=DateAdd("yyyy",-1,[B].[年月])));

よく見たら、条件部分のDateAddの引数がちょっと変な感じに思えますけど
ちゃんと正しい結果比較ができるのでしょうか?
([年月]が日時型だと前年同日で結合されてしまいませんか?文字列型だと正しくDateAdd関数で
正しく計算されないようですし...)

これって[年月]項目の実データって、文字列型("2009/01")それとも日時型(#2009/02/01# ←初日で統一)
どちらを想定して書かれているのか教えてください
448445:2009/03/01(日) 18:52:30
>>447
こんな感じでクエリを作れば横に並ぶという例であって、月で比較したければそれぞれ
Format関数で整形すればいい。
しかし、これだって100%優れている方法とは限らないし、速度的にも速いとは限らない。
どういうクエリを組み立てるのが一般的なのかなんて答えは無いわけで、
正しい答えが出る方法が一番偉いに決まってる。
449名無し変更議論中@詳しくは自治スレへ:2009/03/01(日) 19:19:14
>>444
      ハ,,ハ
     ( ゚ω゚ )  お断りします
    /    \    
  ((⊂  )   ノ\つ))
     (_⌒ヽ
      ヽ ヘ }
 ε≡Ξ ノノ `J
>>433
だから慣れてくるとデザインビューではフォームの大きさやコントロールの位置などの視覚的な
部分を決めるにとどめて、フォームやコントロールのプロパティは全てVBA上で設定するように
なるんだよ。1つ1つのコントロールをクリックしてプロパティを選んで内容を打ち込んで、、、って
やってると膨大な時間がかかるしイライラする。
451名無し変更議論中@詳しくは自治スレへ:2009/03/01(日) 20:53:40
本当にAccessを使いこなしている人ってこういうところを自分なりにフォームで作るところはどこどこまででってな感じで決めておいて、
処理的なところはなるべくVBAの標準モジュールの機能を呼び出す形に統一しておくことで、
作成にかかるコストを効率化しているんでしょうね

残念ながら自分はまだその域までは達していないので作成するのにすごい労力を消費している感じです

せっかくなので聞きたいのですが、標準モジュールにいれてある「ユーザ関数」や「汎用プロシージャ」を
どのmdbファイルでも利用できるようにするには、mdaファイルにしてアドイン扱いにすればいいのでしょうか
それとも裏覚えですが、VBE画面で参照設定に設定するのでしょうか
なんとなくそんな形でやるみたいなイメージはあるのですが、正しい利用の仕方がよく分かりません。
 アドイン=専用に作成したフォームや一連の処理を実行させる機能
 参照設定=自作関数やプロシージャを通常の標準モジュールと同じように扱えるようにする機能
で間違いないですかね

二つの使い分けについて分かりやすく解説しているページとかありませんか?
452414:2009/03/01(日) 20:59:11
>>444
既知のトラブルだから。
MSが対策を公開していたから、そう思った。
今度、テーブルリンクを使ってメインテーブルの入ったファイルをサーバ上に置いて
4〜5人で入力をするというのに挑戦しようと思っています。
入力中はワークテーブルを使って、更新ボタンでメインを更新する方法にしようと思います。

そのようなサンプルをいくつか見ていたのですが、主キーにオートナンバーを使わずに
わざわざ番号が1つだけ入ったテーブルを作ってインクリメントしている例をよく見ました。

このような処理にする利点は何なんでしょうか?
>>452
わけもなく突然消えるようにプログラミングするわけないから、仕様ではないと思う。
検索してみたけど、何もしなくても突然消えるっていうのは無かったように見える。

>>453
オートナンバーを使わないのは、後々そこのデータを出し入れするからかな。
たとえば、1というレコードを別テーブルに退避しておいて、あとで戻そうと思ったときに、
オートナンバーだと1というレコードで戻せない。自分で番号をつけていれば戻せる。

番号が一つだけ入ったテーブルを作るのは重複しないようにするためかな。
そういうテーブルを作らなくても出来るけど、作るのも悪くない。
ttp://www3.uploda.org/uporg2058566.jpg

AAというフリガナをテキストボックス1にいれたら、
テキストボックス2にAAAとAABという商品をこんな感じで選択肢として出すことはできますか?
1つしかない商品コードでの検索はできたのですが、曖昧かつ選択肢がある場合でどうやればいいかがまったくわからないです。
>>453
複数人で1つのファイルを操作する場合には同時更新に注意する必要があります。
必然的に排他制御などを考えるわけですが、残念ながらAccessに於ける排他制御は
不完全で問題が発生する可能性が高いのです。
そんな理由でオートナンバー型を使うのに抵抗がある…ということだと思います。
自前で用意したテーブルを元に主キーを生成すれば、自分で工夫する余地が生まれる
ということではないでしょうか?

一度、[Access 排他制御]でググってみると死屍累々、みなさんの苦労を
垣間見ることができるかとw

>>455
Like演算子を使えば抽出できますが、希望の形でテキストボックスに表示するには
VBAを使って改行コードを入れるなどの工夫が必要な感じですね。
457名無し変更議論中@詳しくは自治スレへ:2009/03/02(月) 13:14:36
Access97で実地棚卸のアプリを作ったのが98年。
これ以降、手直しを繰り返しながら、まる10年使ってきましたが、
Access97では、在庫の画像をテーブルで管理できないため、やむなく
断念しています。
ビットマップは可能ですがファイルの容量が大きすぎてペケ。
Access2003や最新版のものでは、テーブルでjpegやgifの画像は管理
できるのでしょうか? ご教示いただけると嬉しいです。
458名無し変更議論中@詳しくは自治スレへ:2009/03/02(月) 13:27:21
>>457
2007すればオケ
2003じゃ無理
プチ在庫管理と言うデータベースを使用しています。
こちらで質問するのはおかしいかもしれませんがお尋ねします。

印刷ボタンを押した後のプレビューをExcelにエクスポートして使用していたのですが
別のデータベースソフトを試用した際、バージョンの違うランタイムを入れられたらしく
Excel形式でのエクスポートが蹴られる様になりました。
自前でレジストリの修正をしてくださいとのメッセージです。

レジストリの修正で共存できるようになりますでしょうか?
460457:2009/03/02(月) 15:33:59
>>458
早速のレスありがとうございました。
10年そのままだったので、2007を買うことにします。
97からのアプリ継承は無理でしょうけど、そろそろ
作り直したいと思っていましたし…
入力項目:日付の横に「前日」、「翌日」とそれぞれコマンドをつけて、
押下時に前日、翌日を表示させるようにしているんですが、
押しても値がかわりません。正確にいうとかわってはいるんですが、表示が出来ていない状態で
カーソルを日付にもっていくと正確な日付が表示されます。
コード中にsetfocusをいれれば解決するんですが、なんか気持ち悪くて質問しました。
はやりコード中にsetfocusしないといけないのでしょうか?

xp sp2 、access2003、VBA可
>>461
[日付]はテキストボックスですよね?
テキストボックスには Value と Text という類似したプロパティがありますので
コマンドボタンでどちらのプロパティにセットしているか確認してみてください。
2通りとも試してみると理解が深まるかと思います。
>>459
その試用したデータベースソフトをアンインストールしてもなおらないの?
そして、そのエラーメッセージがどういうのだかわからないけど、そのエラーメッセージでググってみたら何か出てこないの?
>>454
でもね。消えたのよ。
ネットで遊んだ後にAccessを表示させたらね。
特別な操作なんて全くしていない。というか、メニューを消す操作を知っていたら教えてください。
しないように気をつけますから。
MSの指示通りにマクロをつくって治ったけど、大焦りでしたw
>>462
ありがとうございます。
早速ためしてみます。
>>462
2通り試してみて、違いがわかりました(つもりです)。
今までは、valueで値のセットを行っていました。

結論からいうとどちらの方法をとるにしろ、
setfocus(text使用時は設定前、value使用時は設定後)は
必要になるということでよろしいのでしょうか?

467466:2009/03/03(火) 08:38:30
あー、すみません。
textに代入する前のsetfocusはなんか効かないみたいです。
もうちょっと調べてみます。
>>464
仕様とバグの区別ついてる?
>>463
上書きされたランタイムはそのままの様でアンインストールしても変化ありませんでした。
プチ在庫管理そのものは.mdb単体をダウンロードしたものです。

Microsoft Excel 形式、リッチ テキスト形式、MS-DOS テキスト形式、HTML 形式でデータを出力するための書式が Windows レジストリにありません。
プチ在庫管理 を再セットアップするか、レジストリの設定を修正してください。レジストリについて詳しくは、[ヘルプ]をクリックして、表示されるヘルプ トピックを参照してください。
[ OK ][ヘルプ(H)]

↑なメッセージがポップアップされます。
ヘルプを表示しても
ACCESSで使用するWindowsのレジストリの設定を変更する
と言ったタイトルで
目的のトピックがまず判りません。
また幾つか覗いてみても肝心の修正値が不明です。
>>466
日付をボタンでセットするときに、テキストボックスに値を入れるか、フィールドに入れるかの違いです。
たとえば、
フィールド名 : 日付
テキストボックス名 : txt日付
があってテキストボックスにコントロールソースとして設定されているとき、

Me.txt日付 = Date()

とすると、テキストボックスにすぐに日付が表示されると思います。

Me.日付 = Date()

とすると、元のテーブルのフィールドには書き込まれますが、画面上では反映されません。テキストボックスに
移動するか、

Me.txt日付.Requery

とするとすぐに画面に反映されます。
どちらでもいいとは思いますが、フォームで何かをするときにはテキストボックスにデータを入れるように
統一したほうがいいかもしれませんね。
471466:2009/03/03(火) 13:02:09
>>470
なるほどです・・・・
どうもありがとうございました。
顧客ID
001
001
001
001 ←
002 △
002 ←
003 △
003 ←
004 △
:
:

do until rs.eof 〜 loop のループ処理中に
上記の←のタイミングでのみ、ある処理を実行したいのですが、
判別する簡単な方法があったら教えて下さい。
今は顧客IDが変わったとき(△の所です、顧客ID:002の1レコード目に来たときに
顧客ID:001グループに対する処理をやってます)にやっているんですが、これがめんどくさくてなかなかです。
>>472
.MovePrevious
で1レコード戻るっていうのはどう?

ただ、あまりデータベース的な考え方じゃないので、根本的なやり方を再検討したほうがいいと思うけど。
474459:2009/03/03(火) 17:48:07
自己解決しました
試用したデータベースをアンインストールしても
ACCESS2002のランタイムが別でインストールされていたようでした
これをアンインストールした所
ACCESSの関連付けが無くなりましたが
再度、起動アプリケーションの指定をした所
officeがACCESS2000の再インストールをしてくれました。
Access2003を使っています。

データ閲覧用のフォームに絞り込み用の非連結コンボボックスを付けてみたのですが、
フォームのプロパティで「更新の許可」を「いいえ」にしていると、非連結コンボボックスまで
編集不可能になってしまいました。

このような場合は、どうするのが良いのでしょうか?
更新を許可して、表示用コントロールを全て編集ロックする?(ロックし忘れがあると怖い)
データ表示をサブフォームにする?

他に何か良い方法はありますか?
>>472
レコードセット取得時、顧客IDで昇順ソート。
ループに入る前に顧客IDを変数に退避。
以後、変数とrs!顧客IDの内容をチェック。

Dim 変数

変数 = rs.顧客ID
Do Until rs.eof
If 変数 = rs.顧客ID Then

Else
変数 = rs.顧客ID

End If

Loop
477476:2009/03/03(火) 20:36:45
間違えた。

変数 = ありえないダミーを入れておく
Do Until rs.eof

だったわ。
478476:2009/03/03(火) 20:38:51
さらに間違え。
比較演算子を<>にすればいいだけじゃん。
479476:2009/03/03(火) 20:43:53
三度スマン。
降順ソートな…orz
>>469
「バージョンの違うランタイム」を削除して、元から入っていたランタイムをもう一度インストールしてみたらどう?
環境がわからない以上、これ以外のアドバイスは難しい。
ただ、

Microsoft Excel 形式、リッチ テキスト形式、MS-DOS テキスト形式、HTML 形式でデータを出力するための書式が Windows レジストリにありません。
プチ在庫管理 を再セットアップするか、レジストリの設定を修正してください。レジストリについて詳しくは、[ヘルプ]をクリックして、表示されるヘルプ トピックを参照してください。
[ OK ][ヘルプ(H)]

を見るに、そのアプリケーションの問題ではなく、そのパソコンの環境の問題っぽいので、
作者に問い合わせても難しそうだね。
481480:2009/03/03(火) 22:04:22
と思ったけど、解決済みだったんだね。失礼しました。
>>472
そんな感じの処理になっても仕方ないと思う。

スマートにしたいなら、顧客別にSQLを再構成した方がデバッグしやすいと思われ。
ただレコード件数が多いと処理の面でスマートとは言えなくなるので、
少しでも分かりやすい構造にしたいなら、顧客ID毎にレコード数をまず取得するのがいいかも
483414:2009/03/03(火) 23:08:19
>>468
バグですね。2003ではまだ直っていないようですね。2007は同でしょうかね?
484名無し変更議論中@詳しくは自治スレへ:2009/03/03(火) 23:19:04
>>472
具体的にはそのタイミングでどんな処理をしてるの?
>>483
勝手に消えたことが無いからわからないです。
それと、2007はツールバーもメニューバーも無いのでたぶん勝手に消えないと思います。
486414:2009/03/04(水) 10:02:01
>>485
なるほど。そういう対策をしたのですねw
私はaccessの業務用ソフトを使用して6年目です。このくらい使うとあなたも遭遇しますよ。
>>486
Access2.0から10年近く使ってますが、困ったことはありませんw

っていうようなののしりあいをしても意味が無いのではありますが、
Accessは結構バグがあったりします。検索画面の文字化けとか、
クエリの文字化けとか。両方ユニコードがらみですけど。

あまりAccessやMSに過度な期待をしてバグのないすばらしいソフトを求めるよりは、
そういうことがあるかもしれないということで、ツールバーを復活するボタンを作っておくとか、
ツールバーを復活するためのmdbを用意しておくというような
柔軟性があった方がいいと思いますよ。

ツールバーが消えたという話は聞いたことは無いわけではないですが、
頻度として多くないし、手が滑ってツールバーを分離してしまった可能性も
否定出来るほど検証も出来ていないので
「そういうバグもあるかもしれないけど、あったとしてもなんとかなる」
ようにしておくと自分のレベルアップになります。

485で私も少し挑発的に書いてしまったのが悪いのですが、技術者としては
簡単にバグと言われるとちょっとムッとするとことがあります。
488414:2009/03/05(木) 04:56:11
デザインビューやVBEをいじるときは必ずバックアップを取るようにしています。
メニュー復活.mdbも用意しました。
テストボックスを少し移動して閉じただけなのに、「メモリーが足りません」と怒られたり、最適化が出来なくなったり、といろいろと不思議なトラブルがあるのが、
Accessなんですよねw
489AC初心者:2009/03/05(木) 07:23:11
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【 システム環境  . 】 WindowsVisuta, Access2003
【 VBAが使えるか .】 いいえ
【 VBAでの回答  】 可
初心者ですが、アクセスで行き詰ったものなのでよろしくお願いします。
アクセスで、フォームテキスト上に入力された文字に対して、ボタンを押すと写真が開く・・・
こんな一連の流れなんて言うものは作れないでしょうか?
490名無し変更議論中@詳しくは自治スレへ:2009/03/05(木) 09:35:53
いいえ
491名無し変更議論中@詳しくは自治スレへ:2009/03/05(木) 10:57:18
>フォームテキスト上に入力された文字に対して、ボタンを押すと写真が開く

       ___   ━┓  ___    ━┓
      / ―  \  ┏┛/ ―\   ┏┛
     /  (●)  \ヽ ・. /ノ  (●)\  ・
   /   (⌒  (●) /. | (●)   ⌒)\
   /      ̄ヽ__) /   |   (__ノ ̄  |
 /´     ___/     \        /
 |        \          \     _ノ
 |        |          /´     `\
492名無し変更議論中@詳しくは自治スレへ:2009/03/05(木) 11:12:08
>>489

エスパーな俺が想像で回答するぜ

フォームテキスト上に入力された文字 → 写真のパス
ボタンを押すと写真が開く → 「表示」ボタンで写真表示
と仮定すると

「保存先」テキストに写真の保存先パスを表示
「表示実行」ボタンで写真表示
と設定して

表示実行ボタンのクリック時イベントに

Me!表示実行.HyperlinkAddress = Me!保存先

でいけるんじゃない?
493489:2009/03/05(木) 11:52:28
意味が通じなくて申し訳ないです<(_ _)>
再度流れを確認・・・
使用するもの・・・・帳票A (バーコードが記入されているもの)
バーコード:ある製品を特定するコードが記載
それらを使用して・・・・
帳票Aのバーコードを読み込んで、テキストボックスに表示させる
テキストボックスに表示された、製品番号のコードに対して
コマンドボタン?あたりを使って、製品に対しての写真を表示したい。

こんな感じで、何とか意味が伝わりましたか?
ご教授お願いします。<(_ _)>
>>489
できるだろうけど、どうやりたいのかが問題。
テーブルに写真データそのものを持ってしまうか、
テーブルには写真のパスだけを収納しておくかの2択だろう。
バーコードリーダーを使うなら、AfterUpdateイベントの方がよさ気だが。
495489:2009/03/05(木) 12:51:52
>494さん
テーブルには、写真のパスだけ収納して置きます。
496名無し変更議論中@詳しくは自治スレへ:2009/03/05(木) 13:01:50
>>488
> テストボックスを少し移動して閉じただけなのに、「メモリーが足りません」と怒られたり、最適化が出来なくなったり、
> といろいろと不思議なトラブルがあるのが、Accessなんですよねw

それじゃあせっかくAccess使っても役に立たないんじゃない?
一体どんな環境だよ メモリ少なさ過ぎ OS古すぎとか?
497名無し変更議論中@詳しくは自治スレへ:2009/03/05(木) 13:51:05
>>485

だったら製品番号に写真のパスぶら下げて表示すれば
>>492 の方法で問題ないと思う

写真はどんな方法で表示するの?
フォームに表示、レポート?、IEで表示?、なんかのImageビューアーで表示?
498名無し変更議論中@詳しくは自治スレへ:2009/03/05(木) 13:51:37
ごめん >>495 だった
>>489
Microsoft Forms 2.0 Image使用

製品番号が数値
Me!Img1.Picture = LoadPicture(DLookup("画像名", "テーブル1", "製品番号 = " & Forms![フォーム1]![テキスト0]))

製品番号が文字列
Me!Img1.Picture = LoadPicture(DLookup("画像名", "テーブル1", "製品番号 = '" & Forms![フォーム1]![テキスト0] & "'"))
500499:2009/03/05(木) 13:58:23
修正し忘れた。
DLookupの"画像名"はPathの入っているフィールド名な。
Access2003でサブフォーム上のコンボボックスの値リストの指定で困っています。

サブフォームのフォームヘッダーに絞り込み用のコンボボックスを追加しようと
思ったのですが、現在サブフォーム(帳票)に表示されているデータの一覧を
値リストにするには、どうしたらいいんでしょうか?

リンクフィールドの値が分かれば絞り込めそうですが、この値を取得する
方法はありますか?
502名無し変更議論中@詳しくは自治スレへ:2009/03/05(木) 23:31:41
親リンクフィールドが親フォーム上のコントロールに設定してあると仮定すると、単純に

 [FORMS].[F親フォーム名].[親リンクフィールド]

で参照できるとおもうので、
サブフォームのヘッダにあるコンボボックスの「値集合ソース」に
サブフォームに表示させているテーブルを使って絞込み条件としてつけてやれば良いのでは
503名無し変更議論中@詳しくは自治スレへ:2009/03/06(金) 10:20:22
Access2007は簡単に罫線引けるようになったから、もう桐は要らないよな
504名無し変更議論中@詳しくは自治スレへ:2009/03/06(金) 11:06:47
>>489

これだけレスついてるのにその後できたかどうかの報告も無しかよ
505489:2009/03/06(金) 11:52:58
みなさん、レス遅くて申し訳ないです<(_ _)>
今日何とか、出来ました!
まだバーコードとの絡みがうまく出来ていませんが。
最終的には 492さんのやり方になりました。
ただ、ボタンを押して、Tifファイルを開こうとしたときに
信頼できるファイルですか?の問いが出るのがちょっとo(ToT)o

でも、助かりました。みなさんありがとうございます<(_ _)>
WinXPSp2、Access2002Sp3です。
レポートにOLEオブジェクトを埋め込んで印刷するときに、
当該プロシジャー内に別のコントロールのVisibleプロパティーに関する記述があるとOLEオブジェクトが印刷されません。
VisibleプロパティーがTRUEでもFALSEでも関係なく、一行でも記載があるとOLEオブジェクトが印刷されません。
なんででしょうか?
507名無し変更議論中@詳しくは自治スレへ:2009/03/07(土) 20:47:34
【 システム環境  . 】 WindowsXP, Access2003
クエリ教えて下さい。以下のようなテーブルがあって
名前をユニークにして最後に追加されてる点数のみを抽出したいのです。
名前 点数
AAA 23
BBB 21
BBB 22
AAA 19
クエリ結果
AAA 19
BBB 22
ってな感じで。でも名前をグループ化して点数を最後とか
最大にしても思うような結果が得られず困ってます。↓こうなります。
AAA 23
BBB 22
どうすればよいのでしょう?
>>507
今からでも遅くはありません。
テーブルに「NO」(なんでもいいけど)という名のオートナンバー型のフィールドを追加しましょう。
そんでもって、「名前」をユニークにして「NO」の最大値を抽出するクエリをつくる。
これと最初のテーブルを「NO」で結合させれば、名前ごとに最後に追加されたレコードの点数が抽出できるよ。
もし、最初のテーブルにレコードの追加日時を持たせてるなら、オートナンバー型のフィールドを追加しなくても
同じやり方で抽出できる。
509507:2009/03/07(土) 21:29:53
>>508
できました。有り難うございます。
書き忘れましたがIDと日付は持たせてありましたのでクエリだけ作ったらできました。
ただクエリを1つにまとめる方法なんてないでしょうか?
フィールド追加して
レコードを追加するたびにそのフィールドの値が大きくなるようにして
降順でtop1出すとか
511507:2009/03/07(土) 21:49:17
>>510
なるほど。でもフィールド追加するよりはクエリで解決したほうがよさそうですね。
ありがとうございました。クエリが大量発生中だったもので。
わがまま言わずクエリの命名規則をちゃんと考える事にします。
>>507-508

フィールド名に「NO」はやめとけ。
予約語使うと理解不能のエラーに悩まされることがある。
PC-aでは動いていたのに、PC-bでは動かないとかね。
513508:2009/03/07(土) 22:04:29
>>512
mjd?忠告ありがとう。気をつけます。

>>509
サブクエリでできるよ。
個人ごとの日付の最大で抽出するとして、
日付の条件に In (SELECT Max(WT.日付) FROM テーブル名 as WT GROUP By WT.氏名)
514507:2009/03/07(土) 22:16:05
>>513
わぉこいつはすごい。おいしくいただきました。
クエリも1つで済むし文句なしに解決です
いろいろ有り難うございました〜
>>513
それじゃダメでしょ。名前の条件がないよ。

SELECT 名前,点数
FROM テーブル名 AS T1
WHERE 日付 = (SELECT MAX(日付) FROM テーブル名 AS T2 WHERE T2.名前 = T1.名前);
>>515
あっ、うっかりしてた…!
NOで結合したときのサブクエリを、日付に置き換えてそのまま書き込んでた〜orz
どうもすみません。
>>516
ん?というか、根本的に考え方が間違ってる
518名無し変更議論中@詳しくは自治スレへ:2009/03/08(日) 12:46:14
えっあっているように見えるけどどこがまずいの?
整理しよう。方法は2つある。

テーブルにユニークキー(ID)があって、その値が
レコードが追加されるごとに必ず増大するような設計になっている場合、
In (SELECT Max(WT.ID) FROM テーブル名 as WT GROUP By WT.氏名)
↑これをIDの条件にすれば意図する抽出ができる。

もしくは>>515の方法。
こっちはデザインビューからは作れないから、SQLビューに直接SQLを書き込む。
520名無し変更議論中@詳しくは自治スレへ:2009/03/08(日) 13:29:07
なんだ >> 513 に対して根本的にまちがっているってことだったんですね

てっきり >>515 の方法が間違っているっていってるのかと思った

でも、どちらの方法も直接的にはデザインビューのマウス操作だけでは作れないけど、
条件欄に直接手入力で書くことはできるんじゃないの
いやいや、そのIn句じゃ氏名毎の最大の日付(ID)全部が対象になっちゃうじゃん。

2009/01/01 AAA 15
2009/01/01 BBB 30
2009/01/02 AAA 16

だったらどうする?
>>520
>>515も?具体的によろしく。

>>521
ID=日付ならそうだけど、IDと日付は別々のフィールドでしょ?
>>509はそういう意味だと思う。
ID 氏名 点数 日付
1  AAA  15   2009/0101
2  BBB  15   2009/0101
3  CCC 15   2009/0101
4  AAA  15   2009/0102
5  BBB  15   2009/0102
6  AAA  15   2009/0102

こういうテーブルなら、>>515では不十分。
>>519のin句なら要件を満たす。
524515=521:2009/03/08(日) 13:56:55
申し訳無い、勘違いが重なっちゃった。

>>519はIDのMaxを抽出してたんですね。>>513のまま日付だと思ってました。
ユニークな増加していくIDならそれでOKですね。

>>523
同じ人の同じ日付があるなんて想定してなかった・・・
現実的にあるのかな?
いえこちらこそ。わかりづらい書き方してしまいました。

何の点数の表かもわからないから、>>509じゃないと
テーブルの構成はわからないw
526名無し変更議論中@詳しくは自治スレへ:2009/03/08(日) 16:42:54
一人の名前で同日に複数登録ならば、たしかにIDでないと特定できないからとまずいな、
逆に(名前、日付)でユニークならば >>515 でもOK

要はユニークキーが何になるかってところが肝心ってことかな
最初からもっと具体的にテーブル構成を提示してくれれば良かったのに
Now()で時間も記録すればおk
Access2003で、記事ごとに複数の添付ファイルを付けられる
掲示板のようなものを作ろうと思っています。

形としては、単票形式のメインフォームに、記事を表示するための
帳票形式のサブフォームを持たせています。

ほとんどの記事に添付ファイルは付かないので、できれば
添付ファイルのある記事だけ項目が現れるようにしたいです。

このとき、項目が増えたレコードだけ高さを増やすことは
可能でしょうか?
>>528
可能だろうけど、めんどくさい。
件数に合わせて、フォームのWindowHeightと
サブフォームのHeightを変更すればいいのかな。
ツール→オプション→キーボードタブ→フィールド移動時の動作で質問があります。
フィールド移動時の動作で「フィールド全体を選択」が選択されている場合に、テキストボックスに長文を入力しているときにうっかりTabキーを触ると全選択されて、その後にキーに有力すると文章全部が
消えてしまいます。このテキストボックスにSetstartやSellengthを設定しても、フィールド移動時の動作の方が優先順位が高いみたいで困っています。
このフィールド移動時の動作の優先順位を下げる方法はありますか?
531名無し変更議論中@詳しくは自治スレへ:2009/03/09(月) 21:39:23
勘違い野郎に一票
>>530
自己レスです。
解決しました。VBAから変更できたんですね。
533名無し変更議論中@詳しくは自治スレへ:2009/03/11(水) 11:25:33
【 システム環境  . 】 Windows Vista ビジネス, Access 2007
【 VBAが使えるか .】 はい
【 VBAでの回答  】 可
【 検索キーワード 】 access2007 afteupdate 動かない 等

すいません。知っている方がいらっしゃいましたら教えてください。
Access2000で動かしていたプログラムをAccess2007で
動かせるように変更依頼を受けました。
セキュリティの設定を変更してVBAを動かせるように
したのですが、ボタン押下時のイベントは動くのに
リストボックス選択時(リストボックスのAfterupdate)に
イベントが発生せず、ものが動かない現象が起きています。
見直すポイント等わかる方はいらっしゃいませんか?


534名無し変更議論中@詳しくは自治スレへ:2009/03/11(水) 11:56:36
リストボックスとコンボボックスのAfterupdate、何か変わった気がするのは確か
忙しいから詳細書けない
535名無し変更議論中@詳しくは自治スレへ:2009/03/11(水) 13:34:41
【 システム環境 】 Windows Vista ビジネス, Access 2007
【 VBAが使えるか 】 はい
【 VBAでの回答  】 可
【 検索キーワード】 access2007 afteupdate 動かない 等

後でもいいので詳細についてよければ教えてください。
お願いします。
536名無し変更議論中@詳しくは自治スレへ:2009/03/11(水) 19:13:22
一度そのイベントのモジュールを消して、2007環境の再定義画面で再設定し直してはどうでしょうか
537名無し変更議論中@詳しくは自治スレへ:2009/03/11(水) 19:35:33
Access2000を使用しております
フォーム作成の際にテーブルDataの最新のDataを
表示し履歴として最新から2番目、3番目と表示させたいのですが
最新はLast関数を使用する事で良いのですが
最新から2番目、3番目と表示させる関数はありませんか?
宜しくお願いします。
>>537
日付とかIDとか、データ順が特定できるフィールドはないのか?
あるのだったらトップ値を使えばいい。
539名無し変更議論中@詳しくは自治スレへ:2009/03/11(水) 19:47:55
>>538
回答ありがとう御座います
TOP値と言う関数探して使用して見ます
データはリンクテーブルでIDはありませんが
更新の日付はありますので
>>539
フォームのレコードソースがクエリなら、
デザイン画面で右クリックしてプロパティを出すとそこにある。
2002だと表示の列のところじゃないと出ないが。
541540:2009/03/11(水) 19:57:15
あ、あとわかっていると思うが更新日を降順ソートさせないと駄目だぞ。
542名無し変更議論中@詳しくは自治スレへ:2009/03/11(水) 20:00:24
>>540
ありました
ご丁寧にありがとう御座います
本当に感謝です
543537:2009/03/11(水) 20:27:40
何度も申し訳御座いません
お教え頂いた内容を試してみまして
フォーム作成しましたが最新Dataは表示可能ですが
やはり2番目、3番目のDataはレコードを移動させないと
表示可能にはならないのでしょうか?
本望としては1つのフォームに最新Data、1つ前のData
2つ前のDataと履歴の様に表示させたいのですが
履歴表示部分はサブフォームにするとか。
545537:2009/03/11(水) 20:46:44
サブフォームにして表示してみましたが
レコードは最新を表示してしまい
同じDataをサブフォームも表示した状態になりました
やはり最新のDataや最新から2番目を抽出するクエリが必要なのでしょうか
親フォームには最新、履歴は続く2件のの最新3件ということか。
てっきり入力用フォームに過去3件の履歴を表示したいのかと思った。
親フォームのレコードソースにはトップ値1のクエリを
サブフォームのレコードソースにはトップ値3のクエリをあてる。
サブフォームの更新日の抽出条件で親フォームの更新日を使ってそれ以外を抽出でどう?
やっつけ感が異様に漂っているが。
547537:2009/03/11(水) 22:42:56
>>546殿
返信遅れまして申し訳御座いません
仰られる様に挑戦してみます
色々とお教え頂いてありがとう御座います
Access2003を使っていますが、帳票フォームでレコードセレクタの背景色って
変えることできますか?

編集用フォームの背景色を変えたのですが、レコードセレクタだけ元の色のままで
浮いているので、可能なら色を揃えたいです。
549名無し変更議論中@詳しくは自治スレへ:2009/03/12(木) 13:17:49

殆どの公務員は9時から5時まで職場に居れば良いんでしょ
給与・各種手当・ボーナス・有給休暇・福利厚生・退職金たんまり
仕事出来ても出来なくても居れば首にならずに年々自動的に昇給して行くし
職場にゴミ落ちてても拾わないし、掃除の人の仕事だからって
気合い入れれば40分で終わる仕事を1日掛けてダラダラでしょ
民間人は1日中気合い入れてヒイヒイ言ってるのに

公務員は半数はクビで良いよ、残り半数は給料半減で丁度良い
>>549
桐にしとけ
>>550
ワロタw
標準のレコードセレクタが浮くような配色にして喜んでる時点で
向いてないと思うよ
>>548
レコードセレクタがダメなら非表示にして
カレントレコードだけ色を変えるという手もある

ttp://pub.ne.jp/hatena/?entry_id=1827617
【 システム環境  . 】 Windows Vista, Access2007
【 VBAが使えるか .】 いいえ
【 VBAでの回答  】 否
【 検索キーワード 】 クロス集計 表示 通貨 format

クロス集計クエリウィザードでクロス集計を行い、実行すると、
各フィールド(たとえば1月〜)の数値が[標準]で表示されます。
[通貨]で表示されるようにこころみていますが、うまくいきません。

合計欄に関しては、プロパティシートの書式で[通貨]にすると、[通貨]表示になります。
しかし、各フィールド(たとえば1月〜)の数値は、プロパティシートを[通貨]にしても[通貨]表示にならないようです。

検索で、Format関数を使う方法が示されておりましたので、
デザインビューで、フィールド行を以下のように修正してみました。
<修正前>金額の合計: 金額
<修正後>金額の合計: Format([金額],"\\#,##0")

※SQLビューで見た場合:TRANSFORM Sum(Format([金額],"\\#,##0")) AS 金額の合計

しかし、データシートビューにて、変化がありません。

どうすれば、各フィールド(たとえば1月〜)の数値は、[通貨]単位になるでしょうか。
不足の情報などございましたら、ご指摘いただけたら幸いです。

よろしくお願いいたします。
555名無し変更議論中@詳しくは自治スレへ:2009/03/16(月) 14:47:03
元クエリは通貨なのか?
556554:2009/03/16(月) 15:34:15
>>555
【元クエリ】の、[金額]フィールド([クロス集計クエリウィザード]で、[集計値]に使用しているフィールド)は、
元クエリの元になっているテーブルに、なかったものです。

【元クエリ】が作成された後、新たに作ったフィールドです。(金額: [単価]*[数量])
[プロパティシート]の[書式]で、[通貨]の設定がしてあります。
>>554
式の順序が逆じゃないかい?それだと、通貨形式に変換してから合計を求めてる。
合計してから通貨形式に変換するなら、こう。
Format(Sum([金額]), "\\#,##0")) AS 金額の合計
558554:2009/03/16(月) 15:53:10
>>557
できました!(すごくうれしいです)
ありがとうございます!
559名無し変更議論中@詳しくは自治スレへ:2009/03/16(月) 16:41:17
顧客管理をACCESSでやろうとして、難しくて断念しました。以下のような機能がほしいのです。
有料でも無償でもいいので以下のような機能のものを探しています。ご存知でしたら教えてください。

うちは、分析装置の販売会社で、お客さんの数、現在40件くらい。年間10件くらいずつ増える。
装置を買ってくれたお客さんのとの取引情報、その装置の情報、修理の履歴などを記録していきたいのです。

【お客さんの情報】
 担当者:名前
 電話:
 ・・・

【取引情報】
 xxxx年xx月xx日 装置1を納品
 yyyy年yy月yy日 装置2を納品

【装置の情報】
装置1 シリアル番号 
   付属オプションA   有
   付属オプションB   無
   ・・・・
装置2 シリアル番号 
   付属オプションA   有
   付属オプションB   有
   ・・・・
【修理の履歴】
 xxxx年xx月xx日 装置1の電源回路が故障して修理。
 yyyy年yy月yy日 装置2のパソコンが壊れたので修理。

こんな感じです。いいテンプレートありませんか?
その程度ならEXCELで十分なんじゃ・・・
561名無し変更議論中@詳しくは自治スレへ:2009/03/16(月) 18:17:27
>>559
> 顧客管理をACCESSでやろうとして、難しくて断念しました。
桐を試してみるんだ。
562名無し変更議論中@詳しくは自治スレへ:2009/03/16(月) 18:29:58
>560
コメントありごとうございます。
EXCELだと一つ問題があります。というのは、
装置は、現在数種類扱っていて、各装置には、数十種類のオプションがあります。
それが、現在も少しずつ増えているものですから、EXCELで管理しようとすると、
オプションが増えるたびに、全部のお客さんのEXCELファイルを修正しなくては
いけないので、大変なんです。
桐って、お勧めですか?
でも、買う予算がないので、ACCESSかEXCELでやりたいのです。
よろしく
時は金なり、1ヶ月掛けてaccessで作り迷うたびに質問するか
桐を使い1週間で実用ソフトに仕上げるか。
564名無し変更議論中@詳しくは自治スレへ:2009/03/16(月) 20:55:07
でも桐ってもノウハウがないとできないよね
まずはそこから
>>559
思いっきり桐を勧めますよ。
そんなに難しい案件か?
ほぼそのデータ分けでいいんじゃないの。
履歴とオプションはサブフォームでいいじゃん。
まあEXCELでどうにかこうにか出来てない状況じゃ
ACCESSに手を出したところで余計わけわかめになるだけだと思うよ
568名無し変更議論中@詳しくは自治スレへ:2009/03/16(月) 22:22:51
>>565
も桐を勧めますよじゃ解決にならないだろ!
どんなソフトを使うにしろ、どういう風にテーブル分けしてどう運用したらいいかもう少し具体的に書けよ
あんたみたいなバカの一つ覚えみたいなのがいるから
桐使いみんながバカにされるんだよ
>>559
あるかどうかわからんが一応・・・

ttp://www.vector.co.jp/vpack/filearea/win/business/kokyaku/
570名無し変更議論中@詳しくは自治スレへ:2009/03/16(月) 22:55:28
まずはAccessの一通りの機能を勉強して、それからそれらを管理するためにはどういう
テーブルを作ってリレーションシップを組めば良いかを検討しましょう
とりあえず、分かりそうなところから少しづつ作ってみてください
例えばテーブル構成で言えば、

製品情報TBL (○製品コード、装置名、種別)
オプションTBL(○製品コード、○付属コード、付属オプション名)あるいは(○付属コード、付属オプション名)
顧客情報TBL (○顧客コード、顧客名、住所、連絡先、担当者)
取引メインTBL(納品日、顧客コード、製品コード、シリアル番号、備考)
取引サブTBL (製品コード、付属コード)
修理履歴TBL (○シリアル番号、○修理日、修理内容、原因種別コード、原因詳細、注意事項)
原因TBL   (○原因種別コード、原因種別名)
※○は主キーです

みたいな感じのテーブル構成になるのではないでしょうか
もし上記テーブルを見ても分からない場合は、上記テーブル構成と自分の管理したい内容をイメージしながら
Accessの基本から少しずつ勉強してみてください
571名無し変更議論中@詳しくは自治スレへ:2009/03/16(月) 23:00:50
できない事に対して、なにより自分でいろいろと悩み手探りで進めていくことが一番の解決法です
ずいぶん悟ったような言い草だな。
573名無し変更議論中@詳しくは自治スレへ:2009/03/17(火) 09:45:54
いや、やっぱり桐にさせとけ
574559:2009/03/17(火) 10:55:32
570さん
ありがとうございます。
>オプションTBL(○製品コード、○付属コード、付属オプション名)あるいは(○付属コード、付属オプション名)
どっちを選んだらよいでしょうか?
もし前者の場合、主キーが二つありますが、それはどういう長所があるんでしょうか?
よろしくお願いします。
575559:2009/03/17(火) 10:59:48
570さんのアドバイスに従ってテーブルを作成したのですが、
次に何をすれば良いのでしょうか?
エスパー563
1.出来たテーブルにとりあえずデータを10件なり20件なり入れてみる(現時点で考え得るパターンを網羅出来れば尚善し)
2.リレーション繋げてみて、選択クエリ等を使って思ったように表示できるか確認
3.入力フォームや検索フォームを作ってみる

まるっきりこの通りにする必要はないが、エラー修正しつつ行きつ戻りつ繰り返していくしかないと思う。初心者より。
>>576
accessで挫折した原因は
1:クエリーですか?
2:フォームですか?
3:イベントですか?
1:やVBAでやりたいことを実現するのは相当ハードルが高いと思います。

桐には無料の体験版があり、検索や履歴フォームや表引きなど簡単に
作り込みできます。

 作ってもらって融通の利かないシステムより、4万円で顧客管理ソフト
を作りメンテナンスしながら長く使うと元は取れると思います。

accessを使い1ヶ月で作成されるのか1年かけて作成されるのか解りません
が、1週間だけでも桐に触ってフォームの作り方や、テーブルの作り方の
違いを体験してはいかがでしょうか

ユーザーサポートも無料でユーザーサイトも検索すれば沢山あります。
579559:2009/03/17(火) 18:44:36
桐体験版をインストールしてみたんですが、ACCESSと同じような
印象を受けました。なので私にはACCESSも桐も無理かもしれません。
いっそのこと、データをテキストファイルに保管して、VB.NETで
フォームを作成したり、検索画面つくったりして、自前でDBみたいな
ことするほうが私には手っ取り早いかもしれません。どうでしょうか?
桐の話題は桐の掲示板で、ユーザーサイトはファイルアップも出来ます。
581559:2009/03/17(火) 19:00:06
近所に、情報処理科のエロエロ短大生がいます。
彼女に50万円で作らせたほうが、後々の事も期待できて
私には、手っ取り早いかもしれません。どうでしょうか?
582名無し変更議論中@詳しくは自治スレへ:2009/03/17(火) 19:21:53
>>574 >>575

> オプションTBL(○製品コード、○付属コード、付属オプション名)あるいは(○付属コード、付属オプション名)
> どっちを選んだらよいでしょうか?

オプションの内容が製品に紐つくものなら前者を、どの製品にも違いなくオプションをつけられるなら後者で良いのでは
ないでしょうか。前者の場合は主キーが二つではなく、二つの項目で一つの主キーとします(「複合(主)キー」といいます)
主キーは一般的に、そのテーブルの中で一つのデータ(行)を一意に特定するのに使います。

> 主キーが二つありますが、それはどういう長所があるんでしょうか?
ですので、データ管理上、製品コードとセットの方がオプション内容の特定が後々しやすくなると思います。
(あくまで一般的な考え方ということで、実際この後どういう利用の仕方か分からないのでこの限りではありませんけどね)

Accessのようなソフトはデータ管理の関係でいくつものテーブルに分けてデータを保存して全体として一つの情報を構成する作りなので、
後でクエリなどでデータを人の分かる形式にデータを再構成する際に参照側のテーブルから参照される側の(マスター)テーブルのデータを関連付けます。
その際に、マスター側では必ず主キーを定義しておいて明細側のデータの中の外部キーとマスターの主キーで特定させる役割を持ちます。

あとは、>>577 さんの書かれているような進め方になっていくと思います。
どんなシステムにしろ、あくまで自分で思ったイメージをAccessに乗せ変えていくので、まずはAccessの基本的な操作について一通り慣れましょう。
こういった掲示板では全てを説明して作っていくことはできませんので、あくまで進めていくうちに分からなくなった部分だけを質問するような利用にしましょう。
最初にも書きましたが、自分で色々試行錯誤しない事にはいつまでたっても理解することはできませんよ。

まずは、このあたりを基点に自力である程度形になるまでがんばってください。
>>581
勉強すれば何とかなるよ。
俺のお薦めは5000円くらいでmdbで売ってるのを買って解析すること。
Access2003を使ってます
データーアクセスページでコマンドボタンを作成し
そこからAccess内のマクロを起動させることは可能でしょうか?
(データーアクセスページに表示させる為、dataをインポートしたいもので)
VBAは少々解りますが
VBSはさっぱり解りません
宜しくお願いします
OS XP
acc2002

サブフォームで件数が少ないときにもスクロールバー(垂直)を出したままに
する方法はありますか。
ありましたら、ご教示お願いします。
586名無し変更議論中@詳しくは自治スレへ:2009/03/17(火) 22:08:13
587名無し変更議論中@詳しくは自治スレへ:2009/03/17(火) 22:12:13
>>559
それくらいの顧客管理だったら5万で作るよ

追加で受注、納品、生産、請求
おまけで 発注、仕入、検収
までつけて10万でどうだ
つうか顧客40件程度ならチラシの裏に手書きでいいだろw
話を蒸し返すようで悪いが、これからAccessをやってみようと思う人は、
ソフトそのものよりもまずデータベースの基礎を学ぶのが先。
例えば、Wordを使いこなすのは文章作成の基礎知識があることが前提。
Excelを使いこなすのは表の基礎知識があることが前提。
どちらもほとんどの人が義務教育でやってるし日常で触れているから、ソフトの使い方だけ学べば良い。
が、データベースの基礎は自ら学ばなければいけない。
(それを学ぶための手段としてAccessを使ってみるってことなら、ここで一から訊くのはお門違い)
データベースの基礎をある程度理解した上で、Accessでも桐でも何でも選べばいい。
うちの会社の暇そうな経理が「VBA使えたらカコイイ」くらいの理由でAccess始めようとしてるから、
こんなような事言ってやったら面倒臭くなって今はいじってないみたいだよwww
桐は知ってるがメーカーの管理工学研究所ってのは聞いたことも無いなw
新参か
592名無し変更議論中@詳しくは自治スレへ:2009/03/18(水) 21:11:46
Access2007で業務日誌を作りたいと思っています。
入力項目は日付とその日の業務内容くらいで簡単なものにするつもりなのですが、
あともうひとつ、今後の業務予定を入れたいと思ってそのやり方で悩んでいます。

ひとりひとりにテーブルと専用の入力フォームを用意して、
フォームは毎日1日分のみ表示し、シンプルに
1.日付
2.その日の業務内容
3.今後の業務予定
という形にし、3番に関しては「期限」「内容」「完了確認(チェックボックスなど)」
の3項目を表示し、期限の日付順でできれば未完了の項目のみを表示したいんですが、
いいやり方はありますか?(ToDoリストのような形)

初心者なのでおかしな質問だったらすみません。
アドバイスいただけたら助かります。
>>592
>ひとりひとりにテーブルと専用の入力フォームを用意して
フォームはまぁ、いいとして、専用テーブルなんて最悪な設計じゃないか。
フォームに関しても、俺ならそんな時間の無駄遣いは許さないけどな。
>>592
各自の日誌の項目が殆ど同じなら >>593 の言うとおり各自のテーブルは要らないと思う。
社員マスターテーブルを作成してリレーションシップを作成すれば済むはず。
予定については、表示したい条件でクエリを作成してサブフォームとして設置すれば良い。

例えば、こんな感じ。

テーブル ()は主キー
社員: (社員ID), 社員名
日誌: (日誌ID), 社員ID, 日付, 内容
予定: (予定ID), 社員ID, 期限日, 内容, 完了済

リレーションシップ
社員.社員ID(一)<-(多)日誌.社員ID
社員.社員ID(一)<-(多)予定.社員ID

クエリ(列 | 条件 | 並び順)
v社員一覧: 社員ID, 社員名
v予定_未完了: 予定ID, 社員ID, 期限日, 内容, 完了済 | 完了済=False | 期限日(昇順)

フォーム
日誌:
 日誌テーブルを元に単票のフォームを作成。
 社員IDテキストボックスをコンボボックスに変更(値集合ソース:v社員一覧, 列数;2, 列幅:0)。
 サブフォームを設置(ソースオブジェクト:v予定_未完了, リンク子(親)フィールド:社員ID)。
エクセルに入力させて完了日でも予定日でも
好きな項目でソートしとけや
596名無し変更議論中@詳しくは自治スレへ:2009/03/18(水) 23:41:00
【質問です】

ああ、基本的なことで誰もが一番知りたいことと思うのですが
Access達人の皆様方の考えを教えて下さい。

売り上げ管理みたいな物を作る時に、入力用フォーム・表示用フォームを別に作りますか?
更新可のフォームで表示・検索したりするとデータ弄って変えちゃうような不安が…
かといって、フォームを切り替えるるは煩わしく面倒な感じで…
フォーム1つで済めば良いんですが、グリグリとスクロールしながらデータを見てる時に間違えて変えちゃわないようにとか…

何と言いましょうか、何か良い方法とか、この程度で後は人間が気を付けるのが落とし所とか
俺はこう考えてるからとか、こうしてるとか
考え方の方針・ヒントなりを教えてくだされば嬉しいのですが
>>596
達人ではないが。見た目が同じなら別にフォームを作ることはないなー。

「編集ボタン」を置いて、フォームの更新の許可の「はい/いいえ」を切り替えるか、
「保存ボタン」を置いて、押したときだけ確定させるかのどちらか
(保存せずに閉じようとしたら保存確認のダイアログを表示)で、大体対応できてる。
598名無し変更議論中@詳しくは自治スレへ:2009/03/19(木) 00:12:54
>>597
ああ、有難うございます。
参考になります
>>596
自分しか使わないなら分けない。
人に使わせるなら分ける。
DoCmd.OpenFormする時に第5引数AcFormReadOnlyにしとけや
厳密に言えば入力用と閲覧用のフォームを作っていることになるのかもしれないが、
サブフォームに簡易一覧(書き換え等不可、DS形式)を表示させて、
該当レコードをクリックかインデックスをメインの検索用テキストボックスに書き込むと
メインに表示、修正可能状態になるというのが個人的には好き。

俺もデータが勝手に書き換わるのが嫌で、またその回避方法を知らなかったから
早々に非連結フォームに移行してしまった。
DBの知識はなかったが、プログラムの知識は多少あったので、
VBAのほうが取っ付きやすかった(言語は違うが)。

作るのはめんどくさくても結局かゆい所に手が届くのは非連結のほうなんだよね〜。
フォームに表示する項目数が多いと、非連結で作るのはかったるいな。
でも、連結単票フォームだと追加禁止にしてもマウスのホイールで新規レコード(?)に
移動して涙目。これってバグだろw
>>603
フィールド名とコントロール名に関連があれば、
コード自体はかなり使い回しができるよ。
例えばテキストボックスだったらtxtフィールド名とかにして。
あとはFor〜Eachでまわすだけ。

俺のコントロール命名規則は
コントロール省略名(3文字)+必須項目フラグ(1文字)+フィールド名
で統一している。
必須項目フラグにタグを使う手もあるが、別用途で使う可能性があるから
このようにしている。
605596:2009/03/19(木) 10:07:08
皆さん
色々とアドバイス有難うございます。

自分で今までの方法は、フォーム詳細セクションに表形式で、詳細セクション中身を全部フッターセクションへ複写
フッターセクションが単票になって詳細セクションと自動的に連動する…

見るのは詳細セクション表形式で編集はフッター単票…
ヘルプに記載のないフッターの使い方なんですが、何か変ですかね?
どこかに落とし穴があるとか…
606596:2009/03/19(木) 10:23:19
ああ、やってる事は >>601 さんのアドバイスと同じ感じなのですが…

サブフォーム使わない分、作るの楽がかなあ
でも画面下の方のフッターで編集するから見にくい…
ヘルプに記載ない連動させ方なので落とし穴が心配

2007の分割フォームで特定部分にフォーカス戻せれば目的達せられるのですが
分割フォームで単票部分からデーターシートの特定部分にフォーカス戻す方法はないですよね…
607名無し変更議論中@詳しくは自治スレへ:2009/03/19(木) 12:33:22
>>596
古くて新しい問題、桐にしとけば無縁の問題だよ
アクセスで桐みたいな表示モード編集モードできれば最高だよな。
>>606
閲覧用にサブフォーム使うなら、ウィザード使用で十分。
>>609
kwsk頼む
>>610
詳しくも何も、サブフォームを配置すれば
普通はウィザード立ち上がるじゃん。
ウィザードに従って元になるテーブル設定(既存のテーブルまたは…)、
できたらサブフォーム自体に編集ロックかけたりするだけでしょ。
非連結に頼らないとかゆいところがかけない人って
知恵の輪とか力づくでバキッて外して得意げになってる
土方の人ってイメージw
>>612
そう思われてもかまわないが、最後にwつけるんだったら
2003以下でVBAにまったく頼らないものを作ろうぜ。
本来ならマクロもといいたいところだが。
614名無し変更議論中@詳しくは自治スレへ:2009/03/20(金) 11:49:48
>>611
メインフォームとのリンクは?
ウィザードである?
サボフォーム閲覧・メインフォー編集のリンク
>>614
あゝ、ちゃんと流れに沿っていたのか。さすがにそれは無理だけど、
非連結テキストボックスでの検索が作れれば問題ないレベルのはず。
イベントでどのレコードが選択されているかが取得できるからね。
桐の使い勝手に追いつくのは永久に無理なのかぁ
もう良いよ
桐になれると桐しか使えない
>>612
連結=オートマ、非連結=マニュアルって考えればどっちが難しいかわかるよな?
連結に頼りきってるオートマ限定のくせに知った風な口を聞くなw
つうか、非連結が効率悪いのって最初の一本だけだろ。
表示、初期化、必須チェック、登録部のルーチンができてしまえば、
連結より開発効率がいいと思う。
もし悪いのならば、それは使い回しができないコーディングしている奴が悪い。
非連結だとAccess使う意味なくね?
>>620
そういう意見は繰り返し出てくるが、そうとは思わない。
例えば会社だとソフト1本入れるにも手続きが大変。
言語のみでの開発経験がないからなんともいえないが、
Accessだったらテーブルを視覚的に設計できるし
フォームやレポートも一度ウィザードで作ってそれを修正・非連結化して
製作工程を簡略化できる。
まぁ、レポートに関しては非連結にすることはまずないが。
> 言語のみでの開発経験がないからなんともいえないが、
623名無し変更議論中@詳しくは自治スレへ:2009/03/21(土) 10:53:58
いまどきマニュアル車乗ってる男の人って、、
マニュアル車はいいよ
むしろ今貴重だろ

だけど車自体を持ってません><

のる暇もないけど
非連結でゴリゴリ書こうと思えば簡単にできるけど最小の工数で最大の生産性を追求するのが連結
連結を使いこなせる人間はいつでも非連結に戻れるけど
非連結オンリーの人間はいつまでたっても連結を使いこなせない
マニュアル免許でオートマ車は乗れるけどオートマ免許でマニュアル車は乗れない関係性を考えれば
まるで見当外れの例えだな
96年に買ったAccess95で最初の1本さえ完成すれば
後は全部コピペでいいじゃん!とか言い訳しながら
当時はゴリゴリ書いてたな〜俺もw

でもそんな理屈が通るなら一生死ぬまでCOBOLとか
他の開発環境でもいいんじゃね?とか気がついてから
極力連結だけでどうにかするようにしてる

今はもう非連結で得意げになってる新人にもっと知恵を使えって
諭すのが仕事になってるよw
627名無し変更議論中@詳しくは自治スレへ:2009/03/21(土) 11:56:24
非連結で表形式フォームは、どう書くの?
そりゃあループをぐるぐる回して・・・
非連結で作るんだったらVBAなんか選ばんわ
連結、非連結どちらにも長所と短所があるんじゃないの。
それぞれの長所を活かせばいいじゃん。
なんで二言論になるかなぁ。
631630:2009/03/21(土) 22:12:01
二次言論…orz
632630:2009/03/21(土) 22:13:50
二元論だった。馬鹿まるだし。
★ OS、ACCESSのバージョン→XP、 Access2007
★ ・見積書を作成したいです。
  ・顧客ごとに異なる掛け率を顧客テーブルで管理している。商品テーブルに商品CDと参考価格。
   見積テーブル、見積明細テーブルを、メイン/サブフォームとして、見積書を作成中。→途中までOK。
   見積フォーム(メイン)に顧客CDを入力し、顧客テーブルから顧客の連絡先等を引き出す。→OK。
   サブの見積明細フォームで、注文のあった商品CDを入力し、参考価格を引き出す。→OK。
   見積フォーム(メイン)に記入した顧客に該当する掛け率を、参考価格に掛けて、各商品ごとに見積価格を表示→×
   この最後の処理を、無理矢理実行しようとして、失敗します。
   解決策を教えてください。

▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【 システム環境  . 】 WindowsXP, Access2007
【 VBAが使えるか .】 いいえ
【 VBAでの回答  】 否
【 検索キーワード 】 Googleやヘルプでの検索キーワード「アクセス、掛け率」「アクセス、顧客ごと」
>>633
表示するテキストボックス(かどうかわからんが)の
コントロールソースには何て入力してるの?
635名無し変更議論中@詳しくは自治スレへ:2009/03/22(日) 12:38:45
親フォームに新らしく[txt掛け率]を作成して顧客別の掛け率を表示できるようにしておいて、
サブフォームの「見積価格」のテキストボックスの既定値(またはコントロールソース)に
=[商品CD]*[Parent].[txt掛け率]   ← 既定値の場合、"="は不要かも?
を設定すればうまくいきそうな気がします。(試してはいません)
>>633
>サブの見積明細フォームで、注文のあった商品CDを入力し、参考価格を引き出す。→OK。

この時に、参考価格と一緒に掛け率を取得しておけばいいのでは?
Me.Parent!txt掛け率
みたいにメインフォームのテキストボックスを参照しても良いし、
グローバル変数に格納しておいてもいい。
連結・非連結っていう話が出てるけど、ワークテーブルを用意してそこに連結させて作業するのはどっちに入るの?
1レコードしか無くて、サブフォームも使わないのであれば非連結の方が早いし、
2レコード以上あったり項目数が多い時にはワークテーブルの方が便利。
連結って話が元データを直接連結して編集するってことであれば、それはやらないな・・・。
638名無し変更議論中@詳しくは自治スレへ:2009/03/22(日) 13:19:04
>>635 以外の方法としては、他に
サブフォームのソースに、見積明細テーブルを直接指定しないで、あえて「見積テーブル、見積明細テーブル」を結合したクエリを作成して
それをソースにすることで、直接項目間の計算(クエリ内で掛け算)ができるはずです。

ただしこの方法だと見積額を後で変えられないので、後々のことを考えるとやはり、最初に書いた親フォームの掛け率を参考に、テキストボックス
の既定値で計算してその金額を「見積明細テーブル」に代入させた方が、応用が利いていいと思います。
1レコードでも連結が早いよ

そしてワークテーブルに連結してるならそれは連結
640633:2009/03/22(日) 16:11:24
皆さん、いろいろとアドバイスありがとうございます。
ちょっと試してみます。
641633:2009/03/22(日) 17:33:45
>>635さんの方法でできました!
感謝感謝、大感謝。
これでようやく次のステップに進めます。
ありがとうございました。
ある条件で抽出されたDAOレコードセット(rs)に対して、
レコードを追加する処理を追加しようとしているのですが、
rs.addnewでコケてしまいます。opendynasetでopenしているのですが、なぜでしょうか?


機能としては、抽出条件入力後、フォームに表示されたレコードを選択して、コマンド押下時にレコードを複製
(キーだけ変更)できればいいのですが・・・

xp sp2 access2003 VBA可です。
変更した主キーが実は他のレコードで既に使われてたりとか
主キー項目以外にもユニークキーがあってそれが重複してるとか
NULL禁止のフィールドに値をセットしてないとか・・・

コケる/コケないの2択でとらえるんじゃなくて
エラーのメッセージを読む努力をすべし
>>642
コケるのは AddNew時ですか?(Update時ではなく)

Updateでエラーが出る場合は>>643さんの言われる内容をチェックしてみてください。
AddNewでエラーの場合はクエリ画面から手作業でレコード追加をしてみると
あっけなく原因が分かる場合もありますのでぜひお試しを。
売上管理データベースを作成してるのですが、
パラメータクエリで「品種コード」「売上日付(between〜and〜)」で抽出すると、
何故か複数行に渡って同じレコードが表示されてしまいます。
(品種コード「0325」の「3/21から3/25まで」とパラメータ入力すると、
3/21 売上03 0325 3個
3/21 売上03 0325 3個
3/21 売上03 0325 3個
3/21 売上03 0325 3個
3/22 売上09 0342 2個
3/22 売上09 0342 2個
3/22 売上09 0342 2個
3/22 売上09 0342 2個
3/24 売上12 0365 5個
   ・
   ・
   ・
という形になります←1〜4行目と5〜8行目はそれぞれ全く同じレコードです)

「売上No」「日付」「品種コード」「単価」「数量」というテーブルから作成しています。
原因がおわかりでしたら教えてください。
646645:2009/03/25(水) 19:39:27
すみません、上の書き込みちょっと間違ってました
品種コードを指定してるので、品種コードは全て「0325」となります。

例を作ろうとしてミスりました、すみません。
テーブル同士のJOINミスだな普通に考えると。
648647:2009/03/25(水) 20:23:48
JOINしているテーブルを1つずつ減らしていけば原因になってるテーブルに辿り着くと思うよ。
649名無し変更議論中@詳しくは自治スレへ:2009/03/25(水) 21:44:08
クエリのデザイン画面でテーブルを複数表示させているのに、結合条件を指定して
いない(テーブル間を結合線で結び付けていない)ため、テーブル同士のデータを
総当りで結合するクロス結合になっていませんか?

クエリ内で使っているテーブル構成と、それらからどのような結果を得ようとしているのか
もう少し詳しく書いた上で、クエリの内容をSQL文で示したほうがもっと回答が得られやすく
なると思いますよ。
650645:2009/03/26(木) 07:29:38
テーブルは
品種マスタ:○品種コード、○品種名
売上管理:○売上げNo、品種コード、○日付、○数量
単価マスタ:品種コード、○単価

↑このような形から、○印の部分を集めて上記のフィールドを作りました。
リレーションシップは品種コードで結んであります。(品種マスタ対その他=1対多)

まだ不慣れでSQL文をどこで見るのかわからないので探してみます。
クロス集計も調べてみます。
周りに聞ける人もいなくてずっと悩んでたので助かります。
レスくださった方々、ほんとにありがとうございます。
単価マスタとやらが同一品種コードで複数単価登録されてるんじゃね?
652645:2009/03/26(木) 09:37:28
>651
そうです、同じ品種でも曜日によって販売価格が違う場合があってそうなってます。

品種ごとの売上情報を、期間を指定して閲覧したいんですが、
この状態だと同じレコードが複数行表示されてしまって。

つたない説明ですみません。
>>651
エスパーあらわる

売上管理テーブルに、単価テーブルのどのレコードを採用して売上計算するかのフィールドを持たせないとダメなんでない?
もし売上数量だけ見たいんなら、単価テーブルはリレーション外しとく。
ちなみにSQL文は、デザイン・データシートのビュー切り替えのボタンの横の▼を押すとSQLビューってのが出てくるよ。
ちなみに一定期間の売上データを貯えつつ期間範囲指定で売上データを取り出したい、
ということであれば単価の情報はマスターと伝票の両方に記録しとくのが定石だよ。

でないとその一定期間中に値上げ・値下げがあった場合にマスター単価ひとつだけでは
対応できなくなるから。
655名無し変更議論中@詳しくは自治スレへ:2009/03/26(木) 14:44:00
両方に、って…
マスターの単価は伝票転記用のその時点での最新単価ね。
販売管理系のパッケージでは標準単価とか、伝票の単価とは別の名前で
用意されてることが多いよ
657名無し変更議論中@詳しくは自治スレへ:2009/03/26(木) 16:30:10
じゃ、片方じゃん
・台帳に標準単価
・伝票に販売単価

こういう意味で単価の情報は「両方に」って言ったんだけど・・・ しぬの?
659名無し変更議論中@詳しくは自治スレへ:2009/03/26(木) 16:49:05
それ、単価データ持ってるのは伝票だけ

一々入力するの大変だから、複写元に数字保存しといてコピーデータ入れてるんだろ
確かに伝票入力時にいちいち商品名や単価を打ち込むならマスターは不要だね。
そういう意味ではマスターは単なる入力補助用データということになるね。
つまりマスターに持っている単価など単なる初期表示の為のものだと考えれば
ちゃんとした単価はあくまで登録された伝票データに持っているものだけという
理屈になる訳だねなるほど。。。
661660:2009/03/26(木) 17:34:45
ちなみに俺は>>658ではない。
@台帳に単価あり・伝票に単価なし
A台帳に単価あり・伝票に単価あり
B台帳に単価なし・伝票に単価あり

うーん・・・ 要するに元々の設計が@だったから
Aのほうがいいんじゃないの?って意見させてもらったんだけど
>>659はBのほうが賢い設計だって主張するわけ?
663名無し変更議論中@詳しくは自治スレへ:2009/03/26(木) 17:46:25
@とBは可能だが、Aは不可能

まあ、言葉の遊びだ、熱くなるな
うん・・・

まあAは不可能ってところからかなり頭の悪い人ってことだけは解ったよ
頭の悪い人の言うことに熱くなるなってところだけは同意する。
@だと台帳の単価変えたら今まで入力した伝票が全部その単価になっちゃうし、
Bは新しい伝票入力する度にいちいち単価を入力しなきゃならない(もしくは
過去の伝票からコピー)

という訳でAが普通だろJK。
ちなみにマスターがない代わりに過去の伝票をコピーできるシステムってのは結構あるね。
入力データの複写初期値をマスターなんて言わないだろJK。
原本っていう?
669名無し変更議論中@詳しくは自治スレへ:2009/03/26(木) 19:16:14
外部キーでリンクしてないからな
単価マスタを時系列で管理ってのは教科書に載ってるけど
実際に管理するのはめんどくさい。
個人用データベースのAccessには向かない。
671名無し変更議論中@詳しくは自治スレへ:2009/03/26(木) 19:37:59
同じコードでも、時期により単価自体が変動する単価のようなデータの場合でいえば、
自分もAの方法がいいやり方というか、一番現実的な方法だと思います。
(過去の伝票データから単価を複写する方法は品目数が少ない場合には勝手が良いかもしれませんが、
 何百何千とある品目を管理している場合は、単価設定は別の部署が特定のルールに従って
 設定しているでしょうからね)
672名無し変更議論中@詳しくは自治スレへ:2009/03/26(木) 19:41:22
何より後日単価を利用しようとした時を想定すると、単価マスタの管理が複雑だと結合方法まで
複雑になり、SQLの組み立て時点でのコストが高くつでしょうからね
俺はコピペ元をマスターデータと呼んでるんだ、文句あるかゴウラァ!
674名無し変更議論中@詳しくは自治スレへ:2009/03/26(木) 19:55:11

検索と置換 のダイアログボックス

 [検索する文字列(N)]:"マスター"
 [置換後の文字列(P)]:"コピペ元"

   レ表示書式で検索する(O)
                         [すべて置換(A)]
675645:2009/03/26(木) 21:02:34
すみません、私の質問でややこしくなってしまったみたいで・・。
651,653さんのお話を参考にやってみたら、なんとか直りました!
皆さん本当にすごいですね。

いろいろご意見を頂いてありがとうございました。
難しい部分は理解できないままでしたが、困ってたので本当に助かりました。
ありがとうございます!!
単なる用語の綾だな。
>>645さん
本題からは離れますが、このシステムで在庫管理もされるんですか?

もし在庫管理もされるのであれば販売単価,仕入単価は日々の伝票にも
持たせておいた方が良いと思いますよ。
こうしておけば決算の棚卸資産の原価評価方法が移動平均法、総平均法、
FIFO法など、どんな方法であっても対応できますからね。

…途中で送信してしまったorz
679645:2009/03/27(金) 15:04:00
>677
在庫管理も考えています。
後々どのような形でも活用できるということですね?

ちょっと複雑になりますががんばってみます。
勉強不足で皆さんにいろいろ迷惑かけてすみません。
本当にありがとうございます!
>>679=645
販売管理の実務では、販売単価も仕入単価も変動するのが普通です。
この状況下で、ある期間の販売単価平均,仕入単価平均,利益率,在庫評価額などを
集計するのであれば、それを見越して設計する必要があるという事ですね。
>>654-673で議論されている内容はまさにそういった性格のものです。
WinXP-SP3 Access2003
クエリの作成で式ビルダを使用する際に、関数を呼び出して引数を
マウスで選択すると、意図しない中途半端な範囲が選択されてその
状態からカーソルキーで左右に移動するもまた中途半端な選択の状
態になったり、フィールドを入力しようとして消去しようとすると
必要な範囲まで勝手に消えてしまったりします。対処法あったらぜ
ひ教えてください。

式ビルダを使用しない
>>681
それAccessのバグだって聞いたことがある。
2003でもまだ直ってないのか。
684名無し変更議論中@詳しくは自治スレへ:2009/03/28(土) 19:25:35
式ビルダなんって使ったことありません
直接入力したほうが早くない?
いみわからんよな
あれは
長い式を入力するとき、あれ使えないと不便じゃない?
入門者向けの機能から1日も早く卒業できるようにとの
ビルゲイツの親心だよ
いい話だねぇ〜
>>686
ビルドじゃなくてズーム使う
690名無し変更議論中@詳しくは自治スレへ:2009/03/29(日) 10:52:25
じゃ、あれでなく、あれつかえ
691名無し変更議論中@詳しくは自治スレへ:2009/03/29(日) 11:25:12
ズームを使うかメモ帳を使う
コンボボックスとかのソースがテーブル名を変更してもうまく書き換わらないとか
SQLの変更などで部分的に変更するときに置換機能が使えて便利
置き換え機能が使える!?
いつもメモ帳にコピペしてから置き換えてたorz
あの置き換えって完全に機能したことない。いつも>>とかが残る。
使い方がどうしてもわからない機能の一つだよね。
コンボボックスのRowSourceとフォーム・レポートのRecordSourceが
クエリビルダをどれだけいじっても全然書き換わらない現象も
早く素のSQL文を憶えてほしい親心だったのか・・・
あとさ、フォームにコマンドボタンを1個おいただけで、「メモリー不足です・・・」とか出て、そのフォームが永遠に開けなくなるバグもどうにかして欲しいよ。
突然現れるから困るよ。
MSってバージョンアップしてもバグ直さないよね
無くても良い機能ばかりが追加されて、致命的なバグは何世代もそのまま。
優先順位が間違っている
697名無し変更議論中@詳しくは自治スレへ:2009/03/29(日) 14:43:22
>>696
優先順位は合ってるよ
致命的じゃないから放置、売れる機能優先
698名無し変更議論中@詳しくは自治スレへ:2009/03/29(日) 15:41:31
>>692
メモ帳のことだね
ズーム機能では置換はできません
SQLビューで置換できないってかなり効率悪いよね
そうか…メモ帳のことだったのか…o...rz
>697
おれはバグが直ってないならバージョンアップしない
新しい機能は当然使ったことが無いのだから便利かどうかもわからんし、
下位互換が取れなくなり迷惑なだけ
>>701
同意。つーわけで2002を使っている。2007までひと揃いあるけど、インスコしたことすらない。
703名無し変更議論中@詳しくは自治スレへ:2009/03/29(日) 18:43:42
SQL文で選択クエリに、テーブル別名を利用して保存すると、
自分(Access自身)で"(SELECT 〜 FROM 〜) AS T"の部分を勝手に"[SELECT 〜 FROM 〜]. AS T"に
変換するくせに、その後再編集して保存しようとするとエラー扱いするのはナットクいかないよな

ホント勘弁してほしい
マイ○ロソフトちゃんとバグ修正しろよな!
編集っつーかデザインビューが余計な事をするね
ユニオンクエリみたいにスッパリ諦めてSQLビューで開いてくれる方がマシだ
ほんとなんでSQLビューで置換できないんだろうね。不便でかなわん。
706名無し変更議論中@詳しくは自治スレへ:2009/03/29(日) 21:58:51
きっと作りが、デザインビューにこだわりすぎなんだよな
もっと単純にSQLを純粋に入力できるように(勝手に変換しない)専用の作成用ビュー
を別に用意してほしい(現在の「デザインビュー⇔SQLビュー」でない互換性のないタイプみたいなやつ)
707名無し変更議論中@詳しくは自治スレへ:2009/03/29(日) 22:42:06
SQLの書式変換はアーリーバインディングです、次回の処理が速くなります。
仕様ですのでご理解ください。
708名無し変更議論中@詳しくは自治スレへ:2009/03/29(日) 23:11:29
そんな親切なあんたは誰?
sqlっていっても癖がありすぎてはらたってしゃーないな
710名無し変更議論中@詳しくは自治スレへ:2009/03/30(月) 01:05:06
caseやintersectなどが使えたらいいのに。関数もどうにかして欲しいね。
SQLの中でVBAで作った関数が使えるのはすごく便利
JET-SQLでcase使えるよりむしろT-SQLでIIf()使えるようにしてほしいんだが
>706
VBAでCreateQueryDefを書けば済む話。
機能が無けりゃ自分でつくりゃいいんだよ。
714名無し変更議論中@詳しくは自治スレへ:2009/03/30(月) 14:32:29
達人の皆さん、テーブルのルックアップフィールドって使ってますか?
>>714
俺は使う派だな。達人には程遠いが。
出来上がってしまえばテーブルを開くことはほとんどないが、
たまに開いたとき、数値よりも視認性がいいじゃない。
それにリレーションを自動的に設定してくれるから
クエリとかフォーム・レポートにも反映するしね。
716名無し変更議論中@詳しくは自治スレへ:2009/03/30(月) 21:04:08
>>715
ありがd
717名無し変更議論中@詳しくは自治スレへ:2009/03/30(月) 23:20:59
>>713
確かに一理あるような気はするけど、そこまでして凝った使い方をするのはそれはそれで管理が
大変だし、使い手を選びすぎってな感がしますね

クエリに書く内容に悩むなら分かるけど、クエリそのものの管理を自分で構築しなければならないなんて
それくらいは標準で用意してくれないとなぁ そもそもAccessってお手軽にデータベースを操れるのが売り
じゃないの?

販売戦略のための素人に特化したヴァージョンアップ内容よりも、使い手のためのかゆい所に
手が届くようなヴァージョンアップ内容にしてほしい(SQL文作成でもその程度だったら対応してよね)
そういうところはやっぱり桐を見習ってほしいところですね
SQLの編集に関してだけなら遅かれ早かれ自前で書けるようにならなきゃダメなんだから
テキストエディタからコピペしろって今の方針は、それはそれでありなんじゃないかとも思ったり・・・
719名無し変更議論中@詳しくは自治スレへ:2009/03/31(火) 18:08:20
たまに凝ったSQL文を書かなければいけないならともかく、毎回毎回SQLをテキストエディタで編集&コピーなんてありえないでしょ
それこそ労力の無駄ですよ
そもそもデータベース作成ツールのソフトなんだからそれくらい対応してもらわないと
720名無し変更議論中@詳しくは自治スレへ:2009/03/31(火) 18:32:36
じゃ、クエリデザインで良いじゃん
721名無し変更議論中@詳しくは自治スレへ:2009/03/31(火) 18:38:50
単純なクエリならデザイン画面でもいいけど
クロス集計クエリだと一つの項目しか集計できないし比較もできないからさ
対前年度比較用のリスト(数量・金額・差をコード別に集計)を作成するには、ユニオンクエリじゃなきゃ効率よくできないんだよ
(しかも普通ならクエリを何重にも重ねて複数作らなければいけないところをSQLで書けばクエリ一つで済むしね)
>717
桐にSQL作成機能ってあったっけ?
723名無し変更議論中@詳しくは自治スレへ:2009/03/31(火) 20:05:10
多分ないでしょ
そういうのがなくてもデータ処理できるのが桐
SQL文での処理に慣れきった頭には
桐のような独特なソフトは抵抗が大きすぎる。
725名無し変更議論中@詳しくは自治スレへ:2009/03/31(火) 22:57:40
確かにSQLに慣れているならあえて桐を利用する必要はないでしょうね
桐はPCに詳しくない人でも直感的に利用できるところが売りのソフトとして価値がある
製品ですから

発売当時もあえて「日本語データベースソフト」みたいな言い方をしていたようだし、
管理工学もリレーショナルデータベースとしては異端児的な位置づけだと認識した上で
出しているので
726名無し変更議論中@詳しくは自治スレへ:2009/04/01(水) 08:53:52
>>722
一応、結合表では作成されるが、内部ではSQL使ってない
ODBC外部データベースでは勿論、SQL作成されてSQLで繋げる
アクセスはリレーショナルデータベースなのか?
728名無し変更議論中@詳しくは自治スレへ:2009/04/01(水) 20:08:10
関係モデルに基づいたデータベースだから当然そうでしょ
729名無し変更議論中@詳しくは自治スレへ:2009/04/01(水) 22:28:39
数日前からaccess勉強始めた初心者です。
excelデータをインポートしたのですが
年月日のデータがうまく取り込めてません

1994.12.18(excel) → be.12.18(access)
こんな感じになってしまいます。
どうすればうまく取り込めますか?
1994.12.18 -> 1994/12/18 でないとダメなんじゃない?
731名無し変更議論中@詳しくは自治スレへ:2009/04/01(水) 22:42:08
Excel側で書式を整えましょう
732名無し変更議論中@詳しくは自治スレへ:2009/04/01(水) 23:01:25
データが沢山あるなら、桐を使った方が簡単
体験版もあるから

 桐でファイル変換して、その後データ型を日時型に
 1994.12.18(excel) → 1994.12.18(桐:文字列) → 1994/12/18(桐:日時型)

 直接、桐の日時型フィールドに読み込み
 1994.12.18(excel) → 1994/12/18(桐:日時型)

その後にaccessにも変換できるよ
文字列を日付にコンバージョンする手間を入れていいなら
.xlsを.csvにでも変換してそれを取り込んだアクセス側でcDateすればいいんじゃね?
アクセスで日付の区切り文字にピリオド使えるのか?
cDate関数なめんなよ
それはスマンかった
ACCESS2000でメインメニューのフォームを作っているのですが、
ボタンに「フォームを開く」マクロを設定して単票形式のフォームを開くと
必ず一番古いレコードが表示されてしまいます。

レコードを追加するために開くので、毎回新規レコードの画面が開くように
設定を変更できないでしょうか?
738名無し変更議論中@詳しくは自治スレへ:2009/04/02(木) 22:23:09
オプションで、
DoCmd.OpenTable テーブル名, , acAdd
とかでできるんでないかい
739名無し変更議論中@詳しくは自治スレへ:2009/04/02(木) 22:25:05
オプション指定を使って、
DoCmd.OpenForm "フォーム名"acFormAdd,,,,acFormAdd
とかでできるんでないの
740737:2009/04/03(金) 07:51:11
ご回答ありがとうございます。
オプション画面はどこから選択できるのですか?
昨夜からいろいろ調べているのですが、見つかりませんでした。
初心者の質問で本当にすみません。
そんな設定はないと思ったけど。
だからフォームのイベント(開くとき)でレコード移動させる。
マクロでやるなら"レコードの移動"アクションで。
フォームのイベント 読み込み時 に
アクション レコードの移動→新しいレコード
>>737
方法は何通りかあるのでお好みの方法でどうぞ。

(1)VBAで操作する
>>738-739のアドバイスが該当します。
DoCmd.OpenFormコマンドにオプションとなるパラメータを付ける方法。

(2)マクロで操作する
>>741-742のアドバイスが該当します。
1つのマクロの中で、[フォームを開く]→[レコードの移動]を行う方法。

(3)開かれるフォーム側で設定する。
フォームが入力専用であれば、[データ入力用]プロパティを[はい]に
デザインし直せばOKです。
> 1つのマクロの中で、[フォームを開く]→[レコードの移動]を行う方法。
違うでしょ。イベント使うって書いてんじゃん。
745名無し変更議論中@詳しくは自治スレへ:2009/04/03(金) 20:03:40
>>739 の方法は、>>743 で言われているようにVBAでの記述についてのことです
ですからマクロの中をながめてもそれらしいオプションはありませんのであしからず

メインメニューから対象フォームを開くとのことでしたが、マクロを使われているのですね
しかし、フォームを開くだけでしたら、VBAで「DoCmd.OpenForm」を使ったほうが楽です。
というかマクロだと、後々のことや長い目で見たときに管理しづらいという欠点がどうしても
つきまとうので、なるべく早くVBAの記述に移行されることをお薦めしますよ
(慣れれば、中途半端にマクロを利用するよりずっと楽です)
は?DoCmdはマクロ実行してるのと変わらんだろ?
>>739だったら「フォームを開く」アクションの「データモード」を「追加」にするのと同じだよ?
747名無し変更議論中@詳しくは自治スレへ:2009/04/03(金) 20:36:15
はっはっは確かにそのとおり
「DoCmd.OpenForm」はマクロでもちゃんとオプションがありましたね
失敬しました
そもそもDoCmdはマクロと同じ事をする為のオブジェクトだし
Docmd系はあまり使わない方がいいと耳にしたが、
FormOpenとかCloseとか、他の記述方法はあるの?
Form_フォーム名.Visible = True
>>750
d
752名無し変更議論中@詳しくは自治スレへ:2009/04/04(土) 12:00:22
>>749
これらに代替することができるVBAコマンドは他にないでしょう
>>749
>Docmd系はあまり使わない方がいい
どうして?
754名無し変更議論中@詳しくは自治スレへ:2009/04/04(土) 12:46:43
>>749
マクロで出来る事はVBA使わずにマクロでやった方が良いよ
755749:2009/04/04(土) 12:57:03
>>753
いや、本当に耳にしただけだから。俺も知りたい。
恐らく、RunMacroとかRunSQLのことなのかな。
この2つはまったく使ったことはない。
756名無し変更議論中@詳しくは自治スレへ:2009/04/04(土) 13:23:04
マクロは処理の中身が見えなくなりやすいのお薦めできません
DoCmdがダメっていうのは実行が非同期だから、以外の理由では聞いたことないな

DoCmd.RunSQL "UPDATE TABLE1 SET 数量=なんとか"
DoCmd.RunSQL "UPDATE TABLE1 SET 単価=かんとか"
DoCmd.RunSQL "UPDATE TABLE1 SET 金額=数量*単価"

こんな感じで連続実行すると1行目が完全終了しないうちから2行目が、
2行目が完全終了しないうちから3行目が実行されてしまって結果がまるで
信用できなくなるから。

逆に非同期実行で構わない部分なら普通に使って全然問題ないと思うけど…
AccessってF16までしか認識しないの?
F17〜F24は無理?
>>758
定数上はF16までしかないわな。
つうかキーボード上にF17とかがあったとして
本当にキーコードが割り当てられているのか?
実はShift+F5とか言うことはないだろうか。
760759:2009/04/04(土) 16:29:16
KeyUpかKeyDownイベントでどんなコードが返ってくるか調べてみな。
システム定数上なくてもコードがわかれば、そのコードをそのまま使用したり
Constで独自に定数化すればいい。
キーコードも割り当てられているよ。F24で試したら、アドインを入れろと言われた。
F16までは大丈夫だった。
F16までというのが中途半端だよね。F24まであるキーボードだってあるんだからさ。
コードをそのままでは送っていないな。
コードの送り方を勉強しなきゃ。
>>757
RunSQLはあまり使ったことなかったけど、これってかなり怖くない?
マクロなら大丈夫なのか。
Access2007でフォームの開くときに
ワークテーブルのデータの削除→ワークテーブルにデータの追加→ワークテーブルをソースとしたサブフォームをRequery
ということをやっています。
サブフォームは帳票フォームで追加・削除の許可はいいえです。
accdbの時は問題ないのですが、accdeにするとデータが表示されません。
この場合の表示されないというのは、データの削除→Requery とやったときのようなデータが1件もない状態になります。

いろいろ試したところ、そこにボタンを設置してサブフォームをRequeryするコードを書いて上のような状態でボタンを押すと
ちゃんと表示されます。
また、何回か試すと開いてすぐにボタンを押しても表示されず、1〜2秒たってから押さないと表示されないことがあります。
追加の許可をはいにすると、新規の行だけが表示されます。


もし心当たりがあれば教えてください。
その削除・追加・Requeryの処理はフォームのOpen時とLoad時のどっちでやってるの?
>>765
OPEN時です。
Docmd.runsql "delete 〜"
で削除してレコードセットで追加。
me.サブフォーム.RequeryでRequeryしています。

>>757でDoCmdがだめって書いてあるけど、
docmd.runsqlを全てcurrentdb.executeに機械的に置き換えて何か不具合は出る?
なんか質問がタイムリーすぎるんだけど・・・

DoCmdじゃなくてCurrentdb.Executeでやってみたら
769764:2009/04/05(日) 01:16:50
>>768
まさか上の話が自分に関係するとは・・・
2秒ほどタイムラグが発生しますがexecuteにしたらうまくいっちゃいました。

今までずっとdocmdを使ってきましたが、もしかしてDoCmd.runsqlはもう使わない方がいいんですかね・・・。
まあSQLの実行→実行結果を使ってなんかの処理(今回はRequery)ってケースでは使うべきではないよね

だってそのSQLが終わってないんだし・・・
ちょっと条件は示せないんだが、
DoCmd.runsql
で動いて
execute
で失敗する(またはその逆の)SQLってのが生成されることがあるんだよなあ
>>771
それCurrentDb.Execute(DAO)?
CurrentProject.Connection.Execute(ADO)って事はない?
えーっと、Acces購入検討中なのですが、
Excelをデータベース的に使ってたのですが、データが増えて重くなってきたので、
Accesに乗り換えようかと想ってるのですが、Excelからの移植はできますよね?

それから、やっぱりマイクロソフト社の他の製品のように、
1台のPCにしかインストールできない仕組みですかね?
2台に入れたいんだけど、2パック購入しないと駄目ですかね?
出来ません。Excelのほうが多機能です。
出来ません。1台のみです。
ノートPCとデスクトップは許されていたような気がした。
電話でアクチべーションしたときにそう説明された気がしたが。
>>774
え、できないんですか?
データだけ、1行を1レコードとして、列を書くフィールドとして
テーブルにインポートできればいいんですが・・・
なんか昔、ちらっと見たときできるような気がしてたのですが。
777名無し変更議論中@詳しくは自治スレへ:2009/04/05(日) 18:01:47
>>773
> えーっと、Acces購入検討中なのですが、
> Excelをデータベース的に使ってたのですが、データが増えて重くなってきたので、
> Accesに乗り換えようかと想ってるのですが、Excelからの移植はできますよね?

Excelとの親和性なら、桐の方が良いよ

> それから、やっぱりマイクロソフト社の他の製品のように、
> 1台のPCにしかインストールできない仕組みですかね?

そんな仕組みは無いです
4台以上だとアクチベーション通らない

> 2台に入れたいんだけど、2パック購入しないと駄目ですかね?

MSは、メインとノートの2台までしか駄目って言ってる
>MSは、メインとノートの2台までしか駄目って言ってる

とマイクロソフトが言ってるだけで、4台まで大丈夫ってことですか?
アクチベーションってよくわからないけど、使用許諾ってこと?
何にしても、聞いておいてよかった。
Excelから移植できないとはびっくり。ありがとうございました。
>>778
多分、そのままの移植は不可能だという意味だと思います。

Excel からのデータのインポートは可能ですよ。
ただ、Excel とはかなり使い勝手の異なる製品なので、チュートリアルを読みながら一度試用版を使って見ることをお勧めします。

ライセンスについては、他の Office 製品と同様です。
デスクトップPCにインストールできるのは1台だけです(自分だけが使用する場合に限りノートPC1台に追加インストール可能)。

但し、機能制限された Access ランタイムに関しては何台にでもインストールできますので、
メインPC以外では入力や参照、印刷のみ行う(テーブルやフォームの作成・修正は行わない)場合は何台からでも使用できます。

Microsoft Office Access 2007
http://office.microsoft.com/ja-jp/access/FX100487571041.aspx
ライセンス認証についてよく寄せられる技術的な質問
http://www.microsoft.com/japan/office/previous/2003/editions/prodinfo/activationtechfaq.mspx
Access 2007 Runtime ダウンロード
http://www.microsoft.com/downloads/details.aspx?FamilyID=D9AE78D9-9DC6-4B38-9FA6-2C745A175AED&displaylang=ja
>>779
ありがとうございmす。やっぱりできるんですね。よかった。
ランタイムなんていうのもあるんですね。
>>772
いや、うろ覚えなんだわ。すまん。
782名無しさん@そうだ選挙にいこう:2009/04/06(月) 02:30:55
桐って何ですか?
783名無しさん@そうだ選挙にいこう:2009/04/06(月) 04:59:16
過去の遺物だから知る必要はないよ。
784名無しさん@そうだ選挙にいこう:2009/04/06(月) 08:20:08
>>782
まあ、ここでの質問の大部分は桐でスパット解決できる訳で、、アプリ開発時間も1/5くらいな訳で、、
簡単・高機能の魔法のソフト

エグゼクティブは桐でさっさと仕事済ませて、空いた時間はホテルのプールでリフレッシュ
貧乏人はAccessで必死に頑張ると
785名無しさん@そうだ選挙にいこう:2009/04/06(月) 09:43:40
ただし企業で使われていることは稀なので
妄想でしかないという落ち。
786名無しさん@そうだ選挙にいこう:2009/04/06(月) 09:47:54
学校の先生や地方公務員や土建屋さんは桐を使ってるど
787名無しさん@そうだ選挙にいこう:2009/04/06(月) 10:16:00
2007の日付選択カレンダーが閉じた5秒後に2回画面がチラツク
俺だけ?
788名無しさん@そうだ選挙にいこう:2009/04/06(月) 13:04:50
俺は土建屋のエグゼクティブ。
789名無しさん@そうだ選挙にいこう:2009/04/06(月) 13:13:16
AccessはSQLとかVBAとかにはまると趣味化して本末転倒してしまうのがやばいよね。
790名無しさん@そうだ選挙にいこう:2009/04/06(月) 14:37:28
質問です、質問テンプレ内容は以下の通りです。
【 システム環境  . 】 WindowsXP, Access2000
【 VBAが使えるか .】 ExcelVBAが少々程度です
【 VBAでの回答  】 可(出来れば無しで)
【 検索キーワード 】 Access2000 テキストファイル インポート

データをインポートしたいテーブルの構造は以下の通りです。

フィールド1:主キー オートナンバー
フィールド2:外部キー テキスト型
フィールド3:外部キー テキスト型
フィールド4:テキスト型
フィールド5:テキスト型(ルックアップ)

HTML入力フォーマットのCGIからメールで送られてきたテキストファイル
(テキストファイルの記述形式は上記テーブル説明と同じ形で、
フィールド名と値をコロンで区切り改行、フォーマットは固定)
を上記定義のテーブルにインポートしたいのです。
手動インポートを実行したところ、オートナンバーがNULLでエラーになり、
VBA作ってSQLでINSERTしないとNULLになってNG、という事でした。
主キーをテキスト型に変えたらインポート出来ましたが、縦向きにデータが入ってました・・・。

最終的には上記テキストを

フィールド1 フィールド2 フィールド3 フィールド4 フィールド5
値1       値2      値3     値4      値5

のようなCSVに加工して主キーをオートナンバーにして(テキスト型でもいい)自動インポートし、
上記テーブルの入力フォームを表示してテキストと入力フォームの値を比較チェックする、というものです。
手動なら、テキスト加工してCSVにして、オートナンバーをテキスト型主キーにすればおkみたいですが・・・。
素人丸出しで分かりにくい説明で申し訳ないですが、よろしくお願いします。
791名無しさん@そうだ選挙にいこう:2009/04/06(月) 16:05:37
>>790
VBAはなしの方向ということなので直接の回答はしないが、
いったんワークテーブルに取り込み、それを本テーブルに整形してしてやればいい。
オートナンバーを主キーにする場合、最後列にフィールドを持ってくると
インポートエラーを防げる。
792791:2009/04/06(月) 16:08:05
「インポートするフィールド数 + 1」が
オートナンバーフィールドという意味だお。
793名無しさん@そうだ選挙にいこう:2009/04/06(月) 18:20:44
> エグゼクティブは桐でさっさと仕事済ませて、空いた時間はホテルのプールでリフレッシュ
> 貧乏人はAccessで必死に頑張ると

PCにそれほど詳しくなくてもデータ処理をこなせるのが桐のいいところではあるけど、
一番桐のスゴイところは、ここまで素人の妄想を膨らませることができるところかな
794名無しさん@そうだ選挙にいこう:2009/04/06(月) 18:29:30
>>791
ありがとうございます。
確かに、最後尾にしたらエラーは出ませんでした。

もし自動でインポートするとしたら、テキスト整形とAccessへSQLでデータ突っ込むのは、
俺のスキルだとJavaでしか出来ないんですが・・・。
出来そうならVBA調べてみますんで、どんな関数使うんでしょうか?
795名無しさん@そうだ選挙にいこう:2009/04/06(月) 20:07:46
エグゼクティブって言葉覚えたんだな(笑)
796名無しさん@そうだ選挙にいこう:2009/04/06(月) 21:02:48
>>794=790さん
791さんではないですが、テキストファイルをそのまま任意の作業用テーブルにインポートします。
次にこの作業用テーブルから本テーブルに整形&追加するクエリを実行します。
この様に2段階の処理で実現してはどうか?と>>791さんはアドバイスされている訳ですね。
この方法であればマクロでも簡単ですし、もちろんVBAでチャレンジするのも可能ではないでしょうか?
797764:2009/04/06(月) 21:20:13
上でうまく行ったと書きましたが、結局いろいろ問題があり正しく動きませんでした。
細かく説明出来るほどはっきりとした原因がわからないので書けませんが、
まったく同じコードであってもaccdbなら大丈夫なので、悔しいですが今回はaccdbのままで
運用することにしました。
なぜaccdeにするとうまく動かないのかわかりませんが、業務アプリとして使うなら
コードを隠す必要もないのでaccdbで我慢します。
798名無しさん@そうだ選挙にいこう:2009/04/06(月) 22:08:09
もしかして、このスレで桐を勧めてるのって一人?
みんなでネタとして書いてるのかと思ってたんだけど・・・
799名無しさん@そうだ選挙にいこう:2009/04/06(月) 22:19:03
俺は勧めたことはない。持ってないもん。
800名無しさん@そうだ選挙にいこう:2009/04/06(月) 22:32:33
800
801名無しさん@そうだ選挙にいこう:2009/04/06(月) 22:33:27
801
802名無しさん@そうだ選挙にいこう:2009/04/07(火) 01:01:20
>>798
どこぞの会社の工作員
粘着期間はかなり長い、というより業務の一環なんじゃねーかと個人的には思ってる
まー、察してやれ
803名無しさん@そうだ選挙にいこう:2009/04/07(火) 19:39:17
accessVBAを覚えるのって大変?
804名無しさん@そうだ選挙にいこう:2009/04/07(火) 19:56:15
覚えた後は簡単だと思うけど、最初は苦労したな。
こんな簡単なものを覚えるのに、何で苦労したんだろうと思う。
変数という概念すら知らなかったから大変でした。配列や多重ループなんかはC言語で覚えた。
VBAの本ってそういうことは書いてないからね。
805名無しさん@そうだ選挙にいこう:2009/04/07(火) 20:31:22
Accessはエラーメッセージをもっと親切にして欲しい。
2007使ってないから、2007で親切になってたらゴメン。
806名無しさん@そうだ選挙にいこう:2009/04/07(火) 21:34:02
ありがとうございます。
COBOLの経験しかないのにaccessVBAをやることになりビビっています。
汎用系のDB設計とmdbの設計では正規化の発想などは異なるのでしょうか?
807782:2009/04/07(火) 21:55:45
で、結局のところ桐って何ですか?
808名無しさん@そうだ選挙にいこう:2009/04/07(火) 22:15:29
>>806
20年前のSEだが、何とかなるw
809名無しさん@そうだ選挙にいこう:2009/04/07(火) 22:23:28
変数という概念すら知らなかったらC言語もどんな言語も憶えられんだろ・・・
810名無しさん@そうだ選挙にいこう:2009/04/07(火) 22:44:11
>>809
C言語で勉強したということ。
プログラムの基本なんてどの言語でも同じだと思うけど、VBAの本はそのあたりを軽く流す傾向があると思う。
811名無しさん@そうだ選挙にいこう:2009/04/07(火) 23:06:41
お返事ありがとうございました。
情報処理試験の正規化のやり方しか知りませんが、accessも何とかそれで設計してみようと思います。
812名無しさん@そうだ選挙にいこう:2009/04/08(水) 06:58:04
>>806
mdbは同時にDBアクセスが起きたときに問題があるとかなにかで、
ホスト系のRDBの設計とは考え方がちがうとか…聞いたことがあるようなないような。
私も気になるのでどなたか教えてください…!
813名無しさん@そうだ選挙にいこう:2009/04/08(水) 07:06:45
accessとファイルメーカーの一番の違いはなにですか?
814名無しさん@そうだ選挙にいこう:2009/04/08(水) 13:22:11
発売元が違うことです
815名無しさん@そうだ選挙にいこう:2009/04/08(水) 22:00:50

Access入門でお勧めのサイトか本があったら教えてください

作りたいデータベースは、顧客情報(住所など)と顧客からのアンケート結果と
アンケートに基づいたフォロー電話の履歴や資料請求・アポイントの管理です
このデータベースへエクセルからデータ取り込み
アンケート結果出のソート
電話履歴・資料請求などのデータからのソート・ラベル印刷

などを出来るようにしたいのですが、アクセス初心者(というより初めて触る)でも
わかるような参考サイトか本があったらお願いします。
エクセルは一応MSオフィスエキスパート取った程度のレベルです。
816名無しさん@そうだ選挙にいこう:2009/04/08(水) 22:15:12
エクセルでも頑張ればできるよ
817名無しさん@そうだ選挙にいこう:2009/04/08(水) 22:27:58
818名無しさん@そうだ選挙にいこう:2009/04/08(水) 22:41:03
お薦めは、
Microsoft Access Club (初心者講座では事例を通じて具体的に勉強できます)
http://www.accessclub.jp/beginer/index.html

定番としては、魔法使いの開発工房
http://www.mahoutsukaino.com

ですね
819名無しさん@そうだ選挙にいこう:2009/04/08(水) 23:08:32
>>810
俺もCからだったな。DBの概念を理解する前にAccessに携わらなくてはならなかったから
「テーブル = 構造体エディター」として自分を無理矢理納得させた。
820名無しさん@そうだ選挙にいこう:2009/04/09(木) 08:02:29
>>815
最後の1行に横柄さが見えたから教えない。
821名無しさん@そうだ選挙にいこう:2009/04/09(木) 09:33:19
>>815
エクセルがある程度使えるならこれで十分
http://giyao.boy.jp/index.htm

>>820
エキスパート程度で妬むなよw
822名無しさん@そうだ選挙にいこう:2009/04/09(木) 23:09:55
Access2000を使ったWebベースのスケジュール管理システムを作ろうとしていて、100人程度の同時使用を考えています。
必要なテーブルは以下のとおりです。
1.マスタ関係のテーブル(複数)
2.スケジュールを入れるテーブルとその付属テーブル(複数)
3.アクセスログのテーブル
特にアクセスログはすぐに大きくなりそうなので別のファイルに保存しようと考えているのですが、
1,2,3のテーブルを1つのmdbファイルにするのと、
別のmdbファイルにしてリンクで結ぶのとでは処理速度が大きく違うものでしょうか?
また、同時openの負荷を考えるとユーザーごとにmdbファイルを用意して
その中にメインのテーブルに対するリンクを置くような形にすべきでしょうか?
823名無しさん@そうだ選挙にいこう:2009/04/09(木) 23:30:39
サーバをにデータmdbを置いてプログラムmdbはクライアントに置く(共有するテーブルは基本的にリンク)のが普通ではないでしょうか
しかしそれ以前に、Accessで少人数(5〜10)で利用なら分かるけど、100人同時利用ってありえないでしょう
それだけ大人数で利用するなら、SQL Serverとか MySQL とかをdbのメインとして考えるところじゃないの?
824名無しさん@そうだ選挙にいこう:2009/04/10(金) 01:03:54
>>823
accessを100人が掴んだらまずいのかな。
勝手に更新されたりするかもね。
それ以前に固まったり処理が遅くなったりするのかな。
825823ではないが:2009/04/10(金) 01:51:29
>>824
大吉 普通に動く
中吉 Accessが整合性を保てなくなりエラーメッセージを出す
小吉 データが吹っ飛ぶ
凶  PCが固まる
大凶 OSを巻き込んで落ちる

824の推測は凶から小吉あたりか。
826782:2009/04/10(金) 02:53:42
するってぇーと何かい?
桐ってぇのは何の事なんだい?
827名無しさん@そうだ選挙にいこう:2009/04/10(金) 03:10:34
Accessが100人のっても大丈夫だったら誰もSQLServer買わなくなるからw
828名無しさん@そうだ選挙にいこう:2009/04/10(金) 06:23:23
>>822
Web ベースって事は、2か3層構造になってて、実際に mdb を開く(接続する)のはサーバーの CGI や ASP だけってことだよね?
(まさか、100人が直接 mdb を実行する訳じゃないよね?)

だったら mdb を分けないのが一番早いよ。
リンクテーブルがあるとリンク先の mdb も開かれるから、分けても結局全部の mdb が開くことになる。

あと、ユーザー毎に mdb を作って管理するのも止めておいた方が良い。
開く mdb が多いと ODBC(か OLE DB) ドライバの接続プールがすぐに溢れてキャッシュが活用できないので、
何度もマスタ mdb を開き直すことになる。

そもそも、mdb に複数接続しただけなら負荷は小さいよ。
パフォーマンスが悪くなるのは、ネットワーク越しに mdb をクリックして直接"実行"した場合と、
複数接続した状態で排他的ロックを使った場合。

あと、この辺りも参考に。
Access データベースのパフォーマンスを向上させる
http://office.microsoft.com/ja-jp/access/HP051874531041.aspx
Access 2000 で Jet 4.0 データベースの動作環境を最適に保つ方法 
http://support.microsoft.com/kb/300216/
829828:2009/04/10(金) 06:27:33
>>828
ちょい訂正。
×そもそも、mdb に複数接続しただけなら負荷は小さいよ。 
○そもそも、一つの mdb に複数接続しただけなら負荷は小さいよ。
830名無しさん@そうだ選挙にいこう:2009/04/10(金) 06:31:45
831名無しさん@そうだ選挙にいこう:2009/04/10(金) 09:03:05
832名無しさん@そうだ選挙にいこう:2009/04/10(金) 09:48:15
Webでやるのはファイル共有で使うよりはマシな考えだと思う。
>>828が言うように、実際にmdbを開くのはWebサーバーだけだから。
↓でもこういう話もある。
http://support.microsoft.com/kb/832205/ja
833名無しさん@そうだ選挙にいこう:2009/04/10(金) 15:18:42
ある作業者にAccess2007でインポートを行わせたいと考えています。
インポートの設定は保存しておき、インポート元のファイル名やフォルダ名だけは、インポート
時に作業者にそのつど指定させたいと考えています。
インポート操作の定義は保存しています。
「保存済みのインポート操作」の設定内容が「ImportExportSpecification.XML」
に入っているようです。このようなXML形式のプロパティを効率的に編集するには
どうすればよいのでしょうか?
専用のXMLパーサーみたいなものってあるんでしょうか?
XML更新後、
DoCmd.RunSavedImportExport "保存名"
というようにしたいと考えています。
834名無しさん@そうだ選挙にいこう:2009/04/10(金) 16:52:25
>>796
という事は、まず整形クエリ@を実行して、次に追加クエリAを実行、
@とAはマクロに纏めて入力フォームのボタンにでも登録、でおkでしょうか。
必要なら作業テーブルのデータを削除して初期化する後処理のクエリBもいるのかな?
テキストの自動インポートは、Access2000だとAPI使わないといけないみたいなので、
こっちは手動インポートにしときます
(2002以降だと「Microsoft Office11.0 Object Libraly」のFileDialogを表示させて、
目的ファイルを選択するだけで自動インポート出来るようです)。
835名無しさん@そうだ選挙にいこう:2009/04/10(金) 20:19:51
>>834
体感だが、FileDialogの呼び出しはAPI使用とライブラリ使用で労力に大差はない。
しかもAPIのサンプルコードはネット上にたくさんあるし。
大抵の人はコピペしているのではないだろうか。
それに、2002以降のVerを使用している人でもAPIを使用している人は多いと思うよ。
win機使用環境ではAccessのVerを気にしなくていいから。
836名無しさん@そうだ選挙にいこう:2009/04/10(金) 21:37:53
ファイルの選択なんて、これでいいじゃん。

Dim FN As String
Dim Res As Integer
WizHook.Key = 51488399
Res = WizHook.GetFileName(0, "", "", "", FN, "", "(*.csv)|*.csv", 0, 0, 4, True)
MsgBox FN
WizHook.Key = 0
837名無しさん@そうだ選挙にいこう:2009/04/10(金) 22:17:16
>> 836 に一票
自分も最近この隠しオブジェクトを知って使っています。
Access2000の環境でも使えるのでとても重宝しています。
838822:2009/04/10(金) 23:06:53
MySQLを使うことにしました。
いろいろ教えて下さった方々ありがとうございました。
839名無しさん@そうだ選挙にいこう:2009/04/11(土) 11:58:08
情報処理試験で正規化の手順を勉強しましたが、
その考えはaccessのテーブル設計手順にもそのまま使えるのでしょうか。
840名無しさん@そうだ選挙にいこう:2009/04/11(土) 12:06:02
accessに正規化の概念はなく、一つのテーブルで処理するのがセオリーです。
841名無しさん@そうだ選挙にいこう:2009/04/11(土) 12:36:08
>>840
そうですか!?
テーブルを分けてクエリを使用するのは一般的ではないのですかね。
842名無しさん@そうだ選挙にいこう:2009/04/11(土) 12:39:48
Accessの入門書に正規化の説明があるけどね。
不要なの?
843名無しさん@そうだ選挙にいこう:2009/04/11(土) 12:47:44
入門者には正規化が必要です。
上級者には不要です。
844名無しさん@そうだ選挙にいこう:2009/04/11(土) 12:50:54
そっか。おれ上級者だから正規化しないことにします。
845名無しさん@そうだ選挙にいこう:2009/04/11(土) 13:01:08
フィールドは250以上つくれます
何でも放り込める横長のテーブルにするのがいいと思います
846名無しさん@そうだ選挙にいこう:2009/04/11(土) 13:05:58
>> 840 〜 >>844 みたいな奴らがいるとは驚きですね
> accessに正規化の概念はなく、一つのテーブルで処理するのがセオリーです。
っていうけど、それって桐の説明をしているのと勘違いしてない?

それともそういう場合は桐だって言われるように一人で自問自答をする伏線をはっていて、それに俺がまんまと引っかかってしまったってこと?
847名無しさん@そうだ選挙にいこう:2009/04/11(土) 13:07:36
いや、やっぱり単なる素人発言だったか
848名無しさん@そうだ選挙にいこう:2009/04/11(土) 13:13:43
>>639
まぁ、冗談はこの辺にして置いてマジレスすると
あなたがどんな勉強したかわからないから返答しようないし
安易に聞く前にちょっとは調べようぜ。
まぁ、今までの傾向から行くと、この手の人は意気込みはいいんだけど
結果が追いつかないんだよね。
とりあえず何本か作ってみなよ。それが結局は早道だったりするよ。

849名無しさん@そうだ選挙にいこう:2009/04/11(土) 13:43:33
3/22からやってきた639ですが何か?
850名無しさん@そうだ選挙にいこう:2009/04/11(土) 13:46:09
>>849
本当かは知らんが、スマンかった。
>>839のアンカミス。
851名無しさん@そうだ選挙にいこう:2009/04/11(土) 14:28:51
>>850
access入門書を何冊か見る限り、情報処理試験の参考書にあるオーソドックスな正規化方法と変わらないのですが、
昔のどなたかの書き込みに、accessは大量の同時アクセスに弱いのでそれを考慮して正規化しなきゃいけない…というものを見たことがあります。
納品用の本格的なaccessDBを構築する場合は、何か特別な正規化の方法をとられているのかと思い、伺った次第です。
852名無しさん@そうだ選挙にいこう:2009/04/11(土) 15:54:21
分かるところをできるところから少しずつ構築していけれるのが小規模なデスクトップデータベースの利点です
ある程度基本的な知識を身につけたら、早速とりかかってみてください
853名無しさん@そうだ選挙にいこう:2009/04/11(土) 16:23:37
仕事に役立つソフトがいろいろあります
http://www.hhyyhh22.co.nr
854名無しさん@そうだ選挙にいこう:2009/04/11(土) 16:51:58
正規化と大量同時アクセスに耐えられるかどうかなんて関係あるのか
まあ、あれか
たった一個の横長テーブルをみんなが突っつくよりは
いくらかでもバラしてあれば使用中じゃなくなる可能性が出てくるってことか

何にしても正規化はやっといたほうがいいんじゃないの
ちゃんと考えてやっとかないと作ってる途中でもつらくなってくると思う
855名無しさん@そうだ選挙にいこう:2009/04/11(土) 20:58:34
>>854
なるほど。
初歩的な質問かもしれないけど、
10人がaccessデータベースを参照し、
それぞれが同時に同じレコードを編集しようとしたらどうなるの?
856名無しさん@そうだ選挙にいこう:2009/04/11(土) 22:17:50
>>855
10人というのは経験ないが(つうより、そんな大掛かりなテストはできん)
数人でも運がよければエラーではじかれるだけで済むが
運が悪けりゃデータがすっ飛ぶ。
あくまでも同時に更新した場合な。
857名無しさん@そうだ選挙にいこう:2009/04/11(土) 23:02:16
上級者は正規化に拘らず、シチュエーションに応じた最適なテーブル構成だよな。
858名無しさん@そうだ選挙にいこう:2009/04/11(土) 23:04:31
>>857
結局運用側の意見を取り入れていくと、
パフォーマンス優先にはなるよね。
859名無しさん@そうだ選挙にいこう:2009/04/12(日) 01:34:12
結局製作側の意見を取り入れていくと、
ウゴケバイイにはなるよね。
860名無しさん@そうだ選挙にいこう:2009/04/12(日) 01:52:59
>>856
排他制御みたいな機能はないの?
861名無しさん@そうだ選挙にいこう:2009/04/12(日) 02:49:36
>>860
あるにはあるが、それがエラーではじくにあたったと思う。
オプションで設定するんじゃなかったかな。
ガッチリ作りたいのなら、自分で排他制御ルーチンを組む。
そのあたりは、運用する人数と同レコードにアクセスして且つ同時に更新する確率、
DBの重要度、作成に許される時間等を鑑みて実装するかしないかを決めるほかはない。
ガッチリ作るに越したことはないが、結局はコストに見合うかの問題。
DBで金を取るわけではないにしろ、勤務時間中なら会社が負担しているわけだし、
勤務時間外なら製作者が自己負担しているわけだからね。




862名無しさん@そうだ選挙にいこう:2009/04/12(日) 02:55:49
自分が作ったシステムだと
そんだけいっぺんに同一レコードを
いじるなんてあり得ないな

参照ならあっても更新だと大分すごいシステムだな
アクセスでは対処できないんじゃないか
863名無しさん@そうだ選挙にいこう:2009/04/12(日) 03:07:45
>>853
通報しました
864名無しさん@そうだ選挙にいこう:2009/04/12(日) 03:13:27
>>855 >>860
・Accessの中核である Jetデータベースエンジンには排他制御の機能があります。
・ファイルサーバー上で mdbファイルを共有することには Jet は一切関与しません。

mdbファイルを共有して複数クライアントから操作した場合には、
各クライアント内の Jetがそれぞれ好き勝手に排他制御を行うことになりますから
システム全体として見た場合には制御の一貫性が保たれないわけです。
AccessがDBサーバーではなく、パーソナルデータベースに分類されるのは
こういった事情からだと思っています。
865名無しさん@そうだ選挙にいこう:2009/04/12(日) 03:17:03
>>862
ここに質問してくるレベルの人が作成という時点で
心配しすぎだとは思うけどね。
絶対にないとは言い切れないが、一括更新とかしなければ
多分大丈夫なレベルでしょう。
つうか、一般OPには一括作業はさせられないよね。
レコード単位の作業が原則かな。
866名無しさん@そうだ選挙にいこう:2009/04/12(日) 03:25:19
そういうことのために
ロックとか、ロールバックとかできるんだったっけ
867名無しさん@そうだ選挙にいこう:2009/04/12(日) 08:01:13
そうなのか…
排他制御ができないということは、20人くらいがいつDB更新をするか分からない場合にaccessを使用するのは危険だね。
そういう危険を回避するには、どんな環境を用いるのが適策なんだろ。
868名無しさん@そうだ選挙にいこう:2009/04/12(日) 09:01:56
SQLServerやオラクルがどういう位置付けの製品か知らない男のひとって…
869名無しさん@そうだ選挙にいこう:2009/04/12(日) 11:43:40
>>868
どういう位置づけなの?あたしは女やけど。
870名無しさん@そうだ選挙にいこう:2009/04/12(日) 11:58:06
>>864
じゃあそのJetデータベースエンジンの排他制御の機能ってのは一体いつ何に使われるの?
871名無しさん@そうだ選挙にいこう:2009/04/12(日) 14:25:07
そんなにシビアな要求なら
アクセス使うのが間違ってるってこと?

ならsqlサーバーでも使えって?

>>869
ヨロピク
872名無しさん@そうだ選挙にいこう:2009/04/12(日) 16:17:55
>>870
パーソナルユースでもAccessを複数起動することもあるでしょうし、
WEBサーバー上にmdbファイルとJetを配置、複数ユーザーがWEB経由で
サーバー上のJetを操作することも考えられます。(>>822-832

どうしてもファイル共有で…ということでしたら、クライアント間の
排他制御は自前で用意してやることです。(>>861
エラーが出たらロールバックしてリトライするとか、更新する時は
フラグを立てるとか。かなり面倒ですけどね。

しかし、そこまで苦労するならJetのメリットは薄れてくる訳で、
SQLServerやオラクルなどの、排他制御プロセスがサーバー上で動作する
DBサーバーを検討する価値が出てきます。SQL Server Expressなら無償で
使えますしね。SQLServer+Accessというのは悪くないと思いますよ。
873名無しさん@そうだ選挙にいこう:2009/04/12(日) 16:57:21
>>872
Access複数起動したらそれぞれのAccessが「好き勝手に排他制御を行う」んじゃないの?
それとファイル共有で使うのとではどう違うの?
874名無しさん@そうだ選挙にいこう:2009/04/12(日) 17:06:44
そう突っ込まないであげてくれ
875名無しさん@そうだ選挙にいこう:2009/04/12(日) 17:07:48
access、排他制御で検索したら、「ページ」単位で排他制御を行うと書いてあった。
ページ単位ってナンダロ。
876名無しさん@そうだ選挙にいこう:2009/04/12(日) 20:04:46
877名無しさん@そうだ選挙にいこう:2009/04/12(日) 21:10:03
良くあるお役所提出定型書類A4サイズのPDFに、アクセスのデータを重ねて印刷したいんだけど
何か良い方法ある?

PDFフォームにADBC(アドビ版ODBC)で接続してJAVAscriptとか凝らなくて、
ただ単にフォームかレポートでA4版PDFの記入欄にデータを重ねて印刷できれば十分OK
878名無しさん@そうだ選挙にいこう:2009/04/12(日) 21:58:11
自分はPDFをbmpなりjpgなりに変換してレポートの背景に画像として貼り付けて
その上にテキストボックスその他を背景色透明で配置して印字してるよ
879877:2009/04/12(日) 22:07:52
サンクス、考えた方法をやってる話を聞いたので凄く安心できた
自分もそうしようと思ったんだが、レポート余白の分、本体が縮小されて困ってる
お役所提出書類だから、多少の縮小は問題ないが
元A4PDFにカッコ良い程いっぱいに余白があって、それにレポートの余白が加わって、不格好にバランス悪くなった
880名無しさん@そうだ選挙にいこう:2009/04/13(月) 01:36:31
Accessってフォルダーを作るのに、Mkdirを使うと一気に深いフォルダーを作れないのですね。
親→子→孫→ひ孫の順に作るのが面倒です。一発で作る方法はありますか?VBSだと出来るからできると思うのですが
881名無しさん@そうだ選挙にいこう:2009/04/13(月) 01:54:20
>>880
shell "mkdir.vbs"
882名無しさん@そうだ選挙にいこう:2009/04/13(月) 01:58:39
>>881
Access単独では無理なんですね。VBSやAPIでできるから提供していないのでしょうね。
ありがとうございました。
883名無しさん@そうだ選挙にいこう:2009/04/13(月) 02:20:17
鼻からVBAしか考えられないよね
884名無しさん@そうだ選挙にいこう:2009/04/13(月) 08:12:59
>>876
ページング方式のページの概念を指しているのですか…
では視覚的にどこまでロックがかかっているか分からないですね。
885名無しさん@そうだ選挙にいこう:2009/04/13(月) 16:28:21
【システム環境  】 Windows XP Access2003
【 VBAが使えるか 】 いいえ
【 VBAでの回答  】 可 (がんばって覚えます)
【 検索キーワード 】access レポート 罫線

レポートで指定の様式に数字や記号を一マス毎に印刷する事は可能でしょうか?

以下のような様式などで印刷する場合です(高齢者福祉、介護保険の請求、予定表等に関する様式)
ttp://www.wam.go.jp/wamappl/bb05Kaig.nsf/0/55179ec51d6c2a91492575830025f69f/$FILE/20090324_1shiryou5-2.pdf
・www.city.kawasaki.jp/35/35kaigo/home/riyouhyou.xls

このような場合
1.郵便はがき印刷のように指定の様式を印刷しておき、重ねて、印刷される数字などを上記様式にあわせて配置するレポートを作成
2.Access&VBAのみで指定の様式の作成も印刷も可能
3.Excelやその他のアプリを併用する事で可能。

ヒントになる事でもいいので何か情報をお待ちしております。
886877:2009/04/13(月) 16:37:57
>>885
A) adobe の高価な製品を買う、なんたらサーバー
B) AcrobatPro でPDFフォームに変換して ADBCでAccessと繋ぐ
887名無しさん@そうだ選挙にいこう:2009/04/13(月) 19:13:26
>>877
凝らずに同じ用紙に2度印刷すればいいだけ
カセット引き出すのが面倒なら2度目のデータ印刷の時は「手差しトレイ」も活用
888名無しさん@そうだ選挙にいこう:2009/04/13(月) 23:29:44
>>885
マスに合わせるのはレポートのテキストボックスで均等割り付けと書式プロパティを使えば可能。
http://www.accessclub.jp/bbs3/0017/superbeg7352.html
もしくは、各マス毎にコントロールを作成して、データを分割表示する。
http://www.accessclub.jp/bbs2/0089/beginter27652.html

罫線も Access で可能。
テキストボックスの境界線プロパティや直線・四角コントロールを使えば良い。
ただ、表などで行数を固定して出力する場合は次のように VBA を使う必要がある。
http://support.microsoft.com/default.aspx?scid=kb;ja;JP404909
(もしくは、空行のテーブルを用意しておいて、それと外部結合するとか)。
罫線の出力が必要ないなら、サブレポートの印刷時縮小を「いいえ」にして、
高さを表の高さに合わせておけばいい。
889885:2009/04/14(火) 00:46:12
>>886
ありがとうございます。ただ、財力に乏しいので提案された方法では厳しそうです。

>>888
ありがとうございます。提案された方法は
1. 指定様式を印刷した後、その上に各数字などをマスにあわせて印刷する(印刷回数=2回×人数分)
2. 指定の様式の罫線など、そして各数字なども一括して同時に印刷できる(印刷回数=1回×人数分)

・・の二通りの方法があると理解していいでしょうか?現時点での自分の知識では「何となく」
としか言えないのですが二つ目の方法を取りたいと思います。
先ず、例えば「被保険者番号の10桁だけ」でも一マス毎に印刷できるよう頑張ってみます。
890名無しさん@そうだ選挙にいこう:2009/04/14(火) 08:27:34
Accessってさあ、絞り込み状態からの検索・並べ替えでもインデックス効くの?
891名無しさん@そうだ選挙にいこう:2009/04/14(火) 08:49:02
試してみればいいだろ、常考
892名無しさん@そうだ選挙にいこう:2009/04/14(火) 08:52:24
もう少し温厚にいこうぜ☆
893名無しさん@そうだ選挙にいこう:2009/04/14(火) 09:03:12
インデックス効いてるか、どうやって調べるの?
894名無しさん@そうだ選挙にいこう:2009/04/14(火) 19:27:45
体感速度
895名無しさん@そうだ選挙にいこう:2009/04/14(火) 21:19:01
ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1225173662

トンチンカンな回答で、しかも肝心の質問にはわからないと答えず。
申し訳ないがちょっと笑ってしまった。
896名無しさん@そうだ選挙にいこう:2009/04/14(火) 21:35:01
>>884
それはわからないと思う。1行あたりのデータに依存するから
行ロックはMSのは、SQLSV2005からじゃなかったけ?
#SQL鯖板だともっと詳しいResがあるかも・・・
897名無しさん@そうだ選挙にいこう:2009/04/14(火) 21:58:41
↑間違いを訂正してやるのも馬鹿馬鹿しい
898764:2009/04/15(水) 07:43:01
上の方でRequeryで更新されないと書いた者です。
いろいろ調べた結果、どうやらShiftを押しながら開く時とそのまま開くときの動作が違ったようです。

で、普通に開くと共有モード、Shiftを押しながら開くと排他モードになり、排他モードであれば問題なく動くコードも
共有モードだとSQL文をいくつか発行したときに順番に動作しないみたいです。(遅延がある?)

でも、既定の開くモードで排他を設定しているのになぜ共有モードで開くのかというと、
どうやら起動時にフォームを開かないでAutoExecを使うと共有モードで開いてしまうようです。

AutoExecをやめてフォームを開くようにしたらうまくいきました。


ちなみに、上の話題でExecuteとRunsqlの違いについては
Execute→DAO(ADO)がSQL文を解釈して実行
runsql→AccessがSQL文を解釈して実行
という違いがあるようです。

だから、"update aaa set bbb=1 where [Forms]![frm]![txt単価]>0"
というSQL文を実行するとExecuteでは「[Forms]![frm]![txt単価]って何だよ」と言われるけど、
runsqlではそのフォームが開いていればそのオブジェクトを参照してくれるみたいです。
899764:2009/04/15(水) 08:16:21
>AutoExecを使うと共有モードで開いてしまうようです。

ではなく、そこで実行しているコードの中にOpenDatabaseをつかってリンクテーブルのmdbを開くコードが書いてあり
そこでデータベースを開いてしまったために本体が共有モードになってしまったようです。
それをスキップしたら本当にうまくいきました。
しつこいですが一応訂正ということで。
900名無しさん@そうだ選挙にいこう:2009/04/15(水) 11:23:52
さっき気が付いたんだが、
テーブルで日付書式のフィールドに2008/01/01〜2009/12/21までのデータを入れ
クエリで「<=#2009/03/31#」と指定すれば
2009/03/31以前の値を持つレコードが抽出されるはずなのに
どうしたことか、2009/03/31だけが抽出されない…
試しに「<=#2009/12/31#」とやっても同じ。
抽出条件を指定しない空クエリでやると、2009/03/31のレコードも表示される。
なんぞこれ

Access2000(9.0.6926 sp3)
WindowsXP SP3 で見つけた現象
901名無しさん@そうだ選挙にいこう:2009/04/15(水) 12:20:51
>>900
入力されているデータに、時分秒が付いているっていうオチではない?
2009/03/31 00:00:01 が抽出されていないとか・・・
902名無しさん@そうだ選挙にいこう:2009/04/15(水) 12:56:34
>>901
レスどうも。
入力済みのデータには確かに時刻も入れている。

だけど、#9999/99/99#表記の場合、時刻も含有した意味になるのでは?
つまり#2009/03/31#と表記すれば、
#2009/03/31 00:00:00# から #2009/03/31 29:59:59# までを示すのでは。
もしこれが違うとなれば、逆に他の日が抽出される理由がわからない。
903名無しさん@そうだ選挙にいこう:2009/04/15(水) 13:06:17
何か勘違いがあるようだが #2009/03/31# は #2009/03/31 00:00:00# と等価な
904901:2009/04/15(水) 13:16:39
>>902
すでに>>903に解答がある通り、#yyyy/mm/dd# は、#yyyy/mm/dd 00:00:00# のことです。

日付時刻型は、内部では倍精度浮動小数点型として処理されているんです。
例えば・・・
#2009/03/31# = 39903
#2009/03/31 23:59:59# = 39903.9999884259
こんな感じ。

ということで、#yyyy/mm/dd# は単に1つの値に過ぎません。
ちょっと勘違いしやすいところですからご注意あれ。
905名無しさん@そうだ選挙にいこう:2009/04/15(水) 15:17:30
つまり

Uriagebi <= #2009/03/31#

じゃダメで

Uriagebi < #2009/04/01#

または

Format(Uriagebi, 'yyyy/mm/dd') <= #2009/03/31#

ってすりゃいいんじゃね?
906名無しさん@そうだ選挙にいこう:2009/04/15(水) 20:50:11
#03/31/2009# でしょう、普通。
907名無しさん@そうだ選挙にいこう:2009/04/15(水) 21:03:16
<1ってのを、今まで<1.999999・・・・と同じ意味だと思ってたのか・・・
俺にはそういう発想は全く無いな。衝撃的だわ。
908名無しさん@そうだ選挙にいこう:2009/04/16(木) 01:36:37
900だけど、みんな判りやすい解説どうも。
#2009/03/31# とあれば、
#2009/03/31 00:00:00# から #2009/03/31 23:59:59# までの
いずれの値とも等価なのかと思っていた。
省略記法として時刻部分を抜く表記が許されているのなら
時刻の解釈は最大限のほうへ振るべきだと勝手に思い込んでいた。
時刻シリアル値を直接みるような使い方はしたことがないから
イメージできなかったのかもな。
BASICでDATE関数使ってた時の習慣が抜けてない。
老害だな。
909名無しさん@そうだ選挙にいこう:2009/04/16(木) 06:57:53
「ODBCデータベース」をインポートできるようになっていますが、
ODBCデータベースとはどのような場合に作成されるデータなのでしょうか…?
910名無しさん@そうだ選挙にいこう:2009/04/16(木) 07:14:06
会社でaccess2003を使用していますが、
家のaccessは2000です。
2000と2003で、決定的なちがいはあるでしょうか。
もしちがいがあるなら2003を購入したいと思いますが、
それほど大きなちがいがないなら2000で勉強しようと思っています。
911名無しさん@そうだ選挙にいこう:2009/04/16(木) 08:14:28
天然パーマ男死ね。バケモン。身障。気色悪すぎ。ボーズで天パ隠すなよ。天然パーマ男死ね。バケモン。身障。気色悪すぎ。ボーズで天パ隠すなよ。
天然パーマ男死ね。バケモン。身障。気色悪すぎ。ボーズで天パ隠すなよ。天然パーマ男死ね。バケモン。身障。気色悪すぎ。ボーズで天パ隠すなよ。
天然パーマ男死ね。バケモン。身障。気色悪すぎ。ボーズで天パ隠すなよ。天然パーマ男死ね。バケモン。身障。気色悪すぎ。ボーズで天パ隠すなよ。
天然パーマ男死ね。バケモン。身障。気色悪すぎ。ボーズで天パ隠すなよ。天然パーマ男死ね。バケモン。身障。気色悪すぎ。ボーズで天パ隠すなよ。
912名無しさん@そうだ選挙にいこう:2009/04/16(木) 12:39:13
>>909
データベースにも色々な種類・製品があるわけなんですが、
「お互いにデータのやりとりができないのは不便じゃね?」と、MSが提唱して
標準的なデータ操作方法を作りました。(ODBC)

各データベースに対応したODBCドライバを仲介させればデータ操作法が
統一されるのでAccessから操作することができます。
ODBCドライバ経由で接続された他データベース=ODBCデータベースです。

>>910
2000と2003なら決定的な違いはほとんど無いかと。2000で勉強すれば十分ですよ。
913名無しさん@そうだ選挙にいこう:2009/04/16(木) 13:33:58
WinXpSp3+Access2002Sp3ですけど、
フィールドの書式に
yyyy/mm/dd hh:nn:ss
としても
時間の部分が桁揃えにならなくないですか?
914名無しさん@そうだ選挙にいこう:2009/04/16(木) 14:02:58
もう桐で良いじゃん
915名無しさん@そうだ選挙にいこう:2009/04/16(木) 17:06:07
>913
ならんのよね
クエリかフォームでFormat関数使うしかない
916名無しさん@そうだ選挙にいこう:2009/04/16(木) 23:06:38
2007のコンボボックスでdirtyイベントのマクロ設定できますか?
セーブすると消えちゃうんだけど
917名無しさん@そうだ選挙にいこう:2009/04/16(木) 23:18:26
>>912
さん、本当にありがとうございます。
感謝、感謝、感謝×100です!!!
ありがとうございます。
918名無しさん@そうだ選挙にいこう:2009/04/17(金) 00:41:52
アクセス2000です。

「AAA−BBBB」というデータを、1回だけ7桁連続入力して、
「AAA−BBBB」「AAA」「−BBBB」という3つのデータを作ることはできますか?

よろしくお願いします。
919名無しさん@そうだ選挙にいこう:2009/04/17(金) 08:02:03
COBOL経験3年です。
accessとaccessVBAを一から覚えたいですが丸2日とかじゃ厳しいですかね(T_T)。
920名無しさん@そうだ選挙にいこう:2009/04/17(金) 09:04:02
厳しいでしょうね
そんな状況で2chやってるような人なら尚更
921913:2009/04/17(金) 10:40:47
>>915
やはりそうですか。
2007でも駄目なんだろうか・・・。
922名無しさん@そうだ選挙にいこう:2009/04/17(金) 17:03:11
イベントでコントロールのプロパティを変更しました。
フォームを閉じて開きなおすと、変更したプロパティが戻ってしまうのですが、これは正しい動作ですか?
923名無しさん@そうだ選挙にいこう:2009/04/17(金) 17:25:26
>>918
left,right関数で簡単にできることではあるんだが

問題はそういうことではあるまい
いや、たぶんだが

数日前のネタ的やり取りが繰り返されたすえ
締めの言葉は「桐に(ry」
となるような気がする
924名無しさん@そうだ選挙にいこう:2009/04/17(金) 17:35:39
>>916
設定が保存されないのは、過去ログのどこかにあった気がします。
2007 Sp2のリリースが待ち遠しいところ。

>>918
AAABBBBと入力→ どこかへAAA-BBBB, AAA, -BBBBの3通りを出力という
ことだと思うのですが、VBAを使用すれば可能です。

>>922
正しい動作です。
925916:2009/04/17(金) 19:20:54
>>924
有難う
926916:2009/04/17(金) 19:22:31
2007です
フォームでフィルタを一度でも適用すると、フィルタ解除した後でも Me.Requery が効かなくなります
正しい動作ですか?
928名無しさん@そうだ選挙にいこう:2009/04/17(金) 21:34:06
Accessってバージョンアップの度に桐に近づいて行くね。
良いんだか悪いんだか。
929名無しさん@そうだ選挙にいこう:2009/04/17(金) 22:56:14
桐ってなに?
930名無しさん@そうだ選挙にいこう:2009/04/18(土) 01:13:27
>>929
家具に使う木材
931名無しさん@そうだ選挙にいこう:2009/04/18(土) 10:53:05
COBOLのプログラマーです。
accessのVBAを使って社内の煩雑な事務を改善するよう言われましたが、
accessもVBAも軽く基本書を読んだ程度です。
マスターするには100時間くらい要するでしょうか。
勉強の猶予がないと思いますので、場合によっては試用期間でクビになるかもしれません。
932名無しさん@そうだ選挙にいこう:2009/04/18(土) 11:06:45
こちとら足掛け15年でもまだまだ毎日新しい発見の連続だよ
933名無しさん@そうだ選挙にいこう:2009/04/18(土) 12:53:14
>>931 試用期間ってことは入社したばかり?
それなら会社が入社前にアクセス使ったことあるか分かるじゃん。
とりあえず入門書見ながらやるべし。
934名無しさん@そうだ選挙にいこう:2009/04/18(土) 13:20:53
手元にAccがないんで確認できないんだが
requeryってのは直前つか今現在のrecordsourceを元にするんじゃないのか

たとえばさ
Private strSQL as string とか適当なプライベート変数用意してさ

フォームオープン時あたりに strSQL=me.recordsource

で、me.requeryのかわりに me.recordsource=strSQL とかやってみ

プライベート変数ってのも場合によっては油断できない代物なんだっけ?
用心深くやるならラベルかテキストボックスにレコードソースのSQL保存しちゃってもいいんじゃね

935名無しさん@そうだ選挙にいこう:2009/04/18(土) 14:17:51
会社で在庫管理用のデータベースを私が作成して
皆で日々の入力や閲覧をするつもりなのですが、
Accessのバージョンが、私のところだけが2007で、
あとは2000と2003が混在しています。
現在Accessが入っていないPCも一台あります。

現在は2007で作成したデータベースを2000形式で保存して配布しているのですが、
マクロが使えなくなることがたびたびあって困っています。

このような状態で使用する場合、
Access2007ランタイムを全てのPCにすれば問題なく使えるのでしょうか?
2000や2003の入っているPCにもインストールは可能でしょうか?
936名無しさん@そうだ選挙にいこう:2009/04/18(土) 15:05:10
>>934
有難う
me.recordsource= で運用します
937名無しさん@そうだ選挙にいこう:2009/04/18(土) 15:30:08
キーワードで検索をかける場合、
該当する文字があればその文字が含まれるレコードを表示、というのに加えて
キーワードを空白にした場合全てのレコードを表示、というのはできますか?
938名無しさん@そうだ選挙にいこう:2009/04/18(土) 17:53:29
>>937
やりかたはいっぱいあり過ぎ
そちらでつくった仕組みがどんなものなのか簡単にでも明かしてくれれば
その加工の仕方を誰かが教えてくれると思うけど
ゼロから作ってやろうという酔狂物はそうそういないんじゃないかなと
939名無しさん@そうだ選挙にいこう:2009/04/18(土) 20:02:09
>>935
Accees2007Runtimeと2003以下は混在できるが、
切り替えるたびに環境設定をし始めるのが煩わしい。
Access2007と2003以下の互換性はいろいろ問題があるみたいだし、
他が2003以下なのに自分だけ2007というのは最悪な状況だと思われる。
940名無しさん@そうだ選挙にいこう:2009/04/18(土) 20:09:31
>>935 自分のPCに2000入れて作成すればいいと思う。
自分のPCは2007と2000混在のままでもオッケ。
941名無しさん@そうだ選挙にいこう:2009/04/18(土) 21:50:51
>>937
例えば SELECT * FROM テーブル名 WHERE フィールド名 LIKE "*キーワード*" とかかね
942名無しさん@そうだ選挙にいこう:2009/04/18(土) 23:57:54
>>941
手元に大量のデータがないから検証できないんだけど、
もちろんその記述で問題無く抽出できるわけですが、
WHERE条件を

WHERE [キーワード] IS NULL OR LIKE "*" & [キーワード] & "*"

と記述した場合と速度の差は出ますか?早くなる?遅くなる?
943935:2009/04/19(日) 00:02:24
>>939,940
ありがとうございます
やはり今の環境は最悪なのですね;;
高いからと言って会社がライセンス買ってくれないんですよ

2007と2000って1つのPCで混在可能なんですか!?
でしたらそれが一番いいかもしれませんね。
今もいちいち2000の人のPCを仕事の合間に借りてマクロ組み直したりしてますので・・
しかしそうなると私が2007を使うメリットは全くないんでしょうか?
944名無しさん@そうだ選挙にいこう:2009/04/19(日) 00:02:29
手元に大量のデータを用意してやってみろ
945名無しさん@そうだ選挙にいこう:2009/04/19(日) 04:32:48
>>942
多分速くはならないと思うが・・・

ttp://www.naboki.net/access/heaven/heaven_05.html
要約すると絞り込む条件は少ない方が速いってことらしい。
946名無しさん@そうだ選挙にいこう:2009/04/19(日) 07:29:12
>>943
>2007と2000って1つのPCで混在可能なんですか!?
可能。2007入ったまま2000インストールすればよい。2000は1枚あれば何人でも使える。
自分のはデフォルト2007になってるから2000使うときは2000起動させてから
ファイルを開く。

>私が2007を使うメリットは全くないんでしょうか
ある。今後、2007使う人増えるから2007でも作成できるようにしておく。
947名無しさん@そうだ選挙にいこう:2009/04/19(日) 08:18:51
2000ってもう手にいれられないでしょ?
948942:2009/04/19(日) 08:33:52
>>945
おお!これは参考になります。
そっか、動的にクエリを作成した方がいいのかな。
949名無しさん@そうだ選挙にいこう:2009/04/19(日) 09:26:21
>>890 , >>942
インデックスが使われてるか(Index Schan か Table Schan か)調べる
showplan
・Jet4.0以降でも使えます。
・ACEで使えるか試してません。

(1) レジストリにキーを追加する。
\\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\3.5\Engines\Debug

(2) 上記キーに下記の設定を追加する。
種類:文字列
名前:JETSHOWPLAN

(3) 指定する値は次のとおり。
実行プランを出力する :ON
実行プランを出力しない:OFF
なお、Jetを再起動しないと変更は反映されません。

(4) 出力ファイルは、カレントフォルダに
showplan.out
という名前で作成されます。

<参考文献>
Dan Haught、Jim Ferguson 著
株式会社 日本ドキュメンテックス 訳
篠原 光太郎 監修
『Microsoft Jetデータベースエンジンプログラマーズガイド 改訂新版 』
, 株式会社アスキー, 1998年, 700ページ。

なお、英語でよければ、
http://support.microsoft.com/kb/162701/ja
950名無しさん@そうだ選挙にいこう:2009/04/19(日) 09:31:04
>>947
去年の8月通販で office 2000 pro 買った。ほぼ定価かもしれんが、しょうがない
まぁ、通常版だから いいか
951名無しさん@そうだ選挙にいこう:2009/04/19(日) 10:34:45
四、五万したんですか
952名無しさん@そうだ選挙にいこう:2009/04/19(日) 10:35:50
Accessだけ単体で売ってないの?
953名無しさん@そうだ選挙にいこう:2009/04/19(日) 10:48:22
・ShowPlan の設定箇所が変更になっています。従来、JETSHOWPLAN=ON の設定箇所は
 HKLM\SOFTWARE\Microsoft\Jet\4.0\Engines\Debug のレジストリキーでしたが、2007 では
 HKLM\SOFTWARE\Microsoft\Office\12.0\Access\Access Connectivity Engine\Debug です。
954名無しさん@そうだ選挙にいこう:2009/04/19(日) 11:22:50
>>952 売ってるけど、2000使ってる人いるなら、その人のCD使えばオッケ。
955名無しさん@そうだ選挙にいこう:2009/04/19(日) 19:29:16
よくわからんのだが
WHERE [キーワード] IS NULL OR LIKE "*" & [キーワード] & "*"
これは
WHERE ([フィールド何とか] IS NULL) OR ([フィールド何とか] LIKE "*" & [キーワード] & "*")
みたいなものの書き間違いなのか
それにしてもこれによって一体どんな抽出を期待しているんだ
フィールド何とかがたとえば商品名だとして
商品名Nullのものを抽出したいのか


956名無しさん@そうだ選挙にいこう:2009/04/19(日) 20:22:56
>>933
アクセスごとき使えるようにならないと
957名無しさん@そうだ選挙にいこう:2009/04/19(日) 22:47:37
Access2007 のフォーム右クリックフィルタで "おまんこ"に等しいで
"おまんこ" も "オマンコ" もフィルタ選択されちゃう
その後、区別しようと並べ替えても、"おまんこ" と "オマンコ" は混在したまま同一視されてる

これって非常に困るよね、切実な問題だ
958943:2009/04/19(日) 22:56:04
2000と2007の混在について質問した者です。
皆さま回答ありがとうございました。
お礼が遅くなってすみません。

混在は普通にできるんですね。
2000なら個人で買ったのがあるから会社に持ってってインストールします。
がんばって2007勉強したのに他の人のPCでは開くことさえできないこともあったりして
本気で悩んでたので助かりました〜^^
959名無しさん@そうだ選挙にいこう:2009/04/19(日) 23:10:44
>>955
上で何も入力されなかった時全件表示したいって言ってたから多分それだろう。
ただ文字列型のフィールドならNullでも空白でも後半のみで事足りると思うけど。

>>957
内容はともかくバイナリで比較すれば区別つくらしい。
ttp://www.relief.jp/itnote/archives/000896.php
960名無しさん@そうだ選挙にいこう:2009/04/19(日) 23:17:14
説明不足ですみません

キーワードが空白の場合にというのは本当にそのままの意味で、
パラメータクエリでクエリを実行する時に、キーワードを入れないと
普通何も表示されませんが、その時に全てのレコードが表示されるように
したいのです。

具体的に言うと、顧客データのテーブル(住所、氏名、電話、担当者名)から
担当者ごとのデータを取り出したい場合、
通常なら「山田」とか「鈴木」とか担当者名を入力するとその担当顧客が出ますが、
担当者名を空欄にしてクエリを実行すると全顧客のデータが表示される形です。

今は普通にパラメータクエリを使ってるので、空欄だとレコードが一つも表示さ
れません。
ちなみに2003でVBAは使えません。
初心者なので稚拙な説明しかできなくてすみません。

961942:2009/04/19(日) 23:17:33
>>955
その記述方法はよく使われるから知っておいて損はないよ。

WHERE [キーワード] IS NULL OR [キーワード]

ってのは、検索条件[キーワード]が入力されたらそれに合致
するものを抽出し、何も入力されなかったら、全件抽出する。

今回聞きたかったのは、LIKE "*" & [キーワード] & "*"ってのは
インデックスが効かなくて遅くなるから、何も条件が入力されなかった
場合にIS NULLの条件を先に書いておけば、早くなるかなってこと。
962942:2009/04/19(日) 23:22:06
>>962
まさにこれ。担当者名の抽出条件を、

[キーワード] OR [キーワード] IS NULL

にすればいい。
963942:2009/04/19(日) 23:23:11
ごめん、>>960の間違い。
964名無しさん@そうだ選挙にいこう:2009/04/19(日) 23:24:37
あしたもアクセス三昧の日々か

実務もしながらシステムまで作らされる
うちは国内でも有名なブラック企業です
965962:2009/04/19(日) 23:31:07
〉963さん
ありがとうございます。
これでやってみます

キーワードの一部で検索をかける場合はlike*とかと組み合わせれば良いんですよね?
助かりました
ありがとうございます
966942:2009/04/19(日) 23:40:25
>>965
LIKEならIS NULLは必要ないよ。遅くなるみたいだし。

LIKE "*" & [キーワード] & "*"

で、[キーワード]がNULLなら

LIKE "**"

ってことで、全件抽出するから。
967名無しさん@そうだ選挙にいこう:2009/04/20(月) 00:22:25
WHERE [フィールド名] IS NULL OR [フィールド名] LIKE "*山田*"

これは通るけど

WHERE [フィールド名] IS NULL OR LIKE "*山田*"

このSQLエラーにならないの?って意味じゃねえの
968名無しさん@そうだ選挙にいこう:2009/04/20(月) 00:59:54
WHERE "山田" IS NULL OR [フィールド名] LIKE "*山田*"

だってば。
969名無しさん@そうだ選挙にいこう:2009/04/20(月) 01:42:11
>>942
・WHERE 条件式1 Or 条件式2
この場合、条件式1の真偽に関わらず条件式2も評価されます。
(VB.netのOrElse演算子や、Cの ||演算子のような動作はしません)

つまり、以下の2つを比較した場合、
・WHERE ([検索ワード] IS NULL) Or ([フィールド名] LIKE "*" & [検索ワード] & "*")
・WHERE ([フィールド名] LIKE "*" & [検索ワード] & "*")
後者の方が速いことになります。

※IS NULLの処理は軽いので、最近のマシンでは差は微々たるものですけどね。
970名無しさん@そうだ選挙にいこう:2009/04/20(月) 11:41:41
>>964
うちはシステム屋に実務もやらせる、国内でも有名なブラック企業ですw
971名無しさん@そうだ選挙にいこう:2009/04/20(月) 13:13:19
>>959
ありがと

俺の覚書
------
Accessで単純に選択クエリを作成すると、全角と半角、大文字と小文字、ひらがなとカタカナは区別されません。
例えば「ランク」というフィールドを作って「AAa」「aaa」「Bbb」というようなデータが入力されているようなケースで、クエリの抽出条件に「AAA」と指定したとしても「AAa」「aaa」も抽出されてしまいます。
これは大文字と小文字が区別されない例ですが、全角・半角、ひらがな・カタカナでも同様に区別されることはありません。
これを区別して抽出するにはどうすればいいでしょうか。

文字列比較をするStrComp関数を利用して演算フィールドを作成することで、全角・半角、大文字・小文字、ひらがな・カタカナを区別して抽出をすることができます。

▼操作手順:全角・半角、大文字・小文字、ひらがな・カタカナを区別したクエリ
(「ランク」フィールドから「AAA」を抽出する例)
クエリをデザインビューで開く
 ↓
デザイングリッドの[フィールド]欄に
「条件: StrComp([ランク],"AAA",0)」
と入力
 ↓
[抽出条件]欄に「0」と入力

StrComp関数は、
第3引数で指定された方法(上記の場合は「0」=バイナリモード)で、
第1引数と第2引数を比較して、
等しい場合に「0」を等しくない場合には「-1」「1」を返す関数です。
上記の例では、[ランク]フィールドのデータと「AAA」という文字列を比較することで「条件」フィールドには「-1」「0」「1」という値が表示されるようになり、[条件]フィールドの[抽出条件]に「0」を指定することで「AAA」のレコードが抽出されることになります。
第2引数を「[抽出条件は?]」というように指定することで、パラメータクエリにすることもできます。
972名無しさん@そうだ選挙にいこう:2009/04/20(月) 18:43:52
俺なんてよその会社のシステム立ち上げに行ってるのに
電話の応対とか頼まれるんだぜ。
973960:2009/04/20(月) 20:25:11
ありがとうございます。
大変参考になります。
図々しくて申し訳ないのですが、もう一つ質問させてください。

パラメータクエリで特定のキーワードをあるテーブルの複数のフィールドから検索して、
いずれかのフィールドにそのキーワードを含むレコードを全て表示したいのですが、
どのように作ればスマートでしょうか?

クエリで「検索用:フィールドA&フィールドB&フィールドC・・」というフィールドを作って、
抽出条件の欄に「Like "*"&[キーワードを入力してください]&"*"」としたところ、
一つのレコードのフィールドAとCの両方にそのキーワードが含まれていた場合、
そのレコードが2回表示されてしまいました。

具体的に言うと、商品説明のテーブルで
例えば品名が「焼きそばパン」で、材料に「パン粉」がある場合など、
パン系の商品を呼び出そうと「パン」で検索した場合、同一レコードが2行表示されてしまいます。

度々申し訳ありませんが、おわかりの方、どうぞご教示お願いします。
974名無しさん@そうだ選挙にいこう:2009/04/20(月) 23:41:56
DISTINCTROW をつければよろし。
975名無しさん@そうだ選挙にいこう:2009/04/20(月) 23:57:45
テーブルに日付、番号ってあって番号は毎日
一から取り直すんだけど、自動的に番号採番したいんだけど
マクロ記述で
Dcount("番号","テーブル名","日付"=Date())=0で条件作って
0のときは0を採番し
0でない時は
Dmax("番号","テーブル名")+1で1を加算しようと思うけど
いつも1になってしまいます、どうしてなんでしょう。
よかったら教えてください。
976名無しさん@そうだ選挙にいこう:2009/04/21(火) 03:53:04
>>973=960
すでに>>974さんが答えていらっしゃいますが、DISTINCTROW句を付けるには、
・SQLビューから SELECT句に続いて+スペース+DISTINCTROW句を付け加える。
・デザインビューからクエリプロパティを表示し、[固有のレコード] を [はい] にする。
いずれかの方法で可能です。

>>975
DCount関数の抽出条件の使い方が間違っています。条件式は文字列でなくてはなりません。
誤: DCount("番号","テーブル名","日付"=#04/21/2009#)
正: DCount("番号","テーブル名","日付=#04/21/2009#")

これを誤って使用しているために
DCount("番号","テーブル名","日付"=Date()) の値は常に0となり(エラーかも?)
その結果、常に0が採番されているはずです。当然、DMaxの値は…(ry

正しく動作させるには、DCount関数を次のように修正します。
DCount("番号","テーブル名","日付=" & Format(Date(),"\#mm/dd/yyyy\#"))
さらに DMax関数に日付条件がありません。
日付条件がないと、過去の日付を含めた最大値になりますから・・・条件を追加します。
DMax("番号","テーブル名","日付=" & Format(Date(),"\#mm/dd/yyyy\#"))

これで動作するような気がするのですが、どうでしょうか?
977名無しさん@そうだ選挙にいこう:2009/04/21(火) 06:18:27
>>976
974です。
まさにドンピシャの回答だと思います。
SQLで文字列はわかるけど、関数内で関数が使えないっていう発想が
エクセル上がりの私にはありませんでした。
ステップアップできそうです。ありがとうございました。
978名無しさん@そうだ選挙にいこう:2009/04/21(火) 07:51:06
大手金融系のCOBOL開発しか経験がありませんが、中小企業の社内システムの開発をVBAでやることになりました。
VBAは全く未経験ですが、COBOLプロジェクトと同じ感覚で基本設計や詳細設計を行うものなのでしょうか?
979960:2009/04/21(火) 07:54:16
>974,976
ありがとうございます!
一人でものすごく悩んでたので本当に助かりました。
度々申し訳ありませんでした。
980名無しさん@そうだ選挙にいこう:2009/04/21(火) 09:01:53
最近コボラーがたくさん湧いてるけどもしかして同一人物?
981名無しさん@そうだ選挙にいこう:2009/04/21(火) 14:49:07
お願いします。WinXP(SP3)&Access2003です。

Private Sub 起動チェック()
Dim xlsApp As Object
On Error Resume Next
Set xlsApp = GetObject(, "Excel.Application")

If err.Number = 0 Then
MsgBox "Excel起動中"
Else
MsgBox "Excelは起動していません"
End If

End Sub

これを参考に、Excelの起動チェックは出来るようになりました。
同様に、Adobe Readerの起動チェックはできないでしょうか?
試しに、GetObjectの"Excel.Application"の部分を
"Acrobat.AcroPDDoc"とか"AcroExch.PDDoc"とか"Acrobat.AcroAVDoc"とかに
書き換えてみたんですけど、ダメでした。
ちなみにAdobe Readerのバージョンは端末によっていろいろなので、
7〜9辺りで汎用に使えると有り難いのですが…。
982名無しさん@そうだ選挙にいこう:2009/04/22(水) 01:24:21
sage
983名無しさん@そうだ選挙にいこう:2009/04/22(水) 01:39:58
984名無しさん@そうだ選挙にいこう:2009/04/22(水) 06:55:31
>>981
難しそうなので参考になりそうなリンクだけ
ttp://park7.wakwak.com/~efc21/cgi-bin/exqalounge.cgi?print+200806/08060112.txt
985名無しさん@そうだ選挙にいこう:2009/04/22(水) 07:54:19
よくVBAに登場する括弧に挟まれた
Cancel as integrer
とはどういう意味ですか?
986名無しさん@そうだ選挙にいこう:2009/04/22(水) 08:11:23
987名無しさん@そうだ選挙にいこう:2009/04/22(水) 08:23:15
Integer型の Cancel という引数。
988名無しさん@そうだ選挙にいこう:2009/04/22(水) 09:26:44
OS:Windows XP SP2
Access:2003
サブフォームのコントロールソースに関する質問です

あるサブフォームにテーブル「M_AREA_JUDGE」の項目を表示させ、テーブル「M_AREA_SUB」の項目の値を元にサブフォームの表示項目を「目的の表示結果」のように表示させたいと考えております。

しかし、「都道府県」の項目のコントロールソースを「AreaSubID」にするだけでは、「実際の表示結果」のように「AreaSubID」が重複している項目は上の項目を参照するため、正常に表示されません。

「AreaSubID」だけでなく「AreaID」の項目も参照させれば良いと思うのですが、どうすれば良いのか分かりません。
私が思うには、サブフォーム上の項目「都道府県」のコントロールソースを「AreaSubID」だけでなく、「AreaID」も検索項目の対象に出来ればいいのですが、サブフォームのコントロールソースは2つ以上の項目を参照できるようにすることは出来るでしょうか?

よろしくお願いします。

なお、処理イメージは以下のような画像になります
htp://www8.uploader.jp/user/minori/images/minori_uljp03073.jpg
989981:2009/04/22(水) 09:44:46
>>984
む、難しそうですか…。
そこからリンクしてるExcelVBAのページは以前さらっと読んだんですが、
私の力量ではイマイチよくわかりませんでした。
VBAからPost Script Printer使ってPDF作成する時に、
既に開いてるReaderがあるとエラーで止まっちゃうので、
事前に閉じて欲しかったんですけど、エラー処理作るしかないかぁ。
990981:2009/04/22(水) 09:45:35
あ、お礼を言い忘れた。ありがとうございました>>984
991名無しさん@そうだ選挙にいこう:2009/04/22(水) 13:35:17
>>990=981
'標準モジュール内に以下のようにAPIルーチンの宣言をしておいて…
Public Declare Function FindWindow Lib "user32.dll" _
Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long

'FindWindow関数を呼び出してチェックします。
Private Sub 起動チェック()
Dim hWnd As Long
hWnd = FindWindow("AcrobatSDIWindow", vbNullString)
If hWnd = 0 Then
MsgBox "AcrobatReaderは起動していません"
Else
MsgBox "AcrobatReaderは起動中"
End If
End Sub

これでどうでしょうか?
WindowsやAcrobatReaderのバージョンによっては動作しないかもしれませんが…
992名無しさん@そうだ選挙にいこう:2009/04/22(水) 15:07:15
>>988
サブフォーム->プロパティ->レコードソースに SQL文で定義しても
駄目?
993名無しさん@そうだ選挙にいこう:2009/04/22(水) 15:10:21
質問です。
OS:WindowsXP SP3
Access:2000

ID      名前          住所
"I001"    ""           ""
""     "某株式会社"     ""
""       ""        "某県某市某所"

こんな風に値が斜めに入っているテーブルがあります。
""は空白の事です。
各列は、値以外は全て空白となっています。
名前の値を一番上のレコードにUPDATEしようとしたら無理でした(Oracleだと出来るみたい)。
SQL文は以下で、サブクエリのところでエラーになってしまいます。
名前と住所の値を最上行に移動させたいのですが何か良い方法ありますでしょうか。

UPDATE tbl_01
SET 名前 =
(SELECT 名前
FROM tbl_01
WHERE 名前 <> "" )
WHERE ID like 'I*';
994名無しさん@そうだ選挙にいこう:2009/04/22(水) 18:16:12
次立てるよ
995名無しさん@そうだ選挙にいこう:2009/04/22(水) 18:18:31
規制中で駄目だった

ACCESSに関する質問はこちらへ!

▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★ OS、ACCESSのバージョンを明記してください。
★ 質問内容は具体的に書いてください。
  ・何がしたいのか
  ・どんな処理を試したか
  ・動作状況など駄目な理由
  テーブル/フォームの構成、クエリ、VBAの内容など差し支えない
 範囲で詳しく書くと、早く回答が得られるかもしれません。
  図解があれば尚良し。
  聞き返さなくても詳細が把握できる質問が望ましいです。
★ 事前にヘルプ・Google等で調べられる範囲は調べてください。
  大概の疑問は検索することで解決します。
★ アドバイスを貰ったら、必ず経過・結果の報告をして下さい。
  ギブアンドテイクで情報を共有しましょう。

▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【 システム環境  . 】 Windows**, Access**
【 VBAが使えるか .】 はい・いいえ
【 VBAでの回答  】 可・否
【 検索キーワード 】 Googleやヘルプでの検索キーワード

前スレ
Access総合相談所 其の20 【桐にしとけ】
http://pc11.2ch.net/test/read.cgi/bsoft/1230971374/l50

桐はこちら↓
管理工学研究所「桐」【4】
http://pc11.2ch.net/test/read.cgi/bsoft/1100708378/
996名無しさん@そうだ選挙にいこう:2009/04/22(水) 18:32:35
>>993
サブクエリのダブルクォーテーションをシングルクォーテーションにしても無理?
997名無しさん@そうだ選挙にいこう:2009/04/22(水) 18:36:56
立てた

Access総合相談所 其の21 【桐にしとけ】
http://pc11.2ch.net/test/read.cgi/bsoft/1240392946/
998名無しさん@そうだ選挙にいこう:2009/04/22(水) 18:45:42
>>997
999名無しさん@そうだ選挙にいこう:2009/04/22(水) 18:53:35
>>988
今からテーブル構成変えるのは駄目・・・だよねぇ。
ユーザー名を特定できるフィールド作った方が無難なような・・・
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。