【I love Access】やっぱりアクセスが良い
1 :
魔法使いの弟子 :
2007/06/16(土) 23:40:21 ID:??? 比較3原則 1.他のデータベースと比較し必要以上に持ち上たり貶めたりする愚をおかすべからず。 2.比較し必要以上に持ち上たり貶めたりする他のデータベース使いを無視スルーする度量を持つべし。 3.1原則2原則に違反しない限りにおいては節度を持って比較し議論することをかまわないものとする。
2 :
魔法使いの弟子 :2007/06/16(土) 23:45:50 ID:???
3 :
魔法使いの弟子 :2007/06/16(土) 23:49:55 ID:???
4 :
NAME IS NULL :2007/06/17(日) 00:00:12 ID:s+yKce1X
アクセスを使う前に気をつけときたい注意事項 アクセスは使いつづけるとファイルがどんどん大きくなっていくという特徴がある。 そして大きくなればなるほど壊れやすくなる。 そのための対策はいろいろあるが、最低でも次のふたつは行ったほうが良い。 1.閉じる時に最適化するをONにする。 2.データとプログラムを別にする。 以上だけでかなり改善することができる。
5 :
魔法使いの弟子 :2007/06/17(日) 00:13:21 ID:PRfMP8/T
6 :
NAME IS NULL :2007/06/17(日) 02:27:49 ID:K27TxBja
アクセスってDBサーバとして使う事できるの?
>>6 よく意味のわからない質問だけど、DBサーバーというのがクライアントサーバーの
サーバー側だとすれば、Accessはクライアント側だから出来ないというのが正解かな?
8 :
NAME IS NULL :2007/06/17(日) 05:54:24 ID:/DTiUB8e
Accessでつくったプログラム、どうやってバージョン管理してます?
>>8 前はソースセーフってツールがデベロッパーバージョンに有ったけどVSTOになってからどうなってんでしょう?
わたすは、ローカルDBのテーブルに履歴をつけて、この最新をピックアップひょうじしてまつ。
10 :
過去スレ :2007/06/17(日) 16:13:43 ID:???
Access2007でshare point リストにエクスポートするコマンドで、ローカルにエクスポートして自分のPCから使えますか? エクスポート先を自分のPC内にして、Webブラウザでローカルアドレス指定して参照するっていうの
ID 名前 開始時刻 作業時間 1 ほげた 6/19/2007 4:54:48 PM 2 ほげた 6/19/2007 4:59:01 PM 3 ほげた 6/19/2007 4:59:59 PM 上記のようなテーブルで作業時間を出したいのですが、まず終了時間を出したいの ですが、クエリー上でどのように設定すればよいのでしょうか? ・終了時刻は次のレコード作業開始時間とします(テーブルはID順でソートIDは必ずしも連番ではありません Dminを使って現在の作業時間より大きい値の内最小のデータを取り出せれば 終了時間として取り出せると思うのですが、やりかたが分かりません。 Dmin("開始時間","テーブル名",ここの書き方がわかりません。) 終了時間がでればDateDiffを使えば良いと思うのですが・・・。 よろしくお願いいたします。
13 :
NAME IS NULL :2007/06/20(水) 07:11:05 ID:YJt4RB3o
VBAなら簡単だが、クエリだけでは難しい
IDに昇順の連番が保証されてるなら何とか・・・
クエリーで連番を振ってやってその連番とその連番に1をプラスした番号とを結合すれば 理屈ではできそうな気がする。
そういうのは桐でやったら? 簡単だよ
17 :
NAME IS NULL :2007/06/20(水) 16:37:16 ID:N1ipTiWj
2007のマクロは変数使えるようになったので フォームで、累計計算してレコードに書き込むマクロ作ってよ VBAだとフォームのフィルタやorderで変わっちゃうから、マクロの方が汎用性あるよね
>>11 SharePointを持ってないから無責任発言だけど、SharePoint Serviceが
立ってれば出来るんじゃないの?
もっとも、Windows Server 2003をローカルで使うって、あんまり
聞かないけど。
>>12 組み方はいくらでもあるので、あくまで一例だけど。
select
T1.ID, T1.名前, T1.開始時刻, Min(T2.開始時刻) as 終了時刻
from
T1, T1 as T2
where
Int(T1.開始時刻) = Int(T2.開始時刻)
and T1.名前 = T2.名前
and T2.ID > T1.ID
group by
T1.ID, T1.名前, T1.開始時刻;
一応、日をまたぐことはないという前提にしてみた。
後は引き算で作業時間とれるんじゃない。
試してないけど、DMin使うと遅そう。
20 :
12 :2007/06/21(木) 02:14:20 ID:???
>>19 さん
ありがとうございますm(_~_)m
教えていただいた内容を元になんとかがんばってみます。
ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ
22 :
NAME IS NULL :2007/06/22(金) 16:02:48 ID:lkxjB31B
>>12 サブクエリーを使って
ほげたさんの現在のレコードの開始時刻より大きいもののMinを取れば良いような
# 未検証
終了時刻:(SELECT MIN(TB2.開始時刻) FROM テーブル名 AS TB2
WHERE TB2.名前='ほげた' and TB2.開始時刻 > [テーブル名].[開始時刻])
みたいな
PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ
めぼしいスレに書き込んでいるんで スクリプトか何かだと思ったらマニュアルなんだな。 そんな技術力もないかw
ランタイムやっとアップしたと思ったら、もうバグかよw 相変わらずだな
>>28 win2000では動かないんだって・・・・orz
PGはきんたま PGはきんたま PGはきんたま PGはきんたまPGはきんたま PGはきんたま PGはきんたま PGはきんたま PGはきんたま PGはきんたま PGはきんたま PGはきんたま PGはきんたま PGはきんたま PGはきんたま PGはきんたま
睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸
しかし、こんなんで終わるのも情けない。 なんか話題ない?
このスレは元々重複。 終了荒らしでスレ分裂させたりするからだろw
34 :
NAME IS NULL :2007/07/16(月) 21:03:28 ID:wiOlztVw
素人ながら、仕事で使ってるとAccessの凄さが良くわかる ソフトというより、逆にこいつの為にパソコンがあるんじゃないか と思うくらいだ もう愛さずにはいられない
変態ですか をたくですか ぷろぐらむフェチですか
>35 あんたの言ってることは難しくてようわからんね 俺(たち)はただAccessを愛してるだけだ
自分の事を三人称で呼ぶのは、社民党瑞穂チャン脳味噌です。
38 :
NAME IS NULL :2007/07/19(木) 08:40:09 ID:XJV6e7T9
■ おすすめ2ちゃんねる 開発中。。。 by FOX ★ このスレを見ている人はこんなスレも見ています。(ver 0.20) ACCESS総合相談所 その17 【桐にしとけ】 [ビジネスsoft] i-morley [音楽配信] ∞ access2007 Sync.55∞ [邦楽グループ] ワラタ
Runtime 2007 DL再開 日本語版マダー?(・∀・)っ/凵⌒☆チンチン
しばらく遠ざかっていたので聞きたいのですが ACCESSで作って出力が少し複雑なのでACCESSの出力では無理なとき、何を使えばよいですか?
桐にしとけ
VBA
43 :
NAME IS NULL :2007/07/24(火) 21:21:59 ID:wmeZDqHx
Accessでデータ管理をし、出力はExcelでテンプレートを作っておき、セルに書き込むというスタイルがよいだろう。
ダメなやつは何を使っても・・・
昔、クリスタルレポートとか言っていた気がしたが。
>>43 出力の設定の自由さからいったらExcelだもんね。私は別にどうでもいいが、
出力データの再利用の簡単さとか考えるとやっぱりExcelで出力したい人が
うちの職場でも多い。
だからシートにボタン配置して押したら表を自動生成するようにしている。
未だにADO+VBAだけど、それでも十分なんだな。
うんこ投げるぞ、このやろう うんこうんこうんこうんこうんこ
48 :
NAME IS NULL :2007/07/25(水) 18:03:47 ID:u85Q6NH9
スカトロマニア キタ━━━━━━━━━(゚∀゚)━━━━━━━━━ !!!!!
49 :
NAME IS NULL :2007/07/25(水) 20:13:39 ID:2ihHXs+U
>>44 Accessごときで頭の良さやセンスや才能や頭の良さなんてもの関係あんのか?
「頭の良さ」を2回も繰り返すあたりに、コンプレックスの根深さを感じた。
マジレスすると頭の良さはこの世の全てに関係ある
いや、ただのバカだろ
accessから あえて lotus123 に出力ってのに 挑戦してみたいもんだw おれ、未だに愛用してんだよな orz
54 :
NAME IS NULL :2007/07/26(木) 00:27:21 ID:7DJV3Zp+
ある機能を実現するのに何百行も書くるやつもいれば、たった1行で書くやつもいる。それがセンスというものだろう。
同一機能で 数百行vs1行のコードなんてお目にかかったこと無いけどな
どばどばうんこー うんこやろうー氏ね
57 :
NAME IS NULL :2007/07/26(木) 10:32:57 ID:ppo8S2bt
有名なエスニックジョークがある。 アメリカのNASAは、宇宙飛行士を最初に宇宙に送り込んだとき、無重力状態ではボールペンで文字を書くことができないのを発見した。 これではボールペンを持って行っても役に立たない! NASAの科学者たちはこの問題に立ち向かうべく、10年の歳月と120億ドルの開発費をかけて研究を重ねた。 その結果ついに、無重力でも上下逆にしても水の中でも氷点下でも摂氏300度でも、どんな状況下でもどんな表面にでも書けるボールペンを開発した!! 一方、ソ連は鉛筆を使った。 これに類することをセンスのないやつはやってることがあるんだよ。
うんこやろーシネ
59 :
NAME IS NULL :2007/07/27(金) 01:12:29 ID:55yaTlry
PHPはマジでアホでも出来る 簡単な言語だから 勉強しといて損はないと 思う
アホにはできない言語があるというのなら、 どういう部分がアホにはできないのか、説明してほしいものだが。 まあ、無理だ。期待していない。
うんこぶりぶり うんこぶりぶり
巨大うんこー
65 :
名無しさん@そうだ選挙に行こう :2007/07/29(日) 15:01:05 ID:5XNIAD0l
SQLServerだけで十分では?なぜにACCESSを使うのですか?
おっ。 たくさん釣れるといいね。ガンガレ
67 :
名無しさん@そうだ選挙に行こう :2007/07/29(日) 19:57:30 ID:znpvpqg3
SQLSERVERだけではフロントエンドは作成できんだろうが。 製品のコンセプトが全く違うんだよ。
パワーユーザにはフロントエンドは必要ないけどな。
エンドユーザにテーブル直見せ&SQL徹底教育で十分だよな。
お前がビチグソするんだよ うんこー
72 :
NAME IS NULL :2007/07/31(火) 00:07:30 ID:TvfNEhU0
真面目に質問! アクセスからテキストへ CSV形式で落とすことは 可能ですか?
73 :
NAME IS NULL :2007/07/31(火) 00:49:20 ID:7T+huNjG
可能。
74 :
NAME IS NULL :2007/07/31(火) 02:42:50 ID:TvfNEhU0
もうちょっと詳しく教えて頂けたら嬉しい
75 :
NAME IS NULL :2007/07/31(火) 03:09:04 ID:yFbqzX6m
夢を見たいから〜♪
つまり、コピ-で賄う宣言なんだな。
78 :
NAME IS NULL :2007/07/31(火) 10:54:04 ID:uwd1IZGX
>>72 ▼操作手順:CSVファイルをエクスポートする
(Access 2000以降のバージョン)
データベースウィンドウで、
エクスポートしたいテーブルまたは選択クエリを選択
↓
メニュー[ファイル]−[エクスポート]をクリック
↓
[○○をエクスポート]ダイアログ−[ファイルの種類]コンボボックスから
「テキストファイル(*.txt;*.csv;*.tab;*.asc)」を選択
↓
[○○をエクスポート]ダイアログで[保存先][ファイル名]指定後、
[エクスポート]ボタンをクリック
↓
[テキストエクスポートウィザード]1枚目の画面で、
[区切り記号付き-カンマやタブなどでフィールドが区切られている]オプションボタンをOnにし、[次へ]ボタンをクリック
↓
[テキストエクスポートウィザード]2枚目の画面で、
[フィールド区切り記号]欄で[カンマ]オプションボタンをOnにし、[次へ]ボタンをクリック
↓
[テキストエクスポートウィザード]3枚目の画面で、
[エクスポート先のファイル]欄で、保存先・ファイル名を確認後、[完了]ボタンをクリック
区切り文字でカンマを指定しても、エクスポートしたファイルの拡張子は「.txt」になるので、「.csv」である必要があれば、別途フォルダウィンドウやWindowsエクスプローラなどで変更してください。
[テキストエクスポートウィザード]2枚目の画面で、区切り記号をカンマ以外のものに指定することや、テキストデータの区切り記号を指定できます。
上記ではデータベースウィンドウで選択しておいてから操作する方法をご紹介していますが、テーブルや選択クエリを開いておいてからでも同様の手順でエクスポートできます。
http://www.relief.jp/itnote/archives/002033.php あとは自分でぐぐれ。
どばどばうんこ うんこ うんこ うんこおおおおおおおおおおおおおおおおおおおおお
>>77 上から目線で何が、「つまり」だ
このうんこ製造機めが ( ゚д゚)、ペッ
つまり、糞づまりとでも言ってほしいのかっ
82 :
NAME IS NULL :2007/07/31(火) 13:18:09 ID:TvfNEhU0
83 :
NAME IS NULL :2007/07/31(火) 19:38:40 ID:9BZJHMi1
84 :
NAME IS NULL :2007/08/01(水) 10:56:25 ID:ajMW1FJf
2007を使うのはやめとけ。
うんこ、うんこ、きんたまあああああああああああああああああああああ
86 :
かなかな :2007/08/02(木) 19:22:43 ID:C5GKitRp
お世話になります。 adpで開発してるんですが、あるadpファイルから他のadpファイルの 接続情報を変更することってできるんでしょうか。 自分のadpなら Application.CurrentProject.OpenConnection で できるんですけど。。 変更をかける側はadpでなくても構いません。 どなたかお知恵をお貸しください。。
質問です。 一年半ぐらい出向している現場で、主業務とは別にその現場内で使用するシステムを ACCESSで複数開発していたのですが(目安としてフォーム数は3〜40程度)、 リレーションが実はよくわかっていません・・・ いつもクエリでドラッグしてリレーションは完了。 一対多や一対一など何も設定せずやってきました。 一応システムは普通に動いており、整合性も問題なさそうなのですが、 厳密にリレーションを定義しなかった場合、 どういった問題が発生するもんなのでしょうか? 元々PGではなく、基礎がわかってない為VBやSQLは多少使えるようになった のですが、 その分リレーションの知識不足が不安になってきた今日この頃です。 どなたか教えてくださいませ。
88 :
NAME IS NULL :2007/08/04(土) 13:54:12 ID:Ec2np0oc
リレーションは全く設定しなくてもなんら問題ない。
同意。 「ドラッグして」のところの手間が省けるというだけで、動作自体には関係ない。 連結してほしくないときに勝手に連結しやがって、削除する手間が増えるだけの ときも多いので、むしろ使わない方が自分は楽。
>>88 >>89 知り合いには周りには聞きづらいことだったんで助かりました。
ありでした〜
連鎖削除や連鎖更新は結構便利。
連鎖といえばトリガも用意してくれるといろいろ楽なんだが 2007でも無いんだろうな・・・
Accessは手軽さが命なんだから、これ以上機能は増やさないでくれ。 まあ、64bit版なら話はべつだが・・・
2007(.ACCDB)でオートフィル廃止、DAP廃止、QWC廃止、ユーザーレベル セキュリティ廃止、レポートのExcel出力廃止と、かなり削られてるわけだが。 ランタイム無償化を布石と考えると、次はVBA廃止(.NET移行)でAccessは Officeスイートから外れてVSの何かのエディションに吸収、開発したけりゃ 高いVS買えという流れではないかと予想。
NETに移行すると、Accessの敷居が一気に高くなるんだろうな。
簡易版.NETみたいなものになるかと・・・
一応クソでもRDBなのに、リレーション使わないのは もったいない。
>91 連鎖削除や連鎖更新はアクセス固有のものだから、将来SQLSERVERに移行するつもりなら使わないほうがよい。
リレーション張ると速くなるって書いてあるけど、それって本当なのかな?
リレーション厨しつこいな・・・
なんかトンチンカンな奴が多いな 悲しくなる
Didn't mean to make you cry If I'm not back again this time tomorrow Carry on, carry on, as if nothing really matters
いつも気になっていたんだけど、ADPで開発するとき、コネクションを Dim cn As ADODB.Connection Set cn=CurrentProject.Connection でひろってきて使い終わった後はクローズ後破棄したらいいのでしょうか? それともクローズせずに破棄がよいのでしょうか? というのもカレントプロジェクトのコネクションだから閉じたらまずいのかと 思いまして・・・ 一応どちらでも動くことはわかっているし、どちらかがパフォーマンス著しく悪い とかいうことはないのですが、正しい作法をしりたいのでお願いします。
104 :
NAME IS NULL :2007/08/11(土) 01:01:13 ID:E31B6utd
すいません、FAQかもしれませんが教えてください。 Access 2003 Developer Extentions はどうやったらインストールできるのでしょうか? VisualStudio Tools For the Microsoft Office System は持っているのですが、 完全インストールしても、入らないんです。 VSSによるソース管理をしたく、どなたかご存知の方ご教授ください。
>>103 破棄してるなら気にすることはないと思うが、
俺なら明示的にCloseするなぁ。
access2003の評価版を手に入れるにはどうしたら良いでしょうか microsoftのhpを調べたのですが2007の評価版しかなくて・・・ 書籍に添付されているかもと検索してみたのですがこちらも 見つけることができませんでした。 入手方法を教えていただけないでしょうか、お願いします。
>>98 SQLServerでも連鎖削除や連鎖更新はできるぞ。
108 :
NAME IS NULL :2007/08/12(日) 23:49:25 ID:w1hY78KO
うんこ、うんこ、きんたまあああああああああああああああああああああ
うんこ、うんこ、きんたまあああああああああああああああああああああ
スカトロマニア キタ━━━━━━━━━(゚∀゚)━━━━━━━━━ !!!!!
社内の中規模DBをSQL Server+ADP(ACCESS2000)で作っているんだけど 便利だわ。かゆいところに手が届く感じだ。まだまだ使える感じだ。 2007とかだとさらに便利になっているの?
不便になってます
正直この流れ、好き。
115 :
NAME IS NULL :2007/08/30(木) 18:25:41 ID:xXyjZ2jf
2007とかだと更に不便
具体的にどんな部分が不便になっているのか、 知っていたら教えて欲しい。
バグが増えた
バグ程度だったらサービスパックあたったら改善されるような 気がするので、自分的には無問題です。甘い?
>>118 はじめてMS Officeに触るのなら、2007でいいんじゃないか。
アイコンというツールバーが激しく変わったので
以前からのユーザーには使いづらいのだろう。
俺はβ版しか使ったことがないので、製品版でどうなったかは知らんが。
そんなとこいじるなら、、2GB制限をどうにかして欲しかった。
最適化で全データ消失という洒落にならんバグもあるので、 「無問題」とはとうてい思えんが。
ワークグループ権限管理が無くなってる レポートのエクセル出力が廃止された
MSDEはACCESS2000で終わってしまったんですか?
SQLサーバーExpressEditon
全データ消失されたらたまらん。 エクセル出力がなくなるもの辛いところだな。 なんでまたエクセルとの連動部分をカットしたのだろうか。
だれか、Access2007とVSTO2005と組み合わせて使った人いない?
エクセル出力無くなったの? ひょえー、使いまくりの機能だったのにー。 代替機能は無いの?
持ってないから知らんけど、「レポートの」Excel出力だけでしょ。 Excel出力全部無くなったわけじゃないのでは。 まあ痛いことに変わりはないけど。
128 :
NAME IS NULL :2007/09/03(月) 17:59:43 ID:7rjDa0kz
2003を買おうと思ってるんですが、通常版とアカデミック版は内容って違いますか?
いません。
同じくAccessを買おうと思っているのだけど、いまからなら2003より 評判の悪い2007を買ったほうがいいのかな?
>>130 open licenseで2007買ってダウングレートで2003利用すればいいじゃん。
132 :
NAME IS NULL :2007/09/04(火) 18:07:33 ID:UnhrcuhT
>>131 2007をダウングレードして2003で使うことなんて出来るのか?!
ライセンス的におkという話よ。 メディアは別途所持済みの前提。
おや、違うのか? そりゃすまん。 じゃ最新のソースを教えてくれ。
2007なのに2000なのかよ・・・ なんだか損したような得したような複雑な感じですのう。
Accessは2000がベストってことだろ? 機能が多けりゃいいてっもんでもないし・・。
オレは、2003の方がいいな。ヘルプは使いづらいけど。
2000をフロントエンドで開発しているけど、 リストボックスとかがホイールに対応していないのがなんとも もどかしい。これさえ無ければ最高なんだけどな。
マウス拡張系のソフトを使うべし
143 :
NAME IS NULL :2007/09/12(水) 21:06:55 ID:f0TCAAuJ
なんでSDIにしてしまったんだろうなぁ
VBAエディタ画面でホイール効かない伝統のバグは2007でようやく直った。 でもWheel Redirectorとか便利なんで外さないから結局関係ないんだよなw
>>144 あんなわかりやすバグが
2003でもなおってなかったのかよw
バグじゃないだろ?仕様だろ
>>144 2007にはmdbファイルを跡形も無く消し去るバグが新たに追加されたけどね。
あまりにもサクッと消し去るので、はじめは何が起こったのかわからなかったw
「終了時に自動的に最適化する」をオンにしてると酷い目にあうよ。
>>147 なにかあるだろうとは思ったけど、それはすごい。
これほど致命的なバグはなかなかない。
さすがマイクロソフトだ。バグも半端じゃないな!
>>147 そのバグはまだ修正パッチが出てないの?
>>147 聞いたことないんだけど、ソース出せる?
これがあるからMSは侮れない!!
SQLServer側のテーブルでプライマリキーが無いテーブルのテーブルリンクは 編集不可になるけどこれって仕様?
普通に考えて、プライマリーキーがないテーブルの 特定の一行を、書き換えるなんて不可能。 行を判別する方法がないんだから。 SQLを書くとして、プライマリーキーがないとして 特定の行を狙って書き換えることってできると思うか?
>>147 バックアップは怠らないでくださいという
MSのやさしいリマインダなんだよきっと・・・
>>155 なるほど。そんな単純な理由なんですね。
>SQLを書くとして、プライマリーキーがないとして
>特定の行を狙って書き換えることってできると思うか?
ボラクルは出来るけどSQLServerとかは出来ないのですね。
ありがとうございました。
>>156 いや、むしろバックアップを取らない愚か者には神(MS)の鉄槌がくだされると言う啓示なんだよ。きっと・・・
>>157 オラクルでそれができるのは
SQL標準とはかけ離れた独自仕様だからね。
>>158 すると、バックアップをちゃんと取っている正直者には、ちゃんと神が配慮してくださる
ということでしょうか。
バックアップの有無と関係なく鉄槌が下された日には、無差別テロとの違いが分くぁwせdrftgyふじこ
理由はわからないが備える者に憂いがやってくるケースは稀だよな。 「読めなくなっちゃたんですけど、どうすればいいですかぁ〜」とか 泣きついてくるユーザーは必ずといっていいほどバックアップを取っていない・・・
読めなくなるより、消えて無くなるほうがさっぱりしてていいね。
きっとDBの設計が糞だったから、 HDDを最適化するために削除したんだよ。 う〜ん、かしこいぞ2007 w
>163 ある意味、もっとも待ち望まれた機能だな。
かなりの初心者です。 アクセスを勉強しようと思うのですが、お勧めの参考書というか初心者でもわかるお勧めの本って ありますか?
桐にしとけ
アクセス入門
168 :
NAME IS NULL :2007/09/20(木) 13:52:25 ID:iBA+I+uy
すいません。最近アクセス2003を購入し、勉強しはじめたものですが、質問があります。
メールアドレスの定型入力を作りたいのですが、
定型入力で [...]の部分をクリックして
定型入力名をメールアドレスにして、
定型入力を試しに、
[email protected] にしてみたのですが、案の定上手くいきませんでした。
こうしてしまうと、?が10個あるので必ず10文字いれなくてはいけなくなってしまいます。
そうではなく、?の部分は何文字でも良いというルールにしたいのですが、この場合どう対処すれば良いのでしょうか?
@xxx.xx.jpはそのままでオーケーです。
問題なかったです。
169 :
NAME IS NULL :2007/09/20(木) 15:05:17 ID:fMYpCLp2
フォーム内のフィールドて編集不可かいな
0 数字。この位置に 1 桁の数字を入力する必要があります。 9 数字。この位置の 1 桁の数字は省略可能です。 # この位置に 1 桁の数字、スペース、または正/負符号を入力します。ユーザーがこの位置への入力を省略すると、自動的にスペースが入力されます。 L 文字。この位置には、A 〜 Z の半角文字を入力します。入力は必須です。 ? 文字。この位置には A 〜 Z の半角文字を入力します。入力は省略可能です。 A 文字または数字。この位置には、A 〜 Z の半角文字または 0 〜 9 の半角数字を入力します。入力は必須です。 a 文字または数字。この位置には文字または数字を入力します。入力は省略可能です。 & 文字またはスペース。この位置には、任意の半角文字またはスペースを入力します。入力は必須です。 C 文字またはスペース。この位置には、任意の半角文字またはスペースを入力します。入力は省略可能です。 . , : ; - / 小数点と桁のプレースホルダ、日付および時刻の区切り記号。選択する文字は Microsoft Windows の地域の設定によって異なります。 > これに続くすべての文字が大文字で表示されます。 < これに続くすべての文字が小文字で表示されます。 ! 定型入力のデータが右から左ではなく、左から右に埋め込まれます。 \ この直後の文字が強制的に表示されます。文字を二重引用符で囲むのと同じです。 "リテラル文字列" ユーザーに対して表示する文字列は二重引用符で囲みます。 Password テーブルまたはフォームのデザイン ビューで、"InputMask/定型入力" プロパティに「Password」を設定すると、パスワード入力ボックスが作成されます。 このボックスにユーザーがパスワードを入力すると、入力された文字は Access に保存されますが、アスタリスク (*) で表示されます。
171 :
NAME IS NULL :2007/09/20(木) 15:27:59 ID:iBA+I+uy
>>171 satou @xxx.xx.jp
って感じです。間違えました・・・。
@xxx.xx.jp がいつも固定ならわざわざ入力させずにラベルのキャプションで表示して そのラベルの左隣にテキストボックス配置して右詰めで可変長文字列を入力させるとか・・・
解決できました。ありがとうございました。
>>175 解決したら、方法書きなよ。
同じ疑問持ってる人の為になるから。
2007閉じる時にmdbファイルが消えた。
これが噂の、閉じるときにクソ設計のゴミDBを削除する最適化機能か。 漏れも早く 2007 にアップグレードしなきゃ。
【 システム環境 . 】 Windows2000, Access2000 【 VBAが使えるか .】 いいえ 【 VBAでの回答 】 否 【 検索キーワード 】 テーブル・フォーム・gmt・書式 Gmtをテーブル上で日本時間表示したい。 長整数型で設定してます。 クエリーを日本時間にするためだけに作成し 日時: DateAdd("s",[GMT],#1970/01/01 9:00:00#) として、表示させてます。テーブルだけでなんとかなりませんでしょうか
>>179 最終的な目的は何?
テーブルでやる必然性は無いはず。
表示/入力したいならフォーム側でやれば良いからクエリ不要だし。
>>180 サイトのアクセス解析に利用。GMTのままだと理解できない。
Ms-アクセステーブルの検索ワードで選択後、その人間がどう動いたかを知りたい。
アクセスアナライザーでいう生ログをそのままテーブルにしてる。
それしか、読み込み方を知らない。テーブルとクエリー以外に使った事がない。
他を使おうとしていつも挫折状態です。
Accessに取り込むところはどのようにしてるのか分からないが、そこで処理すべきじゃないかな。 テーブルなんてデータ保管庫だし、表示を細工したかったらクエリ使えってコンセプトだし。
tbl弄りたいなら桐にしときなよ
179=181です
>>182 今は、テキストエディタでコピーして、アクセス一番下の行にペースト
自動で挿入もしたかったのですが、挫折しました。
その前は、excellでgmtを変換してからコピペ。
>>183 いじりたいんでなく、それしかできないんです。
他に方法があれば教えてください。
>>184 > いじりたいんでなく、それしかできないんです。
> 他に方法があれば教えてください。
クエリで実現できるなら、それで、tblにエクスポートするなり、tblをアップデートするなりしたら?
>>185 仮テーブル→クエリーで変換→本テーブルへコピペですね?
わかりました。ありがとうございました。
更新クエリやテーブル作成クエリもアルよ
>>187 様
仮テーブル→クエリーで変換と同時に本テーブルへ追加
更新クリアーできました。
テーブル作成クエリの方がよくわからないです。
毎回新たにテーブルを作るってことですか?ちょっと消化不良です。
ヒントをプリーズ
テーブル作成クエリは使わない方がよい。
どれでも、やってることは大差ない
>189 わかりました。わかんないからちょうどいいです。オイオイ >190 私もそう思います。 少しだけ理解できたところで全てやろうとするから、結局発想が同じなんです。 わかってる人から見るとひどいですか? 考えてチャンになってきたみたいなので、このあたりで。 更新クエリこねくり回したら、前にあきらめた事まで出来そうな気がしてきました。 もう少しがんばってみます。ありがとうございました。
>179でいいじゃん、と思うけど。
193 :
NAME IS NULL :2007/10/03(水) 18:49:20 ID:AL6oveWf
クライアントPC:win2000 access2002 SQLserver2000 クライアントPCからODBC接続で追加クエリを実行すると「[DBNETLIB][ConnectionRead (recv()).]一般的なネットワーク エラーです。」のエラーが出てサーバーに繋がらなくなります。 別のクライアントPCからは問題ありません。 いろいろ試していたところ、漢字が入っているフィールドを追加するときにエラーがでるようです。 以前は問題無かったのですが、HDDがクラッシュし、初期化して再設定を行った後からエラーがでるようになりました。 何が問題なのかさっぱりわかりませんので教えて頂けないでしょうか。
>>193 > 以前は問題無かったのですが、HDDがクラッシュし、初期化して再設定を行った後からエラーがでるようになりました。
もしかして、format コマンドつかった?
初期化コマンド使わないと、漢字通らなくなるよ
195 :
NAME IS NULL :2007/10/03(水) 19:13:00 ID:AL6oveWf
>>194 HDDの初期化コマンドということでしょうか?
Access2007だと、閉じるだけでmdbファイルを消してくれるけどなw
198 :
NAME IS NULL :2007/10/08(月) 21:36:17 ID:omVv5Rvz
ある家電量販店でAccess2007でランタイムを作成出来るかMSのofficeソフトの呼び込みしてる係員に聞いてみた 「OfficeProがあれば可能です」と答えた ネットでランタイム作成の追加ダウンロードすれば出来ると見たがと再度聞いてみた 「エクセル2007も購入すれば可能です」との答え 何でアクセスのランタイム作成するのにエクセル必要なんだと聞いたがモゴモゴ わからねえなら中途半端に断言するなよ。最近出来た古都のビッ○カメラ店員 メーカー派遣係員は対応よかったがビッ○の店員は屑だった MSのページでもアナウンスしてねえし分かりにくい
それ只のイジメ
>>199 分からないなら分からないって言えよって・・・
先輩に聞きにいってそんな答え出すんだしさ
上もそんなスタンスなんだから素人しか相手にしてないの丸見えなんだよ
安売り店が参入ってCM打ちまくってそんなに安くもないしさ
本当に2007単体でランタイムできるのかが知りたいだけなんだけど・・・
現在はバグで引っ込めたまんまなの?
京都ならビックは駄目だよ ヨドバシオープンまで待ちな
>>200 > 現在はバグで引っ込めたまんまなの?
2ヶ月以上前に修正版が再公開されてるが…。
まあ、日本語のページではまったくアナウンスされていないから、
あまり積極的に宣伝したくない事情もあるのかもしらんが。
203 :
NAME IS NULL :2007/10/08(月) 23:09:42 ID:bGal93D8
つうかあんな連中に聞くなよ 知識薄っぺらいんだしさ
>>202 トン
一応公開されてるのか
ソフト作成してランタイム配布する予定があるもんでFileMakerとどっちにするか検討中なのよ
FMも使えるけどAdvanceで高いし修正するのめんどいからAccessでしたいんで・・・
未だに自社用はAccess2000だし、ランタイムが無償ならバージョンアップするならいい機会なんだよな
>>203 値段確認するだけで聞くつもりはなかったんだけど、呼び込みまでしてるなら詳しいのかと思っちゃうじゃん(´・ω・`)
結局ネットで聞くほうが確かみたいだね
呼び込みしてる程度で詳しいって勘違いできるお前が信じられんわ
206 :
202 :2007/10/09(火) 02:18:28 ID:???
>>204 今のところ英語版のみなので注意。
メニューが英語なだけで、日本語の表示は無問題らしいけど。
>>205 そこそんなに食いつくところですか?
てか、何か嫌なことあったの?
よかったら話してみ。Jet-SQLで何とかできることなら、相談に乗るよ。
OFFICEの売り子だろ?Accessのことなんて知ってるわけ無いじゃん。 WinXPの売り子にFAXの機能を聞くようなもんだ。
208 :
NAME IS NULL :2007/10/11(木) 03:36:29 ID:V1EDsf8a
すいません。 最近勉強しはじめた超初心者なのですが、質問があります。 コンボボックスを作り、マクロを選択することって出来ますか? コンボボックスのリストには自分で組んで名前をつけたマクロがあり それを選ぶとマクロがキックされる仕組みです。 いろいろ弄ってるんですがどうも核心に近づけません。 よろしくご教授お願いいたします。
なぜにわざわざデータベース板で
ターミナルサービスでAccess2002を使用していますが、 空のmdbを開いただけでMSACCESS.EXEのプロセスが CPUを60〜100%まで占有するという現象とその対策を ご存知の方いませんでしょうか? 実際に他のプロセスのパフォーマンスが極度に低下する ので、タスクマネージャからのガセ情報ではなさそうです... 環境は... Windows Server 2003 R2 Standard SP2 Office XP Professional Editon SP3 OSもOfficeの最新パッチをすべて適用済 ググってもそれらしいのが見当たりません... よろしくお願いいたします。
212 :
211 :2007/10/11(木) 16:28:35 ID:???
× OSもOffice の 最新パッチをすべて適用済 ○ OSもOffice も 最新パッチをすべて適用済 orz
213 :
NAME IS NULL :2007/10/12(金) 04:07:27 ID:UpA085F/
>>209 レスありがとうございます。
なんとなくは分かります。
VBAじゃないとできないんだなぁ・・・くらいのレベルです。
どうもどこから手をつけて良いか分からない状態で・・・・・。
とっちらかった質問ですいません。
>>208 単純に考えればこれだけのこと・・・
Private Sub コンボ59_AfterUpdate()
DoCmd.RunMacro Me.コンボ59.Column(0)
End Sub
どーでもいいことだが、なぜ59?
悟空だから
217 :
NAME IS NULL :2007/10/14(日) 19:41:44 ID:IZuOMY8Q
アクセス初心者です。質問なのですが、 テーブルを作成して、エクセルのデータをインポートしたいのですが ヴィザードが見つかりませんというメッセージが出て、インポート出来ません。 バージョンは更新し、アクセスは完全インストールしたのですが、何か理由が考えられますか?
>>217 バージョンは何?
アクセスのテーブルをエクセルにエクスポートはできるの?
>>218 Access2003です。アクセスのテーブルをエクセルにはエクスポートできます。
エクセルファイルをCSV形式で保存し、それをアクセスでインポートすることはできるの?
アクセス以前に、コンピュータの初心者の予感
回答者が?
文からはアクセスも初心者であると読み取れるので、 アクセスが初心者であることが読んだだけで判断できるのは 質問者か回答者、どっちかわかるよな?
224 :
NAME IS NULL :2007/10/17(水) 01:34:33 ID:MITKNUFH
アクセスでVBAを勉強しようとしたらちんぷんかんぷんなので EXCELでのVBAを勉強しようと思うのですが、そもそもその発想自体おかしいのでしょうか? 自分の中では、 「ひとまずエクセルのほうから出直しだ!」的な考えなのですが・・・。
Excelはマクロの記録ができるので楽って言えば楽。 AccessのフォームではExcelと違いイベント駆動型になるのでVBとかの方が近いかも。 まあ使用するライブラリっつーかオブジェクトは全く別もんなので一から覚えなおす必要はある。
select count ( distinct xxx ) from table って、できないのね。 重複しない件数取得したいときはどーしたらいいの?
桐なら簡単だよ
じゃあ桐ならどうするのか言ってみ。
一撃で解決 x件以上重複のレコードだけ絞り込んだり その補集合取ったり 最初からコマンドにある
>>227 クエリでDISTINCTしておいて、そのクエリをカウントじゃ駄目?
そうですか、正攻法じゃないから駄目ですか・・・
fromにサブクエリって使えなかったっけ?
mdbファイルに外部ソフトから発行されたSQLをキャプチャする方法。 誰か知りませんか?
235 :
NAME IS NULL :2007/10/18(木) 15:37:01 ID:lNqAbmKQ
Access2007のテーブルデザイン画面で、複数のフィールドを選択した状態で キーボードのDelキーを押すと、画面上では削除されたように見えるけど、 実際には削除されていないという不具合は既出ですか?
>>227 面倒くさいから全部GROUP BYしてからCOUNT
>>227 ユニークキーをつけたテーブルを作成し、データをINSERTしたあとCOUNTするという手もある
238 :
NAME IS NULL :2007/10/23(火) 02:29:49 ID:D6Zj60yF
学生なんですがAccessでレイゾウ庫を管理するシステム誰か作ってくれませんか。 課題なんですがもうAccessなんてチンプンカンプンで・・・ 少しならお金払えますのでどなたかお願いできませんか。 商品名 賞味期限 原産国 数量 のデータ入力フォーム 『賞味期限』というボタンを押すと切れる順番に表示 『在庫』を押すと現在レイゾウ庫に入っている在庫表示 『使う』を押すとその在庫が表から消えるみたいな感じで。 よかったらメールください yuki198547あっとほっとめーるどっとこむ
>>238 その金でアクセスの初級セミナーを受けたほうがよい。
>>238 がんばれ!
それぐらいできないと仕事できないよ?
Accessにもマクロウイルスってあるんだよねえ
2chは匿名(笑)掲示板だからウィルスばらまくにはもってこいだね(笑)
246 :
NAME IS NULL :2007/10/24(水) 00:43:53 ID:nsHmKfL3
Accessオペレータで生活できますか? 転職しようかと・・・
>>243 ありがとございます
参考にして作ります。
× 参考にして作ります。 ○ そのまま提出します
× 20万円振り込んどいてくれ。 ○ 一晩好き放題でも可。
俺は一回だけでいい。付き合ってくれ。
× そのまま提出します ○ 入れたまま出します
252 :
NAME IS NULL :2007/11/03(土) 01:13:52 ID:Lnnx883U
2007どうなのよ?
興味無いね。
>>252 β版の時にはそれなりに評価されていたが
製品版が出てからは悪評の方が多い気がする。
まぁMSの場合、製品版はSPが出るまで
有料ベター版のようなものだから仕事では使えないね。
255 :
NAME IS NULL :2007/11/04(日) 23:24:39 ID:XX8CJ/G7
>>254 そうなのか
新しい2007形式MDBはどうなのかなと思ってたが・・・
やっぱ使えないか・・・・
2003はSP3まででているようだが、そっちの評価の方が気になる。
1.例えばcsvをインポートすると、テキスト型の場合はフィールドサイズが規定で255文字になりますが、これに1文字だけ入力た場合でも、ハードディスク上では255文字分の領域が確保されることになりますか? (必要な文字数に制限したほうがよいのか?例えば住所などは、想定していた文字数を超えてしまうことがありますので最大文字数を決めづらい。。) 2.上との比較でメモ型の場合、約65000文字までの入力が可能ですが、実際に入力し保存された文字列が格納される領域は、どのような文字数で決まっているのでしょうか?
要は、他のデータ型も含めて、「パフォーマンス」や「ハードディスク」に対して、フィールドサイズがどのように影響するのか?どのように設計すべきか?ということを悩んでいます。
ACCESS2000のリストボックスで特定のカラムだけ右寄せにすることってできますか?
>>259 文字列の前にスペースを挿入すればよい。
>>256 SP3にしてから、デザイン画面中に落ちてしまう頻度が以前より多くなった気がする。
>>261 RowSourceにSQLをつっこんでリスト表示しているので、
SQLレベルでやるか、リスト表示後に加工するかです。
右詰表示したいのはmoney型フィールドで、\マークとコンマ付けは
ACCESSがやってくれてます。
SQLレベルでは文字列に変換して先頭にスペースを付加することは
できたのですが、当然のことながら\マークとコンマがなくなってしまいました。
私のSQLレベルでは解決できなかったのでとりあえずこの方法は保留。
次にリストにデータを読み込んだ後の処理も考えましたが、
Columnプロパティを使用して要素にアクセスはできるのですが、
残念ながらこのプロパティは読み取り専用でした。よって不可能。
レコードセットで開いて、1レコードずつ処理しながらリストに
追加する処理ならならなんとかできそうですが、レコード数が増えると
レスポンスの問題がでてきそうです(未検証)
せっかくフィールドのタイプを判断して自動でコンマや\マークを
付加してくれるのですから、右詰もやってくれてもよさそうなものですが・・・。
こんなSQL文でどう? SELECT Right(Space(9) & Format(金額,'\\#,###'),9) FROM TABLE
>>264 ありがとうございます。
実はT-SQLを使っていまして、FORMATが使えなかったので、
こんな感じになりました。
select substring(right(space(15)+convert(nvarchar(12),Kingaku,1),15),1,12) as [請求金額] from TABLE
convertの仕様で、最後に ".00" がついてしまうので、substringで除去しなければならなくなり、
こんな記述になってしまいました。\マークはなくなってしまいましたが、これでよしとします。
266 :
NAME IS NULL :2007/11/07(水) 18:38:35 ID:ZRdOY26F
なんという日本語でおk・・・
>>266 リンクテーブルはやめて、SQLだったら「In句」
ADOだったらConnectionSetingでパス直打ちすればいいんじゃね。
269 :
NAME IS NULL :2007/11/08(木) 01:05:27 ID:s9agLjsJ
>>267 不謹慎だが素直にデスマ中に和んだ
ありがとうorz
Access2007はSPいくつまで出るんろうだう?当分の間は仕事では使えない。
285 :
NAME IS NULL :2007/12/26(水) 17:50:32 ID:LrTEtUw8
アクセス初心者です。教えて下さい。 仕事でアクセス使ってるのですが、クエリでデータを出してエクセルにエクスポートして、 そのエクセルデータをテキストデータにして、それを会社に納品しているのですが、 本日ミスが発覚しました。 納品した会社では、テキストデータをまたアクセスに読み込んで 使用しているようなのですが、その会社から読み込めないと連絡があり 確認してみたところ、アクセスでそのテキストデータをインポートしてみると 文字化けして読み込めないのです。 しかし、インポート画面の左下にある設定というボタンを押してみると 『コードページ』という項目があって、そこが『西ヨーロッパ言語』になっていました。 そこを『日本語(シフト JIS)』というのに変えると読み込めるのですが、 このコードページを設定した記憶がなくて、何で西ヨーロッパ言語になっているか分かりません。 これを直す方法やどうして言語が変わってしまったか原因など分かりますでしょうか? 分かりにくい文章で申し訳ないのですが、よろしくお願い致します。
287 :
NAME IS NULL :2007/12/26(水) 18:29:43 ID:LrTEtUw8
>>286 どうもありがとうございます。
マジで初心者なので、読んでもよく分からなかったです。。。orz
元からそういう動作(?)をしてしまうということですよね?
実は2つデータを出していて1つは上手くいくのですが、
(コードページの項目も日本語になっている。)
もう1つが
>>285 に書いたようになってしまいます。
>インポート処理なんて簡単だからVBAで実装汁。
↑もよく分からないのですが、どういうことでしょうか?
超初心者で大変申し訳ないのですが、よろしくお願い致します。
>>287 実際には相手先の話なのでそちらで対応してもらうしかないが、
データレイアウトは毎回同じだろうからインポート定義を
作ってもらうしかないんじゃないか。
これだったらマクロでも対応可能だったと思う。
ところで、なぜExcelに一旦エクスポートしているの?
こっちもアクセス、あっちもアクセスなんだからmdbでの受け渡しを 検討してもらうのが一番いいんだけどね
>>287 テキストデータの内容を解析して、先頭に半角文字が入力してあるデータが
一定件数(6件?)連続していると、既定値として「西ヨーロッパ言語」に設定
しています
なので、出力するデータを工夫して、先頭にひらがなや漢字などのDUMMY
データを入れてやれば、インポート時の既定値が「日本語」になります
ただし、当然、このデータをインポートする側でこのDUMMYデータを破棄
する等の処理が必要となりますので、相手側と相談してください
「マジで初心者なので」とのこと、ここ数回のやり取りがまったく理解できない
ようでしたら、ここで質問しても無駄だと思いますので、わかる人にやっても
らう等、別の措置を考えたほうがよいかと
>>287 です。
>>288-290 レスありがとうございます。
>>286 さんに教えてくださったマイクロソフトのサポートページを
上司に見せたら、そのまま送り先の会社にも送ったようです。
(そちらで(送り先の会社)言語を変えてくださいと言ったそうです。)
私のクエリ作成上のミスだと思っていた(思われていた)ので、
違うと分かって安心しました。
丁寧に教えてくださってありがとうございました。
アクセス姉ちゃん奮闘中ってなとこか
293 :
NAME IS NULL :2007/12/31(月) 18:47:00 ID:nTwE3+1s
すみません、アクセス初心者です。 アクセスに写真を載せたいんですが、『写真1』とか記入すると 自動的に載るようにするにはどうすればよいのでしょうか? ってうまく言えませんごめんなさいorz
気にするな 社内SEならこの手の質問、毎日のように来るから何となく分かる
質問の意図が分かるという意味で実現方法が分かるという意味ではないだろう。
いや、日本語が不自由同士、うまく言えない気持ちが分かるって意味じゃないのか。
298 :
NAME IS NULL :2008/01/01(火) 03:38:12 ID:XT/C0LkP
jpg等の属性のデータを項目として定義することは可能ですか?
299 :
NAME IS NULL :2008/01/01(火) 03:39:08 ID:XT/C0LkP
風呂からあがったら確認しますからどなたか返事いただけませんか?
300 :
NAME IS NULL :2008/01/01(火) 03:40:53 ID:XT/C0LkP
出来れば上級SE(10年選手)の方を希望します。
301 :
NAME IS NULL :2008/01/01(火) 04:07:21 ID:XT/C0LkP
テーマはACCESSとオープンソースのBASEでの代替および信頼性、コスト上の メリットデメリットについてでした。 弊社SEに確認して見ます。
.
>>294 の何となくわかるというのは、
こいつは馬鹿だから返答の必要がないと経験から感じているだけ。
教えてください ネットワークからアクセスのデータベースに接続するとして クライアント側にアクセスが導入されていない場合、クエリーの処理は サーバー側のアクセスで行われるのでしょうか? それともそもそも実行不可能なのでしょうか? クライアントソフトはVBかc#で組む予定です。
>>298 jpg等の属性って結構むずいよ。
たとえば、スク水・貧乳・体操着・眼鏡・パンちら・パンもろ・もろもろ・妹・園児・けもの・制服・母・放尿・断面・1人・3人
>>303 > ネットワークからアクセスのデータベースに接続するとして
> クライアント側にアクセスが導入されていない場合、クエリーの処理は
> サーバー側のアクセスで行われるのでしょうか?
> それともそもそも実行不可能なのでしょうか?
> クライアントソフトはVBかc#で組む予定です。
そもそもクライアント側でAccess使わないのならAccess使う意味が無いというものでは?
サーバー側でクエリーの処理をしたければMySQLやPostgreSQLを使えばいいんだけど、
もうAccessとはなんの関わりも無い話になってしまう。
組む予定というのが外注するという意味ならまあ話はわからんでもないけど、
自分でプログラムするっていう意味なら・・・・・
AccessがインストールされてないPCでもDAOやADOを参照設定したVBアプリで
mdb操作ってのは普通にやるけど、
>>305 の言うとおりデータベース処理はクライアント側。
308 :
303 :2008/01/09(水) 22:08:09 ID:???
ども レスありがとうございます。なるほどそうなるんですね。 でも実行が可能とわかり安心しました。
309 :
NAME IS NULL :2008/01/12(土) 15:34:25 ID:G/Y9XJOU
ファイルサーバにMDBファイルおいて 共有するという思想はいい加減捨てて欲しい。 ちゃんと使いたいならRDBMSの導入。
mdb共有って 複数人で使うと不便でたまらんのに・・・ SQL ServerにアップサイジングしてADPで作っても たいして手間かからないから、そっちをおすすめ。
ADPってなんですの?
MDBで作りこむほど、ADPには移行しにくくなるけどな。
jetのSQLとT-SQLまるで違うしな
314 :
NAME IS NULL :2008/01/13(日) 00:47:19 ID:wTXjxmrm
ファイル起動時にフォームを自動で開く方法どうするんでしたっけ?
ツール ->起動時の設定
316 :
NAME IS NULL :2008/01/13(日) 00:54:23 ID:wTXjxmrm
↑サンクス。助かったm(__)m
小回りのきく手軽さという点では、MDBの方が圧倒的に優れてる。
>>318 それは理解できる。
スタンドアロンで使う小規模DBとしては優秀。
諸悪の根源は、
あれをRDBMSだと勘違いして
複数ユーザーで共用しようと言う思想。
業務で使うと、どうしてもそこ(複数ユーザ)へ考えが いっちゃうんだよね。
SQLServerが効果あるのは5ユーザぐらい以上じゃないか?
そうだ MDB用のラッパーを開発しよう
・接続ユーザーは3〜4人 ・更新系はテーブルに直接連結しない クライアントのワークテーブルに読み込んで編集し、INSERT,UPDATE,DELETEで更新 ・更新時はトランザクションを使う。 ファイル共有でできる限界はこれくらいかな?
ワーク使うと同じレコード更新したとき困らない?
>>324 ,325
どう考えてもマルチユーザーで共有しない方が実装がシンプルだろ。
面倒なことは全部RDBMSに任せられない時点で、
共有するのが間違ってるってこった。
接続ユーザーが2名を超えた時点で、
MSDEに移行するかSQL Serverに移行するのが正しい。
マルチユーザー=企業ユーズと考えればアクセスで作ったシステムを 使っているのは圧倒的に中小規模。 売上等の入力用のPCが1台と偉いさんが売上や在庫の状況を 見るための閲覧専用PCが数台という構成も少なくない。 この程度ならば使い方次第ではアクセスで十分。
>>327 だとしてもMSDEは最適化しなくても容易にファイル破損しないから。
2件で 8年以上 ACCESS2 --> ACCESS2000 と変えながら 4,5人で利用する システムを作りましたが、ACCESS のみ作成して、DBがだめになったことはありません。 2件とも1日500件ぐらいの伝票入力だけで;閲覧、出力がおおいですが; 難しいシステムだと壊れるんでしょうか? VBA での処理はいっぱい書いていますが;
うちはSQLにどっさりデータを置いて、Accessで閲覧だな。 入力はないな。
↑SQLserverね。しかもいまどきODBCwwwwwwwwww すまんこ
>>326 ADPはローカルにワークテーブルを作って、それをもとにクエリをつくるといった手法がやりにくくないか?
ADPとMDBが統合されたようなものが理想だと思うんだか・・・
#テーブルとか##テーブルは確かに使いにくいな
>>329 意外に強固なんですね。
てっきり壊れまくるもんだと思ってました。
うちは排他書くのがめんどうだったんで、
規模は小さいけどSQLServer使ってます。
>>330 似たようなもんだけど、うちは閲覧はexcelかIIS
出力はexcelで欲しがることが多いのでVBAばっかり書いてる
データ入力用にADP使っている。
入力のインターフェイス作成の楽さから抜けられなくて困っている。
よくこわれてたのはAccess2000以前 2000は安定してると思う それでもたまにこわれる
SQLServerだから排他書かなくていいってことにはならないと思いますが
いや、SQLServer使ってるのに排他を自前でゴリ書きはないだろw
馬鹿ですか?
レコードを読む時点で誰かが編集中かどうか知りたい場合には、 自前の排他が必要になるだろう。
Accessでも排他できるのに
Anusでも排泄できるのに
>>341 低レベルな質問で申し訳ないが、
編集中を判別するためにはどんな処理をするのが一般的でしょうか?
一時テーブルに編集中のレコードIDかなんかをぶち込んで
それをチェックすればいいのですかね?
[ロック制御用テーブルの作成] field1:TableName field2:RecordD field3:UserID [編集開始時] レコードを読込前に他者が追加したレコードがあるか無いかをチェックし、 あれば、警告する。なければ、自分のUserIDで追加する。 [編集終了時] 自分が追加したレコードを削除する。
>>345 警告してからどうする?
1.後から編集しようとしたPCも編集を許す場合
後から編集したPCが先に編集しようとしたPCより先に編集を終了した場合
先に編集(レコードを追加した方)は編集されたことが分からない
2.後から編集しようとしたPCは編集を許さない場合
先に編集を始めたPCの操作者は編集終了までPC入力以外のことができない。
例えば先に編集を始めた操作者が入力中に電話がきて電話に出たりすると
電話が終るまで他のPCから編集ができなくなる
あと、ロックをかけたPCがフリーズした時のためにロック制御テーブルのクリア処理を
作っておかないと面倒なことになる。
DB本体 Access 入出力画面 Excel(ADO DAO VBAで接続) レポート印刷 Access エクセル画面から操作 この方がユーザーに馴染んでもらえそうな気がしてきた。
>>346 他のPCが使用中であることを検知したならば、編集できなくすべきでしょう。
排他制御の目的は、データベースの一貫性を保持することだから。
349 :
344 :2008/01/24(木) 15:17:18 ID:???
なるほどね。参考になります。 排他制御つくったことがなかったもので・・・
誰が占有しているかさえ判明すれば、良いのかな。 占有時間が長くなった場合、そのユーザーに”直接”声を掛けて、 占有を解除するなり、そのユーザーのPCを”直接”操作する。 もともと小規模な使い方を想定しているるのだから、こうゆう対処で 十分かも。
その機能ならエクセルにもなかったっけ
スレの流れを参考にAccessのみでの小規模クライアント・サーバー型DBを作り始めました。 質問です、よろしくお願いします。 クライアント側からDB本体のテーブルを外部データへのリンクのをVBAで 設定しようと思ってます。 Access2000で、外部テーブルへのリンクを貼るVBAの書き方を教えてください。
質問 下記のようなSQL文でテーブルを作成したいのですが、フィールドのデフォルト値がNullになってしまいます。 特定の値をデファルト値にしたいのですが、記述方法がわかりません。 できる方法はあるのでしょうか? CREATE TABLE T11 (Field1 Long,Field2 Long,Field3 Long");"
356 :
NAME IS NULL :2008/01/26(土) 07:49:29 ID:g67kGDTI
教えてください ACCESS2003なんですが、 メインのフォームから単票形式のレポートをプレビューで表示しておいて メインからフォームのタイマーイベントでプレビュー上のコントロールに値を表示できないでしょうか? もちろん、プレビュー上のコントロールはTBとは関係ない物を置いてあります。 こんな感じで DoCmd.SelectObject "レポート1",acNormal,False Reports![レポート1]![テキスト1].setFocus Reports![レポート1]![テキスト1].Text = "1234" これを実行すると、現在のビューでは設定できません、と言われてしまいます レポートなんだから、当たり前だとは思うのですが そんなのレポートじゃなくてフォームでやれよって言われそうなんですが 上司がフォームじゃなくてレポートでって言うので・・・・・ あるいはレポートにタイマーがあればそれでもいいいのですが、ないみたいですね ACCESS2007ではレポートにもタイマーがあるらしいですが
それはムリ。 なぜにタイマー? レポートはPrintが済んじゃったら変更効かないよ。 Format時かPrint時にレポート側で設定するのがふつうだと思うけど。 すなおにフォームでやった方が幸せになれるような。 あと「TB」ってなんですか?サンダーバードしか思い浮かばないんだけど。
>>355 NOT NULL制約付けてもいいのかはっきりさせてくれ。
つか、JETのSQLでCREATE TABLE文にDEFAULT句設定できたか? NOT NULLとWITH COMPしかないだろ?
DAO 又は ADOX でつくらないと無理でしょう。
363 :
総務課ヒラ :2008/02/02(土) 13:56:55 ID:ixlIASXO
すいませんド素人なんですが、今度勉強しながら仕事で使うデータベースを 作らなければならなくなりました。 作ったファイルをサーバーに置いて、各部署で共有してデータの変更や照会を 行うのですが、将来、各部署のaccessがバラバラのタイミングでバージョンアップ した時に問題が起こりますか? また複数の部署が同時に同じテーブルの内容を変更した時、問題が起こりますか? ご指導願いますです。
問題が起こります。
365 :
総務課ヒラ :2008/02/02(土) 15:37:06 ID:ixlIASXO
>364 やっぱダメなんですか そうですか。他の方法を考えます ありがとうございました。
分割してバックエンド(データ部分)のみ共有する分には、大した問題は起きないでしょ。 自分も問題なかったし、事例はたくさんあるから。 フロントエンド(GUI)が2000だろうが、2002だろうが、2003だろうがOKのはず。 ただし2007は分からない。フロントエンドに2003以前と2007が混在するようなら、 経験者にきいてみないと(自分は経験ない)。 あと、VistaみたいなOSのバグで共有できないケースもあるけど、それはAccess側では どうしようもないね。 たぶんこの後、コンテクストを無視してSQL鯖がどうとかASPがこうとか言い出す輩が 出てくると思うが、Accessはド素人だけど鯖に滅法強いとかならそちらでどうぞ。
367 :
366 :2008/02/02(土) 15:47:51 ID:???
データ部分のみね
>>363 勉強しながらとのことなので、
そうそうすぐに全部署共有でガシガシデータ入力/変更ということにはならなそうだから、
>>366 の言うようにデータテーブルだけのmdbを共有して
運用したらいいんじゃないかな?
すごくたくさんの人間が同時にアクセスする、とかなってきたらまた考えたらいいんじゃないでしょうか?
その前にいったいどれだけの規模なのか聞かんと答えようがない話のような気がする。 どだいAccessでは無理って規模かもしれないし・・・・・
>>366 分割したバックエンドの方がデータに画像とか貼ってあって500MBくらいあるのですが
みんな開くときに遅い遅いと言うので困っています
372 :
総務課ヒラ :2008/02/02(土) 21:28:32 ID:ixlIASXO
みなさんありがとうございます。 そのデータ部分だけ共有というやりかたに兆戦してみます。 部署は10程しかないし、アクセスもそれほど頻繁ではない と思います。 浮かんだイメージは、テーブルだけのファイルをサーバーに 置き、そのテーブルにリンクを張った操作用ファイルを各PC に置くという感じですが、それで良いのでしょうか? とにかく勉強します。
とりあえず、勝手なバージョンアップの禁止を通達しておくんだね。 それでもやるやつはいるだろうけど、それで動かなくなったらそいつのせい。
>>370 画像はデータベースに保存せずJPGなどに外部ファイル化しておき、
表示するときだけ読みにいく方法なら遅くはならない。
>>375 それはどうやって、やるのですか。
設計図面を画像データを取り込んた800MBくらいになったDBがあります。
かねがね、なんとかしたいと思ってました。
>>376 Access2007なら画像も元データの形式で保存できるから、余り肥大しないし、もちろん画質劣化もなし
フィールドにはパス\ファイル名でテキスト形式で突っ込んでおいて アプリでそれを拾いに行くようにするとか?
パス変わったときに面倒ですよね なんでAccessとかExcelとかの貼り付けって 相対パスにしてくれないんだろう
381 :
総務課ヒラ :2008/02/03(日) 12:17:00 ID:LYNLjY3V
>373・374 ども。 できそうな気がしてきて、今少しほっとしてます。 明日から時間を見つけて作成にとりかかります。
>>377 Access2007を使うことにしても、既にAccess2000MDBの中に
OLE オブジェクト型で取り込んである分を、新MDB移行させる必要がありますよね。
1.Access2000MDB OLE オブジェクト型のエクスポート
↓
2.Access2007MDB Attachment型として取り込み
それが379さんの「すでに、MDB化されているものは、VBAで外部ファイルに書き出す」
なのかな?
「OLE オブジェクト型 エクスポート」で調べてみましたが、ちょっと難しそうです。
>>379 ソース読んでみましたが、自分の能力ではわからないことが多いです。
少しずつ勉強してみます。
皆さん、ありがとうございました。
383 :
377 :2008/02/03(日) 14:46:28 ID:???
>>382 オブジェクト型にしちゃったのは、ビットマップになってるから、JPGやPDFに圧縮しなおすと劣化するど
ビットマップのまま、出して、そのまま2007の添付ファイル型で入れただけで、LZH圧縮かかるから、ZIPなみにサイズ減る
384 :
377 :2008/02/03(日) 14:49:00 ID:???
ああ、 × LZH圧縮 ○ LZ圧縮
おいおい、2007のAttachment型って、画像ファイルじゃなくOLEオブジェクトを そのまま認識してくれるのかよ? 本当なら革命的に賢いな。
386 :
377 :2008/02/03(日) 15:34:07 ID:???
ビットマップは画像ファイル
添付ファイル型は複数値型と同じで扱いが面倒だけど .xlsと.docと.pdfを放り込んで使ってるよ。
388 :
NAME IS NULL :2008/02/03(日) 22:30:10 ID:F3bGJrY2
型番 日付 A 2008/02/03 B 2008/02/04 C 2008/02/05 D 2008/02/06 E 2008/02/07 F 2008/02/08 エクセルで上記のような表があるとします。 クエリに関数を入れて本日〜4日後の2008/02/06までを”全て” 抜きとって表示したいのですが関数わかる方おられませんか。 2008/02/07と2008/02/08は不要としたいのです。 自動的に毎日4日間を抜き取ることはできますか?
>>377 「ビットマップは画像ファイル」だけど、OLEオブジェクトは画像ファイルじゃねーよw
>383 の手順は、本当に実際にやってできたことなのか? それとも空想上の話か?
とりあえず、そこはっきりさせてほしい。
いままで、画像ファイルをそのまま突っ込んでいたならまだしも、いったんOLE
オブジェクトに変換されたものをそのまま書き出して画像として認識できるなんて
話は一度も聞いたことがない。 >379 のリンク先の方法も、画像ファイルをそのまま
書き込んだ場合に限られる話で、OLEオブジェクトに変換されたものは対象外。
誰か2000とかで画像ファイルをOLEオブジェクトに変換して格納してあるのを
そのまま書き出して、2007で実際に取り込んだ話をしてくれ。
それで出来るっていうならたしかに朗報。2007万歳。
あああ、OLEで埋め込んだ画像データはMDB内部でビットマップで保存されてるから、、 ビットマップで取り出して、そのまま、ビットマップで添付すれば良いんじゃね
図面データを管理するデータベースを構築しようと思っています。 ACCESSに図面データへのパスを格納した場合、 パスに変更があったときは、sqlか何かで簡単にデータ変更を できるものでしょうか?
>>392 出来るだろうけど、簡単かそうでないかは
392のファイルの置き方しだい。
395 :
総務課ヒラ :2008/02/05(火) 20:15:25 ID:nk3nkSEO
おじゃまします。また質問なんですが、VBAとか全く知らなくても 対処する方法があったら教えていただきたいのです。 @アクションクエリーを多用したファイルを共有して使うと、その実行 確認メーセージについて「なんだこりは?」と頻繁に問われます。 そのたび、「ツールのオプションの編集/検索」で確認メッセージが出 ないように設定してもらうのですが、ファイル自体に、開くと強制的 に「確認メーッセージ不要になる」という設定を組み込めないでしょ うか? Aフォームでメニュー画面を作成していますが、不要なフォームは最小 化されて邪魔にならないようにしていても、タスクバーに表示された オブジェクト名の所を誤ってクリックしてしまいメニュー画面の順番 をぐちゃぐちゃにする使用者がいます。これも「ツールのオプション」 でタスクバーに表示させないようにできるのですが、質問@と同様に ファイルに強制的な設定力を組み込めないでしょうか? アクティブフォームを規制する方法でも良いです。 よろしくお願いします。 >388 dateadd 関数(だったっけ)と不等号でダメ? 今、ネットカフェだからためせないんだけど。
VBAを知って対処しろ
MDBファイルにADO経由でアクセスして SQLを発行しているのですが 書き込みのときはロックした方が良いとか トランザクション作るべきだとかいわれますよね ACCESSのSQLは文法が違うみたいなのですが なんとかならんもんでしょうか MSSQLとか他のSQLサーバーに城とかいうのはなしで ご存知のかた教えていただけると幸いです
MSSQLとか他のSQLサーバーに城
>>395 @VBA を使った方法になるけど
1. 警告を止めるモジュールを用意する
Function WarningOff()
DoCmd.SetWarnings False
End Function
2. 自動実行マクロから 1. を呼び出す
Autoexec という名前のマクロを作成し
プロシジャーの実行−プロシジャー名に WarningOff() を設定する
SetWarnings の使用には注意が必要なのでヘルプを良く読んで
A操作可能なフォームを1つに限定する事はできるけど、それでいいのかな?
フォームプロパティ−その他 作業ウィンドウ固定
400 :
総務課ヒラ :2008/02/06(水) 19:55:42 ID:MFZ8If4M
>399 レスありがとうございます。 総務課員でも、やっぱ初級レベルのVBAの知識は必要だと思い 始めています。勉強するつもりですが、今回は何もわからないま まで書き込まれた方法を使わせてもらいます。 初めての体験、うまくできるか心配。
401 :
NAME IS NULL :2008/02/06(水) 22:46:56 ID:zjHg3ehW
>>400 仮にも総務課なんてものがある規模の会社で、部署跨いでの運用前提なら
外注も考えた方がいいんじゃないかと老婆心。
社内に相応の作り手(とか管理者)がいるとか、使い手のレベルが確保できるなら別だけどね。
403 :
NAME IS NULL :2008/02/07(木) 12:05:45 ID:EaJqlF2t
私はこれのせいで、リストラされました、勉強しようとしても自学では難しかった、学校に行こうとしたが試験に落ちた、後はどうにもならなかった。後はどうにもならなかった。後はどうにもならなかった
404 :
NAME IS NULL :2008/02/07(木) 17:35:48 ID:Xa53OaUG
すいません気が狂うほど初心者質問ぽくてあれなんですが・・・ フォームのテキスト群に数値の[1]か[0]を表示させて、別のテキスト(レコードあり)にその加算をだすように そのコントロールソースに =[テキスト○○+[テキスト○○]+[テキス・・・・などと書き込んでフォームを 開けてみると、加算されず「00110100011000・・・・」などとなってしまいました。 なぜなのかわかりません、どうかお教えください。
>>404 まず、基本的にテキストつまり文字列は計算できません。
これはAccessに限らずコンピュータの初歩の初歩です。
"国道1号線"と"国道2号線"を足したら"国道3号線"になりますか?ならないでしょう?
Accessでは"国道1号線"+"国道2号線"は"国道1号線国道2号線"となりますが、
これはAccessではそう決まっているというだけのことです。
この場合の解決策はフォームのテキスト群をすべて数値に変えるか?
それともテキストを数値に直してから計算するようにするかです。
初心者ということですが、数値とテキストの使い分けができないとAccessはとても使いこなせませんよ。
というようなことでいいのか?
406 :
NAME IS NULL :2008/02/07(木) 21:26:09 ID:Xa53OaUG
>>405 早速のお返事ありがとうございます
文字列の問題・・・・やはりそうですよね、そうではないかとおもっていました
初心者といえ、ここまで顧客管理と役所に申請するソフトを作り上げて
最後の部分なのに、あまりといえばあまりな基本ですね・・・恥ずかしい。
一応、テキスト群のほうの書式は「数値」というふうに設定したのですが
根本的にわかっていないっぽいですね、わたし。
407 :
404 :2008/02/07(木) 22:06:50 ID:Xa53OaUG
もしかして・・・・ テキスト群はフィールドのないフォーム上だけのテキストボックスだから 「数値」としての認識はできないのでしょうか。
a = CInt(form![hoge].caption)
409 :
404 :2008/02/07(木) 23:17:04 ID:Xa53OaUG
>>408 CInt関数ですね
って調べてみたけど、まだ私のスキルではうまく理解して使いこなせなさそう
410 :
NAME IS NULL :2008/02/08(金) 01:12:28 ID:XfNQDRfL
アクセス2003を使っていて悩んでいます。 フォームにて(1)大分類(2)小分類を入力する際に、(1)にてA〜Dを選択できるリストを表示し、(2)にて(1)で選んだ分類に属する小分類a1〜a8、b1〜b8・・・といったリストから入力するフォームを作りたいのですが、まったくわかりません。 このような入力方法をするにはどうしたらよいのでしょうか。 せめてこのようなリストは何というのか教えてください。
>>410 (1)で選択した値で(2)のリストを抽出してやればいいんじゃないか?
(2)のリストボックスのソースをクエリにして、その抽出条件を(1)の選択値にしてやる。って感じ。
ってことでいいのかな?
Access2007を買いたくない。 しかし、下位との互換性が薄いから、将来を見越して買わざるを得ない。 なぜ、Microsoftのご都合バージョンアップに付き合わされなければならないのか。 Access2003で十分。XPで十分。 リボンとか添付ファイル型は必要ない。 買う決心をつけるために、どなたか、Access2007の素晴らしさを説明して欲しい。
414 :
410 :2008/02/08(金) 23:17:29 ID:XfNQDRfL
>>411 サンクスです。
オレにとって難易度が高そうですが、やってみます。
415 :
404 :2008/02/09(土) 00:57:17 ID:SKQjl18B
一応普通に加算できましたのでお礼とご報告まで。 Val関数でできたのですが、不思議なのはレコードと関連していない1〜31のテキスト群の たった一つだけ関数書き込んだだけでできてしまいました。 釈然としませんが、できているので、いじらないことにしました。 ただ一難去ってなんとやらと申しますか・・・・例の1〜31の結果を「来院数」(レコードあり)に反映させ るわけですが、テキストボックスには加算された日数が入っているのに、レコードにはまったく反映 されません。悩む・・・・。
レコードと結びついたフィールドを入力しなかった場合には、書き込まれないはずだが。 すべてのフィールドをレコードと結びつけるようにすれば、あれこれ悩まなくてすむと思う。
1 + 1 + 1 = 3 1 & 1 & 1 = "111" 1 + "A" + 1 = "1" & "A" & "1" = "1A1" このあたりは基本だから憶えておこうぜ。
418 :
NAME IS NULL :2008/02/09(土) 11:05:05 ID:SKQjl18B
みなさん御世話掛けます(汗 結局のところ私みたいな初学者は >すべてのフィールドをレコードと結びつけるようにすれば、あれこれ悩まなくてすむと思う なんですかね、なにか必要のないレコードが増えると心理的に無駄使いしてるような気になってしまって。 考えてみたら、別にリアルに物が増えるわけでもなし、データ量としても微々たるものなんだから 最初からそうすべきでした。
>>418 どうも発想がデータベース的ではないような気がしますね。
次はあくまでも個人的発想方法だということで読んでください。
1.フォームで入力用テーブルに入力する。
2.SQLで入力用テーブルから出力用テーブルを作る。
3.レポートで出力用テーブルを印刷する。
もちろん例外もあるのだけど、基本的にはこの発想でやると単純化できます。
Accessは自由度が高いだけに自分なりのパターンをもたないと収拾がつかなくなります。
ここで1と3は問題ないだろうけど、2のSQLで処理するというのに引っかかる人がいると思う。
もちろん、1レコードづつループしながらVBAで処理していく方法もあるけれど、
Accessのレコード移動は遅いようで結局時間がかかります。
結局SQL(クエリー)を使うほうが一般的に早いようです。それも桁違いにです。
かなりのデータ数でも「もう終わったの?」というスピードで処理します。
一見複雑でSQLでは処理できなさそうな処理でも途中でワークテーブルを使ってやればできます。
余計なワークテーブルを使うと遅くなりそうだけど、SQLが高速なせいでそうはなりません。
ワークテーブルを作るのがいやで、複雑なSQL文を書いてもかえって遅くなるだけです。
とまあ、アドバイスになるか反面教師になるかは知らないが、こんな考え方もあるということで・・・
データの数がエクセルが扱える以上にならないかぎり アクセスよりエクセルのほうが効率的じゃないのかな? アクセス本腰いれたいんだけど そんな思いが頭を離れない こんなおれに一言
>>420 エクセルが扱える数ってどれくらいを考えているの?
現実に使えるのは数千件がいいところだよ。
データが多くなれば重くて実用的にはとても使えない。
数万件の処理を考えているのならエクセルは問題外。
一言じゃないけどこれでいいか?
>>421 まあその数千件がただしいとして(2003なら65536行×256列てことでいいのか)
それ以下ならアクセスを使っても非効率だってことでオッケなの?
アクセスとエクセルは製品コンセプトがまったく違うだろ。 エクセルでデータベースらしいものができるかどうかしらんが、 ひとに使ってもらえるようなものは到底むりだ。
古いPCだからCPUが遅いのもアルが、 エクセルで3千件で、その遅さに泣いた。 データは普通の住所録 アクセスに移行したら、作業時間が1/4以下になった。 参考に
>>423 メーカー側が作ったもんじゃないコンセプトなんて
それよりかは
使う側がある目的を達するために
どれだけ効率的に生産的になれる道具かが重要って発想で
全然わかってないんで見当はずれかもだが
テーブルにためこんだデータを
後でいかようにも出力できるってのがメリットなのか
馬鹿扱いされるんだろうけど
直感的じゃなくねアクセス
>>425 >使う側がある目的を達するために
>どれだけ効率的に生産的になれる道具かが重要って発想で
これ重要。
数百件のデータを程度を決まった使い方するなら、紙に印刷したものを
ファイリングした方が効率的だと思う。
エクセルも千〜二千件程度のデータなら、いいソフトだと思うよ。
マクロで自動化も出きるし、簡単なUIも作れるし。
なにしろ、開いただけで何が同入っているか分かる。直感的ダネ。
アクセスに移行しようと思ったのは
・二千件超えたあたりで顕著に遅くなった。
・他人が使う可能性が出てきた。
CSVに吐いてwordで取り込んで差し込み印刷に使っていたんだが
9xのせいか分からんが、エクセルとワードの連携がうまくいかなかった。
・ボタン一発で楽をしたくなった。
データを色々加工して見せたりする必要が無い、帳票が必要無い、
自分しか使わない、もしくは使う人がある程度エクセルを分かってる
んならエクセルでもいいんじゃね。
エクセルをシラン人が触ると、エクセルの表示データの幅を自分で
動かしておいて「文字が全部表示されない!」って怒る事があるからな。
そこまで知らない奴に触らせるならシート保護くらいしとけw
>>427 自分しか触らない前提で、フォルダー深く掘って
隠しといたんだけど。
そういう奴に限って、掘り出すんだよ…orz
>>424 >>426 参考になりヤス
>ボタン一発で楽をしたくなった。
書籍を片っ端から読んでますが
その楽をするまでがイバラの道なような
>データを色々加工して見せたりする必要が無い、帳票が必要無い、
>自分しか使わない、もしくは使う人がある程度エクセルを分かってる
>んならエクセルでもいいんじゃね。
ただ知り合いの作った帳票とかを見るにあるいは書籍をみるに
レポートでデザインのいじれる範囲が目標と乖離してそうな気がするんです
作りこんでもエクセルのように好き勝手に思ったように(もちろん手書きに比べ不満の部分もあるのかもしれません)
つくれないような
当方の職場はエクセルの一般的な使い方はみんな出来るようです
>>429 帳票は連票形式のリストしかつくって無いから
どの程度の事が出来るのか、良く知らないけど
データの配置は自由だし、単票で作れば何でも出来そうな
気がするけど。
複雑な帳票をたくさんの種類つくらなきゃならんと、ちょっと面倒だね。
帳票のデザインとボタン一発とSQLは別のスキルだねぇ。
帳票やフォームのデザインをする時は頭を切り替えるw
私だったら、アクセスに移行するかどうかは
データ量と帳票レイアウトの変更頻度で判断するな。
しょっちゅう、レイアウトが変わったり、増えたりするなら
なれてるエクセルで帳票作成して、データ件数が増えたら
最悪はバックエンドにアクセス使うってのアリかも。
まぁこのへんは色々意見がありそうだが。
>>412 OOoのBaseでAccess2007のmdb扱えるようになったから
もう2007は要らないと決心した
2007の.accdb自体は.mdbのJETデータベースエンジンに毛が生えた程度のもんだから それは従来のBASEが.mdbを扱えるからACCESSいらないって言ってるのと同じだよ
結論的にいらないことには変わりないんだからいいんでね?
>>431 まあ確かにそれもごもっともだと思う。
>>418 に説いたというより初学者全般に対する指標のつもりだったのだけど・・・
そんなえらそうに言えた義理じゃないんだけど・・・
OOoのBaseって実用的に使える程度になったのか? 以前触った時には実験中?ってできだったけど?
>>412 Accessはオブジェクトが極限まで増えるとメモリ不足に陥りいろいろ障害がでてくる。
VersionUpは機能が増え一見いいことのように思えるがその代償として
ユーザが使えるメモリ領域が減ってしまう。
結局、32bitというメモリ空間が変わらない限り安易なVersionUpは
ユーザにとってはけっして好ましいこととはいえないのである。
439 :
404 :2008/02/11(月) 11:17:26 ID:EwWRkqJM
最後にひとつだけ質問よろしいでしょうか? フィールドのない31個のテキストボックスにVal関数を使い、数値化には成功 その31の数値の積を【来院数】に出すわけですが、レコードソースに式を書き込むと レコードに残らないということだったので、「クリック時〜」で設定するとこれも成功。 しかし実際には諸事情で「クリック時〜」では実用的ではありませんで、「更新後〜」にするべき でありましたので、その欄に書き換えました、問題はここです。 何度やっても反応しません、式が間違っているわけでもなさそうです、なぜなんでしょう・・・・。 毎度くだらない質問で恐縮ですが、最後にご教授ください。
更新後ってのは、レコードが書き込まれた後ってことだから 書き込まれない限り実行されない。 別の方法を考えるべきだろう。
>>438 > 結局、32bitというメモリ空間が変わらない限り安易なVersionUpは
おいおい、32bitのメモリ空間って言ったら4GBになるんだぜ。
Access2007がどれくらいのメモリが必要なのか知らないが、
4GB使い切るほど肥大化しているわけ無いだろ?
442 :
404 :2008/02/11(月) 13:26:57 ID:EwWRkqJM
>>440 ありがとうございます
なるほど「更新後」の意味を履き違えておりました、いまの今まで。
そうなると「更新前」は・・・・いや、あれもだめだった。
いちばんいい方法はなんなのだろうか考えてみます。
どうでもいいが来院数の院が病院の院だったら ちょっと怖くて行けないな・・・
桐にしとけよ 良いとこ取りだぞ
またお前か。
>>439 =404
31日分の合計(和)を出す電卓を作りたいってことだろ?
入力途中の表示に違和感を覚えるかもしれないが
「変更時」に再計算するようにしておいたらどうよ?
>>443 いや、その病院では一番Accessが得意な
若い看護婦さんかも知れないぞ
ここでお近付きになっておいて
その病院へ逝くのも悪くない
449 :
NAME IS NULL :2008/02/12(火) 00:57:22 ID:aoyNE+PV
教えてください。 とある機器のレンタルをしている事業所で勤務しております。 そこで、レンタル代金請求の仕組みを作ることになったのですが、 請求パターンがややこしくACCESSでの実現手順を教えてください。 商品代金の他に、送料と消毒代金も請求しており、 又、通常のレンタルとお試しレンタルもあり、 お試しで借りて、通常レンタルに切替る事があります。 お試しで借りて、気に入らずに返却になる事もあります。 請求ですが、 納品送料 引上送料 消毒 通常 開始月 終了月 終了月 お試し 終了月に往復 終了月 情報には契約番号(切替の場合、契約番号は同じ番号です)、 レンタル開始日、終了日、があります。 例:お試し、通常レンタルともに終了 →消毒費とる お試し終了し通常レンタル切替てレンタル中 →消毒費とらない(レンタル中なので) 消毒費とる場合は、「1」 とらない場合、「0」になるような 式を教えてください。 同じく、送料についても、とる場合「1」、とらない場合「0」 になるような式を教えてください。
商品マスタに消毒代とか送料とか登録しとけ
451 :
NAME IS NULL :2008/02/12(火) 01:57:07 ID:aoyNE+PV
>>450 送料、消毒費登録ありますよ。
で、発生する条件を式にできないものかと、
あと補足ですが、
同じ契約番号の場合の見分け方ですが、「行番号」と「レンタル区分」で
通常レンタルかお試しか見分けます。
宜しくお願いします
>>449 VBAで関数を記述しないと無理だな。
数式を一行で表わすっていうのはむずかしいんだよ。
VBAなら、どんなに複雑な判定文でも実現可能なはず。
>>449 まず、自分の飯のタネの仕事を2ちゃんで他人に只でやってもらおうってむしが良すぎない?
それにこれそんなにややこしい請求パターン?
「通常レンタル」、「お試しレンタル」、「お試しから通常切り替え」の3パターンしか無いように思うけど?
プログラマーならそれほど苦労せずにできることだと思うけど・・・
もしかしてエクセルの延長線でできると思ってない?、
レンタル代金請求の仕組みって請求書発行までするってことでしょう?
プロでも結構苦労することを簡単に出来ると思っている?
繰越処理が割と難しいし、消費税の問題もある。
相手のあることだから意外と例外処理も発生するし、
後から修正することも必要だったりする。
ここで質問に答えてもそのシステム完成しないと思うけどなあ?
(質問がよく理解できてない気がするオレだけど) 請求パターンをテーブルにすりゃいいんじゃないの? パターンごとに1とか0を最初からいれといてクエリ でつないだら?
俺がやったことあるのは不動産の賃貸契約書管理とか リース資産のリース契約書管理とかだけど、このケースでは・・・ ・契約の開始/終了は年月日ではなく年月で管理(シンプルでいいね) ・契約開始年月はデータ入力の時点で確定。 ・契約終了年月は契約期間中に変化する(先延ばし)可能性あり。 ・契約区分に通常/試用があり、契約期間中に変化する(試用→通常)可能性あり。 ・請求金額1(納品送料)の請求時期は契約区分が通常なら契約開始年月、試用なら契約終了年月。 ・請求金額2(引上送料)の請求時期は必ず契約終了年月。 ・請求金額3(消毒費用)の請求時期は必ず契約終了年月。 ・どの請求金額も請求するのは契約期間中に必ず1回だけ。 このあたりを踏まえた上で設計するのがポイントになりそうだね。 かなり作りこみしちゃったからもうそんな変更できないよと言われても困るけどw
>>429 ACCESSにデータ抱え込んでおいて、
EXCELからADOでも使って呼び出したらいい。
これなら好き勝手に出力形式作れる。
>>441 >32bitのメモリ空間って言ったら4GB
理論的には、使い切れないほどの巨大なメモリ空間のはずなんだが、
実際にオブジェクトを増やしていくとすぐに限界にきてしまうのなぜだろう。
>>457 そりゃあリソースの話じゃないのか?
いくらメモリがあってもリソースが足りなくなればそれ以上は出来ないよ。
もしかしたら、いまだにWin98系列を使ってない?
それはない。
Windowsのリソース管理テーブルサイズと Accessのリソース管理テーブルサイズはべつもんでしょ。 ヘルプとかにリミット書いてなかったっけ?
>>460 そうなのか?それは知らんかった。お恥ずかしい。
それはともかく、オブジェクトってフォームとかレポートのことだと思うのだけど、
Accessでオブジェクトを極限まで増やすっていったいどれくらいのこと言ってんだろう?
そんなに増やしたら管理するのが大変だと思うし、それってAccessの守備範囲なんだろうか?
大人数での開発に適してないAccessでそんな開発するほうが無理と違うのかなあ?
TableCount=425 QueryCount=263 FormCount=144 ModuleCount=144 MacroCount=0 ReportCount=0 こんな感じだが、特にFormはMemoryを多く消費する。 オブジェクトの管理はうまく工夫すれば、どんなに数が増えようが負担は変わらない。
テーブル一覧で毎日死ぬほどスクロールさせてんだろうな。 まあ本人が負担と思ってないんだから別にいいけどw
テーブルが多くなるとスクロールで探すのに苦労するってのは初心者だな。 アクセスのレコードソースの入力欄はインクリメンタルサーチ機能があるんだから それを最大限に活用できるような命名規則をつくるのが肝心なんだよ。
>インクリメンタルサーチ機能 テーブル名に漢字を使ってるヤシにはピンとこないんだよね。
>アクセスのレコードソースの入力欄 これないんだけど・・・ アホにもわかるように詳しく
設計が最適化されてたらフォームにしろレポートにしろ 複数テーブルいくつも連結するだろうに。 インクリメンタルサーチが役立つって、おまえはいつも 単体テーブル一個しか使わないのかよw
>>462 > TableCount=425
425もテーブルがあるのか?
いったいどういうシステムなんだ?月ごとにテーブルを切り替えているとか?
> QueryCount=263
> FormCount=144
> ModuleCount=144
オブジェクトの話だよね?モジュールが144っていったいどんな分け方したらそんなことに?
プロシージャをモジュールごとに分ける意味が無いような気がするが?
それともフォームにはプロシージャーを書かないようにしているとか?
> MacroCount=0
> ReportCount=0
ほんでもってレポートが0?印刷しないのか?
それとも、他の方法でも使っているのか?
随分と謎のシステムだなあ?
>>466 俺もなんのことかわからなかったのだけど、
もしかしたら、コード ウィンドウのことかな?
用語の使い方といい、オブジェクトの数といい、
随分独創的なシステムの構築をしているらしいなあ?
まあ、それもいいけど・・・・・・
>>466 1.フォームオブジェクトを選択
2.右クリックでデザインビューを選択
3.フォームのプロパティを開く
4.すべてのタブを選択
5.レコードソース(1番上)
>>471 それを省略して言うと「アクセスのレコードソースの入力欄」になるのか?独創的だなあ?
なんだか良くわからないが、とりあえずいいや。独創的過ぎて参考にならなさそうだし。
だいたいテーブルの管理は印刷でもしておけば問題ないし、特にどうってことはない。
とりあえず、メモリを食うフォームでも140まではいけるんだ。
俺はまだ60もいってないから、当分は大丈夫。これは参考になった。サンキュー!
フォームと同様にレポートもメモリ使うみたいだから、それもカウントしなきゃダメだよ。
>>473 ああ、それもそうだなあ。するってえとそろそろ限界が近いかもしれない。
基本的に1ファイルで管理するAccessではやはり大規模開発(ってほどでもないけど)は無理かも?
随分前から代替手段を検討しているけれど、とりあえず問題がないのでなかなか踏ん切りがつかない。
一応第一候補はJavaなんだけどなあ?
Mac、Linux、Windowsとプラットフォームを問わないJAVAでの開発がこれからの主流。 そんなふうに考えていた時期がぼくにもありました・・・
Accessの代替がJavaとかズレてねえ?
>>469 アクセスのレポートを使わないのは、他の印刷ツールを使っているからだ。
そのほうがよりニーズに対応したものが作れるということもあるが、
MDBからできるだけ外に出したいという理由がある。(メモり対策、分散作業のため)
その代わり、ワークファイルやモジュールが増大するのは仕方ないと思っている。
>>477 アクセスのレポートより良い印刷ツールなんてそうそう無いと思うのだが?
いったいなに使っているんだろう?
VB
桐
おいおい、Accessより大規模なシステムの開発の話だぞ。 VBや桐じゃ同程度の開発がいいところだと思うけどなあ? ってまあここで聞くような話じゃないけどな。
データベースエンジンの話が抜けてるのがズレてるっぽい
エンジンはJetで
>>484 なんでAccessの一番の弱点だと思われるJetエンジンをAccessの代替で使わなければいけないんだ。
MySQLあたりを使うのが普通だろう?
俺の会社オラクル使ってるけど、レポートと入力は桐でやってる。 レポートは桐が群を抜いてるし、入力も桐の表形式が速くて誤入力がない。 他はオラクル。
オラクルと桐しか使ってないやつがなんでこのスレ来てんの?w
2ちゃんもDB関係は全部目を通してる。 一応、DBが本職なんで。
>>486 桐とオラクル?
初めて聞く組み合わせだ。
確かにワープロを作っていた会社だけあって日本語のレポートは郡を抜いている。
ほとんどどんな印刷物でもできる。
でも、桐の外部データーベース接続は遅いって聞いたのだけど?
それとも、入力と印刷のたびにファイル変換しているのだろうか?
オラクル自体はなんで動かしているの?まさか桐の一括処理?
もし良ければ参考にしたいので教えて下され。
入力と印刷のたびにファイル変換してる。 入力は一部だけど、キーパンチャーがバコバコボコボコ入力する部分だけ。 ほんと、入力も桐が効率良いわ。
>>491 Accessのフォームも作りこんで複写とか出来るようにすればそれなりに効率は良くなるんだが、
あまり複雑になると遅くなったりするからなあ?
確かに桐を使うってのはひとつの手だとは思うし、
ファイル変換してというのはありだとは思うけど、あまりスマートなやり方ではないなあ?
マネしてやってみようという気には残念ながらならないなあ?
お前はJavaでやればいいよ
・オラクル→桐 ・桐→オラクル 通常の運用でこの処理を何度も何度も何度も何度も繰り返してるってことだな。 人間のやることだからバコバコ打った後に桐→オラクルするつもりがオラクル→桐しちゃったとか 年に1回くらい普通にありそうだが・・・
Accessの帳票は印刷にはいいんだけど、 データでくれって言われた時にちょっと困る。 前はPDFにして送ったけど。
印刷物を画像データで要求されて困るのはAccessのレポートに限ったことじゃないと思うが
>>495 普通はプログラム(一括処理?)組んで自動処理するだろう?
オラクルまで導入してそんなところを手作業でしてたらいい笑いものだ。
>>497 たぶんエクセルと比較して言っているんだろう?
印刷イメージをデータで送るってこと多いのか?レポートのレコードソースをCSVでというのはよくあるが。
>>494 > 複写ってどうやんの?
元のデータを変数に格納してその変数を使ってレコードを追加すればいい。
そんなに難しいプログラムではないよ。
使いやすく作るのは難しいかもしれないけれど。
>>497 エクスポートで.htmlやら.xlsやら選べるの知ってたから安請け合いしたら、
実際やってみてウボァということがあった。
まあ俺が間抜けなんだけど。
>>500 実際のレイアウトとか見たいんじゃないかな。
Accessだとレポート使うけど、
こないだHSQL+JavaでやったときはHTML出力にした。
Accessのレポートは印刷設定が時々リセットされるし。
そのたびに呼ばれるのはかなわん。
社内で主にデータ閲覧用のデータベースとしてアクセス(ADP)使っているんだけど、 そろそろレポート出力の方もちゃんと勉強しなくちゃと思ってます。 レポートの作り方で参考になるようなサイトってあまりみかけないんだけど、 おすすめあったら教えてプリーズ。
そういや、レポートってあんまりなにかを見て覚えたという記憶がない。 トライ&ゴーでいろいろやって、なんとなくわかった。 基本的にはフォームと良く似ているけれど、 ユーザーインタフェースを意識しなくていいので楽な気がする。 気をつけなくてはいけないのはヘッダーとフッターの使い方。 特にグループヘッダーフッターの使い方で改ページするところが変わってくる。 いろいろやってみればだんだんわかってくるとは思うけど最初は戸惑う。 それと、あまり複雑なレポートを作ると重く遅くなるので、 印刷用のデータをSQLで作ってレポートはシンプルになるように気をつけたほうがいいと思う。
505 :
NAME IS NULL :2008/02/19(火) 19:25:55 ID:zoj3pqPw
ACCESSでこのようなデータを入力後下記の形にVBAでしたいのですが どうすればいいですか? 納品先 |商品名 |規格 |数量 | A |やさい |2L |50 | A |やさい |3L |30 | B |衣料品 |L | 5 | 変換したい形 納品先 |商品名 |内容1 |内容2 |内容3 | A |やさい |2L |3L | | A |やさい |50 |30 | | B |衣料品 |L | | | B |衣料品 |5 | | |
あほなことやってると思うけど あえてやり方挙げるなら UNIONかな
>>505 テーブルでは、たとえ桐つかっても無理だな
レポートでやれ
レポート作るとき フィールドリストからドラッグ アンド ドロップして ラベルとテキストのコントロールが連結した状態で出来上がるが その一方だけをセクションを跨いで移動したいとき 例えばラベルだけをフッターセクション上に置き テキストは詳細セクション上に置くには どのようにすればいいのでしょう? ドラッグしてもセクションをまたげなくないですか
またげないお
>>508 それほど悩むことかな?
ラベルをカット&ペーストで持っていけばいいんじゃない?
ラベルだけ作り直したってたいした手間ではないし。
Access2007のはラベルのC&Pでも持っていけなかったorz
>>510 慣れてる方はそう思われるんでしょうけど
出来うるなら簡素なやり方でやりたい
フィールドが沢山あるもので
オートレポートでもフィールドが多すぎて出来ないと
表示されますし
513 :
505 :2008/02/19(火) 21:44:35 ID:zoj3pqPw
514 :
505 :2008/02/19(火) 21:59:36 ID:zoj3pqPw
まちがえました 再度書き込みしなおします ACCESSでこのようなデータを入力後下記の形にVBAでしたいのですが どうすればいいですか? 納品先 |商品名 |規格 |数量 | A |やさい |2L |50 | A |やさい |3L |30 | B |衣料品 |L | 5 | 変換したい形 納品先 |商品名 |規格1 |数量1 |規格2 |数量2 |規格3 |数量3 | A |やさい |2L |50 |3L |30 | | | B |衣料品 |L |5 | | | | |
>>512 オートレポートってアメリカならいざしらず罫線を使った複雑な帳票を要求される日本では使い物にならない。
ラベルとテキストの連結は便利なようで実際はじゃまにしかならない。
レポートって最初からレイアウトが一発で決まるということはまず無くて、
結局修正修正の繰り返しになることがほとんど。
経験上、簡素なやり方だと後で手直しする手間がかえってかかる。
複雑な帳票になるほど一つ一つコントロールを配置していくほうが結局近道になる。
複雑な帳票といっても良く見ると似たようなコントロールが多いので、
一つ作ってそれをコピーしてから修正すれば意外と手間はかからない。
まあ、意にそぐわない答えだと思うけど正直そう思う。
似たようなものがいっぱいあるとき 全部のプロパティいじるの面倒で仕方ないんですが コントロールの配列みたいなことは出来るんですか?
>>516 > 似たようなものがいっぱいあるとき
> 全部のプロパティいじるの面倒で仕方ないんですが
いったいいくつあると言うのかな?
似たようなものならいじらなければならないプロパティはそんなにないと思うのだけどね。
例えば31個のフィールドがあるならば最初にData01を作ってコピーした先をData02とすれば1を2に変えるだけ。
最初からそういうことを念頭においてテーブル設計しておけば面倒なことはないと思う。
それからコピーしてペーストしたコントロールを移動してからさらにペーストすれば、
移動した方向にいくつでも並べられる。これを使うと配置も便利。
工夫次第でこれくらいのコントロールは簡単にできるよ。
そのくらいことで面倒なんて言っていたらVBAなんてとてもできないし、
VBAを使わないAccessなどクリープの入ってない・・・・・・(w
31個よりはるかに多いというのならそれは根本的に考え直したほうがいいと思う。
31個の例でもプレビューするのに何分もかかりました。
それよりはるかに多いのなら使い物にならないだろうし、
ハングして動かなくなる可能性も高い。
> コントロールの配列みたいなことは出来るんですか?
コントロールの配列ってまったくイメージがわかないんだが、出来ないだろうと思うよ。
>>515 いや、参考になりやす
アメリカ文化の日本文化の罫線
バカヤローです。
ただofficeの浸透力、シェアにあきらめて
やるしかないですね
>>518 ここで出てきそうな言葉が「桐にしとけ」なんですが、
確かにこういう分野は桐が得意でいいんですが、
桐には桐の問題点があるんでね。
Accessでも工夫次第で大抵のことはできるんでがんばってください。
>>517 コントロール配列はVBでは基本テクニックっすよ。
VB6 では、実行時に配列を振る必要はないのですが、デザイナで 1 つ、コピー元になるコントロールを配置しておく必要があります。 また、そのコピー元の Index プロパティを画面デザイナから 0 に設定しておいてください。(実行時の設定はできません) 新しいコントロールを追加するというよりは、コントロールを複製するという動きになります。 そのコピー元は Index プロパティが 0 のコントロールで、Load ステートメントを使用することで複製されます。 この時、Visible プロパティは False になっていますので、True にする必要があります。
ttp://jeanne.wankuma.com/tips/control/arraycontrol.html ' Load イベントで配列を動的に作成してフォームに加える
Private Sub Form_Load()
Dim i As Integer
For i = 1 To 9
' Load ステートメントを使用してコントロールを作成する
Call Load(Me.Text1(i))
' ここで、プロパティなどを必要に応じて設定します
Me.Text1(i).Text = "Text" & CStr(i + 1)
Me.Text1(i).Top = Me.Text1(0).Top + (240 * i)
' 初期値で False になっているので True にする
Me.Text1(i).Visible = True
Next i
End Sub
VBAでは使えないサンプルソース乙
>>516 桐には初めからファミリってのがあって、コントロールをグループ化して一括で設定できるど
>>514 エクセルならいざしらず、まずデータをコード化しないとどうにもならないと思いますよ。
このままコード化しないまま処理しようと思っているのなら、エクセルでやったほうがいいでしょう。
それはともかく考えかたとしてはこういうことでいいと思います。
規格によって書き込む位置が変わるわけですからその規格がどの位置になるかの情報が必要です。
この場合2Lは1の位置、3Lは2の位置、Lは1の位置ということになります。
この位置情報をテーブルで保存しておきます。
そしてあらかじめ変換したい形の空白のデータベースを用意し、そこに商品マスターからデータを流し込みます。
そのテーブルに元の形式のテーブルと位置情報のテーブルをリレーションして更新をかけます。
これはSQLをつかうのが簡単で早いでしょう。
とはいうものの本当にこんなやり方でいいんでしょうか?やさいというのは単なる例なのでしょうが、
規格がある一定の範囲で収まるとは思えないのですが・・・・
印刷サイズを越えたらどうするのでしょう?
根本的に考え方を変えたほうがいいように思うのですが?
衣料品の規格Lは常識的に推理できるけど野菜の2Lとか3Lとかが どんなものかまるで想像つかないな。 もしかしたら4Lとか5Lとか99Lとかたくさん種類があってそれを50音順に、 あるいは入力順に左詰めで並べたいということだろうか? 順番は関係なく、とにかく3つが横並びになっていればいいのか? 同じ野菜で同じ規格が複数行入力されたら数量は合計するのか? 4つめの規格が入力されてしまった場合は捨てるのか?数量4を用意するのか? それとも4つめの規格については絶対入力されない保証があるのか? もうちょっと要件定義が必要だとオモタ
530 :
514 :2008/02/20(水) 23:49:11 ID:DCQNrO7Q
>>528 レスありがとうございます
詳しい説明文もかかずすいませんでした
全然説明不足でした
DATAというテーブルに下記の形で入力します
納品先 |商品名 |規格 |数量 |
-------------------------------------
A |やさい |2L |50 |
A |やさい |3L |30 |
A |やさい | L |15 |
A |やさい | M |20 |
A |やさい | S |33 |
A |やさい |等外 |40 |
B |衣料品 |L | 5 |
変換後というテーブルを作成しておき以下のように
VBAなりの方法で以下のように追加したいと思います
納品先 |商品名 |規格1 |数量1 |規格2 |数量2 |規格3 |数量3 |規格4 |数量4 |
--------------------------------------------------------------------------------
A |やさい |2L |50 |3L |30 |L |15 |M |20 |
A |やさい |S |33 |等外 |40 | | | | |
B |衣料品 |L |5 | | | | | | |
規格で位置が決まってるわけではありません
規格、数量とも1〜4まで交互にあり
その商品ごとの規格、数量ははかならず1からはじまります
仮にやさいで規格が6つ存在したら
次のレコードの規格1の所に入る形でやりたいです
うまく伝わりましたでしょうか?
よろしくお願いいたします
531 :
514 :2008/02/21(木) 00:04:34 ID:Wq3um4ha
>>530 かなりずれてしまいました
>>529 >衣料品の規格Lは常識的に推理できるけど野菜の2Lとか3Lとかが
>どんなものかまるで想像つかないな。
>もしかしたら4Lとか5Lとか99Lとかたくさん種類があってそれを50音順に、
>あるいは入力順に左詰めで並べたいということだろうか?
>順番は関係なく、とにかく3つが横並びになっていればいいのか?
やさいに限らず規格は無限と考えてもらえると助かります
並ぶ順番などは特にないです
上にあるものからでかまいません
>同じ野菜で同じ規格が複数行入力されたら数量は合計するのか?
集計に使う予定で考えてますので
クエリをつかって日付で抽出し、納品先ごとで合計します
>4つめの規格が入力されてしまった場合は捨てるのか?数量4を用意するのか?
>それとも4つめの規格については絶対入力されない保証があるのか?
530を見てもらえると助かります
'ADO参照追加 Private Sub hoge() Dim cn As New ADODB.Connection Dim rstKey As New ADODB.Recordset Dim rstData As New ADODB.Recordset Dim rstTrans As New ADODB.Recordset Dim count As Integer Dim flg As Boolean Set cn = Application.CurrentProject.Connection cn.Execute "DELETE FROM 変換後" rstKey.Open "SELECT 納品先,商品名 FROM DATA GROUP BY 納品先,商品名", cn, adOpenForwardOnly, adLockReadOnly rstTrans.Open "SELECT * FROM 変換後", cn, adOpenForwardOnly, adLockOptimistic Do While Not (rstKey.EOF) w = 0 flg = False rstData.Open "SELECT * FROM DATA WHERE 納品先='" + rstKey.Fields(0) _ + "' AND 商品名='" + rstKey.Fields(1) + "'", cn, adOpenForwardOnly, adLockReadOnly Do While Not (rstData.EOF) If w = 0 Then flg = True rstTrans.AddNew rstTrans.Fields(0) = rstData.Fields(0) rstTrans.Fields(1) = rstData.Fields(1) End If rstTrans.Fields(w * 2 + 2) = rstData.Fields(2) rstTrans.Fields(w * 2 + 3) = rstData.Fields(3) If w < 3 Then w = w + 1 Else rstTrans.Update flg = False w = 0 End If rstData.MoveNext Loop rstData.Close If flg Then rstTrans.Update End If rstKey.MoveNext Loop rstKey.Close rstTrans.Close Set rstKey = Nothing Set rstData = Nothing Set rstTrans = Nothing Set cn = Nothing End Sub
規格、数量とも1〜4までって限度が決まってるなら、桐でやれば簡単じゃん
>>531 > クエリをつかって日付で抽出し、納品先ごとで合計します
Pivot使えばテーブルの変換不要
元テーブルから直接集計汁
>>534 だれもそんなこと聞いてないよ。空気読めないというか、読む気が無いアホは引っ込んでろ。
俺はVer1からの桐ファンなんだけど、桐の評判落とすようなことはするな!
桐を使うか?Accessを使うかはケースバイケース。
だいたいの場合、手軽にやるなら桐、アプリケーションを作るつもりならAccessを使う。
桐しか使えないアホがなんでも桐が一番なんていうのは良い恥さらしだ。
変なの来たわ
>>530 上のテーブルはいいけど、下のテーブルはもはやリレーショナルデータベースである意味がない。
もちろん、VBAを使って無理矢理やればどうとでもそういうデータを作成できるけど、
それはVBAを勉強しろとしか言えない。
VBAでやるきがあるなら「レコードセット」がわかればできると思うよ。
>> 集計に使う予定で考えてますので
>> クエリをつかって日付で抽出し、納品先ごとで合計します
ならば、上のデータを直接クエリやVBAで集計することを考えた方がいいのでは?
539 :
514 :2008/02/21(木) 19:28:23 ID:Wq3um4ha
>>533 できました
ありがとうございました
使わせていただきますね
自分ももっと勉強しなければ...
>>535 基本は複数行入力しないように心がけてるので大丈夫です
>>538 人から頂いたコードをカスタマイズする程度ならできるんですけど
一からとなるとちょっと自信ないんです....
>>539 そういう なまいきな発言をするから、周りの人に教えてもらなくなって、ここで聞いているんだね。
つか、こんなレコード作ってなんに使う気なんだ?
いっぱい釣れたのでもういいです
>>541 上のほうで出てた印刷イメージのデータを作るってことじゃないか?
>>543 まあ、そうなんだろうけど正直あまり良いやり方ではないと思う。
そのまま印刷したんじゃやたら縦に長い表になるからって、
わざわざこんな面倒なことをするんだろうけど、
それなら段組印刷でもすればいいと思う。
そっちのほうがずっと見やすいしシンプルだ。
これもそう簡単に実現はできなさそうだけど
同じ努力するならそのほうが良いと思う。
545 :
514 :2008/02/23(土) 14:47:52 ID:BrdEtbtD
>>540 気にさわったのであればすいません
そんなつもりはありませんでした
>>541 543さんの方が言われるとおりです
今までエクセルでこの形で印刷してたんですけど
アクセスに移行しても見慣れたこの形がいいといわれまして
>>545 > アクセスに移行しても見慣れたこの形がいいといわれまして
見慣れてない俺からしてみると不自然なんだけどね。
まあしょうがないか?現実にはすべて合理的ってわけには行かないものなあ。
547 :
NAME IS NULL :2008/02/24(日) 22:20:07 ID:+jC5teAM
>>514 印刷目的ならテーブル(or クエリ)レベルで変換するより複数列レポート使うのがお奨め。
たぶん今後も開発や修正が出てきそうな雰囲気だから、作るなら柔軟性や汎用性を持たせておいたほうがいいと思うよ。
「見慣れた形がいい」程度の理由で決めてる相手なら、今後も「列数変えろ」とか「伝票印刷もしたい」とか言い出す可能性があるからね。
549 :
NAME IS NULL :2008/02/28(木) 17:48:38 ID:Tzp8hxPl
アクセスのコンソールクライアントを探してたのですが、ベクター探しても無かったので
WSHの練習を兼ねて作ってみました。
うっぷします。
詳細は同梱のREAME.txtを読んでくだされ。
pass:ac
http://www-2ch.net:8080/up/download/1204187580849363.0BO3HV ・ac.wsf
MSアクセスのコマンドラインクライアント
使い始めは"/c"スイッチで環境ファイルを作成してください。
起動すると"AC>"とプロンプトを表示するのでSQL文を入力して下さい。
画面の表示の整形はCSVです。
※標準入力を使用してるので、CScript経由で無いとエラーになります。
使い方:/h (ヘルプ) /b (bachモード) /c:MDBへのパス または /d:dsn名 (最初のみ)
/u:ユーザ名 /p:パスワード 環境ファイル名(省略時はdefault設定)
※AC>プロンプト内のコマンド
AC>プロンプト内では次のコマンドが使えます。
AC>help;
help; :この表示
quit; :コンソールの終了
(SQL文); :SQLの実行
@(ファイル名); :ファイルの実行
!(コマンド名); :コマンドの実行
注)文末記号(;)の後にリダイレクト記号(>)とファイル名で
出力先をカレントディレクトリのファイルにします。
例)select * from TEST;>data.csv
※元々CSVを取得、投入するスクリプトを改造したので、CSVを投入する
スクリプトも同梱します。
・acm.wsf
使い方:/h (ヘルプ) ( /i or /u:キー項目名 挿入 or
/t:テーブル名 環境ファイル名(省略時はdefault設定)
schemaとかdumpとか希望
JetSQLConsoleが有名(Wikipediaにも載ってる)だけどね。 そっちは日本語化けるから、そういう点では価値あるかも。
Error : 3661 [object Error] on Connection Open アプリケーションを起動できません。システムデータベースが存在しないか、またはほかのユーザーが排他的にシステムデータベースを開いています。
553 :
NAME IS NULL :2008/02/29(金) 12:48:13 ID:MrGipuX/
>>552 MDBまでのパスが正しいか確認してくれ。
途中に空白があるとダメかも知れん。
cスイッチを゛でくくってくり。
例 /c:"c:\My Document\test:mdb"
若しくは本当に裏でMDBが開いてるか。
アクセスアプリを開いてるとそんなのが出た。
その場合はアクセス側でマルチユーザーの設定をしないとダメかも。
メニューに共有ユーザーの設定があったと思う。
ところでAccess2007のランタイムはどうなったのだろう?
>>557 両方インストールせいってこと?
現在2000なんだけど、ランタイムがまともに動くなら2007にしてもいいかなと思ったりしている。
でも英語版でふりがな入力とかちゃんと動くのだろうか?
別に無理に答えろとは言ってないよ。 使用した人間の実体験を聞きたいのであって、調べればわかるサイトの情報なんていらないよ。 つうことで後は無視するから悪く思わんでくれ。
あんた誰?
基地外きたー
昨日Access2007を購入したばかりです。
>>557 のランタイム及びDeveloperExtensionsを早速インストールしました。
Officeボタン?に最初「Developer」と表示されていたのに、いつの間にか消えています。
その後ランタイムやDeveloperExtensions、はたまたAccess2007本体まで
アンインストール→再インストールしたのに、一向に「Developer」が表示されません。
何が原因なのだろう・・・?
ランタイム無償というコトバに飛びついて買ったのに・・・
どなたかおわかりの方いらっしゃいませんか?
あちこちネットで見てもこの現象は出てないみたいです。
ちょっと疲れたので仮眠します。
ランタイムとOffice本体は同じPCにインストールしてはいけない あくまでOfficeの入っていないPCに入れるためのものだから ご愁傷さま
DeveloperExtensionsで、ランタイム込みのパッケージと、ランタイム別途ダウロード指示のパッケージを作れる 別途ダウン指示パッケージの配布先がランタイムダウンする 自分でランタイム入れてどうすんのよ
>>564 です。
>>565 >>566 レスありがとうございます。確かに自分のPCにランタイム入れてました。
アンポンタンでごめんなさい。
やりたいことは「Access2007で作成されたもののランタイム版を作成する」ことですので、
自分のPCにはDeveloperExtensionsだけ入れれば良いのですね?
ランタイムそのものはアンインストールしましたが、それでも「Developer」が
オフィスボタンから表示されません。
今回導入したのはAccess2007のみで、その他のOffice製品はOfficeXPを
使っています。この中にはAccess2002も含まれています。
つまりAccess2002と2007が共存している状況なのですが、これが良くないのかなぁ?
568 :
NAME IS NULL :2008/03/14(金) 02:02:15 ID:ppdTlgN9
ACCESSに詳しい方がいらっしゃるようなので、教えてください。ACCESS2003ユーザーですがテーブルのカーソル移動が突然遅くなり、画面の左下には計算中って表示されます。動きが遅くていらいらするんですがどなたかこの現象の解決方法ご存じですか?
そういう難しい話は詳しい人に聞いた方が良いな
>>568 On Current イベントは削除してください
>>568 関係ないが・・・
>>ACCESSに詳しい方がいらっしゃるようなので、教えてください。
Accessに詳しい方がいらっしゃらないAccessスレっていうのも見てみたいなw
Accessには詳しいが、お前の環境やファイルのことなぞ知らんわ。
2007で数値型フィールドだけカーソル移動がやたら遅くなる現象があったけど SP1当てたら直ってたな
Access2007の購入考えているんですが、Vista対応ってしてますか? 公式HPのシステム要件ではよくわからんかった。
575 :
NAME IS NULL :2008/03/16(日) 12:59:54 ID:GiAudtrQ
>>574 もちろんだよw
XPとVistaそれとServer2003に対応。
サンクス。じゃ勉強用に買うわ。
577 :
NAME IS NULL :2008/03/25(火) 17:16:45 ID:B6LLrA9G
>>568 >On Current イベントは削除してください
と同義かどうか分からないが、一旦mdb閉じて、ldb削除すると治ったことがあるよ
579 :
NAME IS NULL :2008/03/30(日) 22:14:46 ID:bRsz35Vf
既出だったらすいません コンボボックスで数字を打ち込むようにしたのですが(1テキスト1文字) ボックスの大きさのせいもありますが、矢印のせいで選択した数字が 見えなくなってしまいます。 アクティブにしたときまたはカーソルがあったときだけ矢印が現れ そうでないときは非表示なるような技はないでしょうか? よろしくお願いします。
テキストorラベルと コンボボックスを 同じ場所に重ねる ラベルがクリックされたら コンボボックスを手前に出す コンボボックスが確定したら ラベルを手前に出す
581 :
NAME IS NULL :2008/04/05(土) 14:45:47 ID:LoFR07Xc
アクセスのフォームに住所・氏名を入力しているのですが、 これを一太郎の宛名ラベルに出力するにはどうすればいいのでしょうか? フォーム1,2,3,4、、、、、とあり、連続して出力したいので、 マクロをつかえば半自動化できそうなのですが。 マクロじゃあムリでしょうか?VBA必須でしょうか?
>>581 なぜフォームから?
いったんテーブルに落としてから印刷させればいいじゃん?
そうすればフォームはひとつで済む。
一太郎は持っていないので知らんが、
Wordだと落としたテーブルのデータをデータソースにすればいい。
つうか、Accessのレポートだとできないようなことなのか?
ジャストシステムに電話してください
584 :
NAME IS NULL :2008/04/06(日) 11:28:24 ID:tzUTMXnW
>>582 ワード(一太郎)から差し込むのではなく、アクセスのフォーム上の
コマンドボタンを押すと、ワードに出力されるようにしたいのです。
というのは、
アクセスの現在のフォームに対応したものをワードに作りたいという
のと、主にアクセスをつかって入力しているからです。
レポートだと宛名書きはいいんだけど、その他の文章はアクセスから
一太郎に出力しているので、2度で間になります。
つまり、フォームからの出力とレポートへの変換とう2作業を
1つにしたいのです。
質問があります。 前のレコードに移動するボタンがあります。 先頭のレコードからは前のレコードに戻れない為、エラーゴーツーなるコマンドでエラーを拾っています。 この度、レコードを移動した際に更新前処理で更新するかを確認するようなメッセージを設定しました。 更新しませんと選ぶとキャンセルをTRUEに、ME.UNDOとして処理前の状態に戻しました。 ここで先のレコードが移動出来ない時のエラーが出てしまいます。 アドバイス下さい。
アドバイス
On Error Resume Next を先頭に書いとけ
>>584 @フォームの入力はアクセス
A文章の入力はアクセス
どう見ても一太郎を使うこと自体が二度手間です。
「ワード(一太郎)」って時点で意味不明すぎる
Wordに「一太郎」っていう名前を付けて可愛がってる。 「ウチの嫁」みたいなもの。
ワードからでも一太郎のファイルが開けるから 一緒になってんじゃね?
そういうもんじゃないだろ。
593 :
NAME IS NULL :2008/04/09(水) 19:30:00 ID:R5oZK5Ol
accessでDB作ってるんですが質問に答えていただけると幸いです。 まず、テキストボックスに入力した値をもとに検索をかけて表示 する画面を作りました。 検索の処理はVBAで作成し、form.openとかいうコマンドで表示するクエリにフィルターかけて 検索結果を表示するフォームへ投げてます。 このクエリと検索処理に問題はないと思うのですが、結果を確認すると、 検索にひっかかったデータ以外に 新規レコード(主キーのID(数値型)0が入ってる)が表示されてしまいます。 この新規のレコードが何故表示されるのかわかりません。 このフォーム自体は、追加・削除・更新全て禁止にしております。 お助けください。
[追加・削除・更新全て禁止] ほんと?
たぶんホント。 「追加・削除・更新全て禁止」と書いたラベルを貼ってあるから。
596 :
593 :2008/04/09(水) 22:46:22 ID:R5oZK5Ol
>>594 フォームの設定で禁止にしてます。
データ更新のフォームも同じような画面なんですが
そちらは追加禁止にすることで新規レコードは表示
されません。
ソース比べても全然わからないので一応Accessの仕様ということで諦めぎみです。
ちなみにやぶれかぶれでID=0及び、IDがNULLは持ってくるなっていう条件を指定
してみましたが駄目でした。
これについては新規のレコードなんでIDに条件加えたところで意味が無いのかも知れませんが一応。
まず、日本語の勉強からだな
「データ更新のフォーム」とやらをパクってきてVBA部分だけ移植すればいいじゃない
599 :
596 :2008/04/10(木) 00:58:37 ID:CzUi+X9O
駄目なやつってホントに何をやらせても駄目なんだな・・・
>ソース比べても全然わからないので一応Accessの仕様ということで諦めぎみです。 そんな仕様はない。 つくりの問題としか思えないが、こちらはソースを見れないので、話だけではどうにも。 ローカルテーブルなら、MDBのコピーとって、全レコード削除したらどうよ。 本当にそれが新規レコードなら、それでも出てくると思うけど、もし出てこなかったら それ新規レコードじゃないと思われ。
602 :
NAME IS NULL :2008/04/10(木) 18:42:18 ID:wWHoh7J7
こんにちは。 アクセスの初心者の質問はここで良いですか?スレ検索しましたが、見つからなかったので…
>>602 ビジネス板にもACCESSスレがあるが
正直こことの使い分け方がよう解らん。
とりあえず、質問をしてみるのが吉。
604 :
NAME IS NULL :2008/04/10(木) 19:55:31 ID:wWHoh7J7
ありがとうございます。 かなりあほな質問かもしれませんが、ご容赦ください。 例えば、社員一覧テーブルがあるとします。それとは別に、部署一覧テーブルがあります。 部署一覧は、部と課の二つで構成されます。例えば ーーーーーーーーーーーーーー A部 人事課 A部 総務課 A部 経理課 B部 営業1課 B部 営業2課 C部 企画1課 C部 企画2課 C部 企画3課 ーーーーーーーーーーーーーー ここで、社員一覧のテーブルで、社員の部と課を入力するときに、部署一覧テーブルのデータから入力したいのですが、 1.[部]列には、部署一覧の部のみ表示(ただし重複はさせない。この場合、A部、B部、C部と表示)させて選択できるようにする。 2.一方[課]列は、もし[部]にA部が入力されていたら、それに付随する人事課、総務課、経理課のみが選択できるようになる。 こういうことをしたいのです。 ルックアップとか、クエリとかいろいろやってみても分かりません。たぶん、かなり初心者な話だと思いますが… よろしくお願いします。
俺だったら部だけのテーブルも作る。 で、フォームを使う。 この辺の仕様変更はできるの?
606 :
NAME IS NULL :2008/04/10(木) 22:46:19 ID:r1j6EY9K
604です。 部だけのテーブルを作るとかいうのもありです。 基本的に、社員一覧テーブルに情報を打ち込むときに、打ち込みやすく間違えがないように すればいいのであって、仕様はシンプルであればどのようでも良いです。 部は確かにそれだけのテーブルを持つか、値から選ぶようにすればいいのですが 2.についてはどうでしょうか。 似通った課名もあるので、できれば入力の際に B部|営業1課 B部|営業2課 と2列を出して、選んだらセルには「営業1課」と2列目が入力される、とかできればいいのですが。 C部 → 営業1課 という部と課が一致しない入力を避けたいという気持ちです。 この辺だけできれば、あとは単なる社員情報一覧だけのテーブルで、プリントするものを 自動で作ったり(名前を差し込んだりして)したいだけで、特段難しいことはする予定ないです。
部テーブル →部ID、部名 課テーブル →課ID、部名、課名(部名は部テーブルよりルックアップ) 社員テーブル →社員ID、部名、課名、社員名…etc(部名は部テーブルより、課名は課テーブルよりルックアップ) なんて構造にして、ウィザードで社員テーブルを元にフォームを作ればいい。 そうすれば部名、課名はコンボボックスになっているはずだから 部の更新後処理で課を絞り込めばOK。
例えば電算部がシステム部とかに名称変更された時、 部テーブルの1行だけ修正すればおkな設計にしといたほうがよくないか?
ID使ってルックアップ列だから 多分大丈夫じゃないか。
Video ActiveX 入れると、youtubeで国別視聴制限が掛ってるオランダの16歳金髪ポルノが見れる件 自動的に選択メニュー出るし
VBAにて指定した分だけのレコードコピーの仕方がわかりません お知恵貸していただけませんか? テーブル「DATA」は 発注日=日付型 納品日=日付型 得意先CD=テキスト型 得意先名称1=テキスト型 得意先名称2=テキスト型 商品=テキスト型 件数=テキスト型 以上のフィールドがあります。 発注日で抽出したものを「DATA」に新規追加してます その後に件数に入力した数だけそのレコードをコピーしたいんですけどどうすればいいでしょうか? よろしくお願いいたします
いまいち何がしたいか分からんから的はずれかもしれないけど データ追加クエリを使えばいいんじゃないの?
何をどこからどこへコピーしたいのか、もう一回整理して書き込んだらいい あの説明でわかる人間は皆無だ
同じテーブルないでコピーしたいと思っています
for i=1 to rs("件数") sql="insert ....... " cn.Execute sql,,adExecuteNoRecords next
特定の条件に合致したテーブルのデータを修正するvbaを作って動かしてたんですが、凄い時間が掛かることが分かって悩んでます do until rs.EOF if ○ and ○ then end if rs.movenext loop ってやってるんですが、もっと高速化するやり方ってありますか?
一軒づつポインタをあてて処理していく方法はとても時間が掛かります。 インデックスを再検討することで速くなったりしますが大抵は焼け石に水という感じでしょう。 クエリによりwhere節でデータを絞り込んで該当件数に対して一括処理していく方法が 取れないものか、考え直してみましょう〜 いやこれはどうしようもないんですよ、、、って思われるかもしれませんが 本処理の前に前処理や後処理を加えても良いのですから、考え方を変えるつもりで。 ガンガレ
where節というのは知りませんでした なんか速くなりそうですね!ありがとうございます
やりたい事によっては使えないかもだけど
UPDATE ステートメント、更新クエリもチェックしてみたら?
それと、どれくらい遅いか客観的に分かるデータ=
レコード数、処理時間、おおまかなマシンスペックは
有った方が回答を得やすいんじゃないかな
>>617 さんの回答で解決したならいいんだけど
すいません。まだwhereも試してないのですが スペックはpentiumD 2.80GHtz メモリ512MB レコード数はおよそ2000万くらいで、条件式が6000あってそれを順に代入していく感じです 試しに条件式を一つだけにしてみたら10分くらいかかったので、たぶん40日くらい掛かる計算でした
質問の内容から察するに当の本人の力量はレコード数2000くらいのDBを扱うのが 一杯一杯ぽいけど・・・ なんという無茶な
622 :
NAME IS NULL :2008/05/05(月) 21:47:03 ID:vthO5f4T
>>620 2000万件 条件6000!
学生さんで、実験データか何かかしらね
Access でやる範囲を超えてると思いますよ
2000万件もあると、Access で入力や変更してないでしょ?
データを出力するプログラムがあるなら、これを変更してしまうとか
データがファイルで有るなら、Access に入れずに
直接読み書きするプログラムを書いた方がいいですよ キット
まずテーブルに[不一致]フィールドをYes/No型で追加して インデックスを作成しておいて… 次のクエリを6000回繰り返す。 UPDATE テーブル名 SET [不一致]=True WHERE ([不一致]=False) AND (条件nに該当しないもの) ※繰り返す際、条件nがなるべく厳しいものから実行する。 極端な話、1回目のクエリで2000万件が1件に絞られる可能性もある。 最後に[不一致]=Falseのレコードに対して必要な修正を行う。 ※この方法なら40日はかからないはず…1〜2日ジャマイカ? と条件の内容も知らないオレが無責任に言ってみるw
624 :
616 :2008/05/06(火) 04:39:22 ID:???
>>621 ここまで時間が掛かるものだと思わなかったもので…
>>622 そうです。アクセスで入出力はしてません。フリーのデータ取得ソフトを使って、そのソフトがMDBで出力してます。
プログラミングはよく分からないので…
>>623 やや違う形ですが、参考にさせてもらって速度が上がりました。ありがとうございます。
まだ結構日にちが掛かりそうですけど、これでやってみます。皆さんありがとうございました。
>>623 さんをちょっと変形するともうちょい速くなるんじゃないかな
WHERE の条件に、自作関数を指定出来るから
そこで複数条件を一度にチェックすれば
繰り返し回数(6000)を少なく出来る
こんな感じ 気が向いたらお試しを
WHERE ([不一致]=False) AND ((check_val([フィールド1],[フィールド2],[フィールド3]))=True)
Function check_val(fld1 As Variant, fld2 As Variant, fld3 As Variant) As Boolean
(fld1 = 1 And fld2 = 2 And fld3 = "OK") Then
check_val = True
Else
check_val = False
End If
End Function
626 :
616 :2008/05/06(火) 09:38:29 ID:???
>>623 さんのでやったら3時間ちょいで処理がおわっちゃいました。
あっけなさ過ぎて笑ってしまった。616のでやったときは4日動かしても1/3の位置にあるレコードさえ更新されなかったのに。
最初のコードがいかに効率が悪かったかってことですね。ありがとうございました。
627 :
623 :2008/05/06(火) 16:05:44 ID:???
良かった、良かった。 Accessに限ったことではないけれど ・WHERE句で絞り込めるならWHERE句を使う (→処理対象となるレコードを絞り込む) ・WHERE句で絞り込む場合はインデックスを持たせる (→絞り込み速度が向上する) というのが今回みたいに総レコード数が多い場合には 効果が現れやすいってことで。
628 :
NAME IS NULL :2008/05/06(火) 22:05:24 ID:sxz7Jblq
失礼します。あほなアクセス初心者ですが、質問させてください。 別に入力した数字と5ケタの数字を組み合わせた識別番号を表示させていきたいのですが、 5ケタの数字はオートナンバーのような形式で自動的に表示させることはできないでしょうか。 そしてできれば別入力の数字ごとに、それぞれ番号が順番に出てくるようにしたいのです。 例えば、1件目に『28413』と入力したら『2841300001』、 2件目に『59647』と入力したら『5964700001』 3件目に『28413』と入力したら『2841300002』という感じです。 うまく説明できなくてすみません。
できますよ
630 :
NAME IS NULL :2008/05/06(火) 22:19:53 ID:sxz7Jblq
そういうのもできるんですね! かなり難しそうな気もしますが、やり方を教えていただけないでしょうか。
入力値でselectして件数数えたら良いんジャマイカ
>>631 それだと削除されたりすると番号が重複するかもしれないよ。
この程度ならDmaxあたりでいいんじゃないか?
削除等により番号抜けが生じ、それが許せないというのなら
もう一工夫必要だが。
>>という感じです。 てくらいだからいいんじゃね?
634 :
NAME IS NULL :2008/05/06(火) 23:29:34 ID:sxz7Jblq
>631 >632 アドバイスありがとうございます。 だんだんわけわからなくなってきて、へこんでたのですが やる気出てきました^^
サブフォームに表示するレコードが無い場合のイベントを拾いたいのですが どのようにしたらよいのでしょうか? はじめはCurrentRecord=0で判断しようとしたのですが、 レコードが無い場合でも1になるときがあるようで、 うまいこと動作してくれません。
>>635 開く時イベント辺りでrecordcount拾った見ては?
Dcountでもいいかもしれない。
>>636 レスありがとうございます。
結局要所要所で、サブフォームのRecordSourceに突っ込んだ
SQLと同じものをRecordsetで開いてRecordCountみることで解決してましたが
全部Dcountで置き換えられそうです。
.RecordCountの値は.MoveLastしないと信用できない。 でも最初から.EOFだった場合に.MoveLastするとエラーになる。 .RecordCountを気軽に紹介している入門書の類は多いけど 上記の点まできちんと言及してるものは見たことないな・・・
>>638 信用できないってどういうこと?
接続先のDBの種類によってRecordCountが取得できないこともあるけど、
取得できるなら間違った数は返さないんじゃない?
.RecordCountはカーソルまたはキーセットの状態によって 返す値が変わってくるはず。信用ならないってわけじゃないと思う。 これがわからないで結構悩んだことがある。 -----以下MSDNからコピペ レコード数を算定できるかどうかには、Recordset オブジェクトのカーソルの種類が 関係します。RecordCount プロパティは、前方スクロール タイプのカーソルの場合 は -1 を返し、静的カーソルまたはキーセット カーソルの場合は実際の数を返し、 動的カーソルの場合はデータ ソースに応じて -1 または実際の数を返します。 ------
638ではないけれど、 本来ADOはデータソースの種類を意識することなく 同じコードで動作することを目標としてたはず。 その意味でRecordCountプロパティを使うことは避けた方が 望ましいと思うのだけれど。 少なくとも自分は積極的には使う気がしない。
>>641 では、レコード数をカウントしたいときに代わりに何を使っているのでしょうか?
1レコードずつループしてカウント?
643 :
641 :2008/05/09(金) 14:08:28 ID:???
SELECT Count(主キー) FROM テーブル WHERE 〜 で
素直にクエリ句を投げてます。
Recordsetの操作は、静的カーソルやキーセットより
前方スクロールの方が圧倒的に処理速度が速いので
もっぱら前方スクロールで開いているのも理由の1つ。
>>640 にあるように.Recordcountが使えません。
ましてや.MoveLastメソッドなんかはレコード数が
多くなればなるほど遅くて使い物になりませんし・・・
DCountを使う手もあるのですが、DLookupのバグで
痛い目を見てからは使っていません。
DLookupのバグって何?
645 :
641 :2008/05/09(金) 17:34:25 ID:???
Access2000だったと記憶していますが、DLookupで文字列フィールドを取得する際に 取得した文字列が途中で途切れてしまう症状があったのです。(再現性あり) 意外とMSが提供する関数にはこの手の見えない制約?バグ?があったりするので 油断ならんなぁ・・・という感じですよw
ここって初心者が質問してもおk?
>>646 別に問題はない。
言っておくが、参考本すら読んだことのないやつは
初心者とは言わない。
エロ本すら読んだことのないやつは 童貞とは言わない。
歴戦の勇士が昔の自分に答えてやっている感じがする
そんなに変なこと書いたかなぁ。 話しが通じるだけの最低限の知識は 必要だと言いたかったのだが。
レベルは低いが多少のエスパー能力ならあるから心配するな
>>645 そうだね
リストの要素が65535個までだったりw
少なくとも自分は積極的には使う気がしない
使ってみないと挙動が分からないのばかり
Accessってスキルとして認められますか?
認めざるを得ないスキルを見せつけてる
認められると思うよ
>>654 マジレスすると
「お前がACCESSで何が出来るか」
に掛かってるだろ。
現場によるけどな。
職場になにかとaccess使うやつ(上司)がいるが わりと出来るやつということになってる だが、嫌い俺は 勉強して抜いてやる
部下が使えるようになり上司も喜ぶ事だろう がんばりたまえ
Access使える香具師よりもExcel使える香具師の方が価値が高いと思うこのごろ
Excel使える香具師よりも日本語使える香具師の方が価値が高いと思うこのごろ
Accessだけ使えるのも珍しいだろ
Accessだけ使えるやつなんて信用しない。なぜならば本当に Accessがどのようなものかを知っている人間はAccessを 使わないからだ!
なこと言っても、Excelとの親和性を考えたらAccess以上の物ないし
Excelとの親和性なら桐のほうが高いと思うけどなあ?
668 :
NAME IS NULL :2008/06/04(水) 11:21:01 ID:dxyYnNU/
初歩の初歩を聞いてスマンコだけど、100万レコードとかって耐えられる?(個人的な使用だけど)
個人的な使用なら糞遅くてもいいだろ。だから耐えられる。
百万レコード単位になると、 一時テーブルを作った時とかに2ギガ制限に引っかかることがある。 あと大量データの時だけ発生するエラーが結構あった気がする。 でも気を遣えば大丈夫。
全レコードに1メガの画像データ埋め込んだら100万どころか2000レコードでも限界だよ
レコードに画像を埋め込むのってどういう用途なんだ? 想像できん…
お手本中のお手本であるNorthWind.mdbからして 商品の写真をマスターテーブルに埋め込んでなかったっけ・・・?
675 :
669 :2008/06/04(水) 23:04:51 ID:???
レス、thxです。株価データを貯めこもうかと考えてる最中でして、そんなに増やそうとは思ってないんだけど、 年度単位とかに分けて作っておいた方が良いかな。 ま、ちょぼちょぼと作っていきますw
年度単位じゃ株価データの意味ないと思うぞ 銘柄単位とかセクター単位とか
株価データなら、MDBで600万件(700MBほど)管理してるけど、全然平気。 2GB超えるようなら、対策考えるけどね。
対策って何よ
MDBなら年度ごとにテーブル分けてても リンクテーブルにしてUNIONかければ対応可能だろ
UNIONかけたら2GB超えても大丈夫なん?
それぞれのmdbが2G超えなければ合計2G以上も行けるって事だべ
2007でも2GB制限あるの?
うん
mdbじゃなくてtblだけどな
?
データベースの仕様 次の表は、Microsoft Office Access 2007 データベース特有の仕様の一覧です。 全般 属性 最大値 Access データベース (.accdb) ファイルのサイズ 2 GB からシステム オブジェクトに必要な領域のサイズを引いた値 データベースのオブジェクトの数 32,768 "HasModule/レコード保持" プロパティが [はい] に設定されたフォームおよびレポートを含むモジュールの数 1,000 オブジェクト名の文字数 64 パスワードの文字数 20 ユーザー名やグループ名の文字数 20 データベースを同時に使用できるユーザーの数 255
消えてほしくないなら、ふつうSetProp使うのが常識だろ。 オブジェクト型とかは無理だけど。
でもVBAじゃグローバル変数使わざるをえないケースが多々あるわけで
解決方法にアクセスの場合の記載が無い w どっかテーブルにでも保存すっか? ww
本当に消えて困るのは、グローバル変数の代わりに標準モジュールにプロパティ作っとく。 プロパティの中で、退避しておいた値をGetPropやDLookupで復元する。 これVBAの基本テクニック(入門書に載ってるかどうかは知らない)。 ただ、KBに載ってるケース(エラートラップしないとか、動的にモジュール作成とか)に 該当してるなら、そういうことする必要性自体が自分にはピンと来ないな。 なんでそういう危ない橋を好んで渡るかね。
2007でTempVarsが使える俺は勝ち組!
漏れも漏れも、2007でTempVars使ってる勝ち組、変数スコープがマトモな桐も使ってる勝ち組
人柱乙(−人−)
>>691 おいらは不可視のテキストボックスつくって対応
配列とか対応できないけど、
消えて困る変数はMDBにつっこんどけwww
698 :
NAME IS NULL :2008/06/10(火) 15:08:42 ID:F+HVGTFM
ざっくりした質問ですいません メインフォームの顧客IDとサブフォームの顧客IDでリレーション(1対1)してるのに サブフォームが何枚も更新できるのってなぜでしょうか? 1IDに対し、サブフォームの情報は1枚しか必要ないのに、新しいフォームが 増えていくのが困ります。
700 :
NAME IS NULL :2008/06/10(火) 15:41:14 ID:F+HVGTFM
>>692 ありがとう。
アクセスは使ってないけど勉強になりました。
話題蒸し返しでごめん Public変数の話 >モジュールの編集、プロジェクトの構造の変更、 >コンパイルエラーの発生、参照設定の変更、 >デザインモードへの切り替え、コントロールを削除して [元に戻す] >を実行するなどのタイミングで変数が破棄される場合が これはいいのよ 経験上なんとなくそうなんだろうなと思ってたことだから たとえば編集不可のmdeで、ちゃんとエラートラップもされてて、見かけ問題なく 動いてても、実は持ってた変数放り出しちゃったりしてるの?
そこは自分も知りたい気がする。 「なぜか消える」という話だけだと、どこまで追ったか分からないからなぁ。 ろくにデバッグすらせずに言ってるのか、技術情報のポイントは全部 つぶした上で、それでも未掲載の何かで再現するもんなのか。
文法デバッグ済のmdeでも、実行時エラーでいくつかの変数スッ飛んだことがある どっちにしろエラー起こして中の人からメッセージ出された場合は 変数巻き添えという頭があったんでさほど驚きもしなかったけど そんな程度の話じゃないのかなあ、この変数が消える問題って
仕様外の動作に依存したプログラムを作るのはまずいんじゃないの 動作がいつ変わっても文句言えないし まあUpdateとかで仕様も変わっちゃう事あるけどさ
アフォウ共、何言ってるんだ?? Static使わなければ、プロシージャの実行が終了すると値は破棄されるのは当たり前だ Static ステートメント使えば良い話しだろ
グローバル変数と静的変数って同じ物? ちがうよね? ネ申は死んだかな?
>>709 おい、何をトンチンカン、おい、桐にしとけ
711 :
NAME IS NULL :2008/06/13(金) 23:16:51 ID:DjzdsO75
Staticw
アッ、そうなんだ。桐はすでに使っているんでね。 グローバル変数を静的変数に変えればいいっていかにも乱暴な気がしたんだけど? 聞くは一時の恥。なにがバカなの?
グローバル変数って何よ w Public のこと?
モジュールレベルのPublicをグローバルって言ってるんでないの
失礼どうやらPublicとGlobalとを混同していたらしい。似て非なるものだった。 グローバル変数とは全プロシージャから参照できる変数のこと。 Global GB_System As String ってな具合に使っているけどまずいのかな?使っているのはAcceess2000なんで廃止されたならゴメン。 あまり使わないほうが良いと言われる手法だけどこれを避けようとすると返って面倒なことになるので 必要最小限頭に"GB_"というのをつけて一目でグローバル変数だとわかるようにして使っている。 もっと複雑なプログラムなら問題があるのだろうけど、現在特に問題は感じてないんだけどなあ?
VBAのPublicとGlobalは全く同じですが
あっ、そうなんだ? Globalはpublicの古い書き方なんだ。 なんせAccessは最初のバージョンから使っているから気がつかないでずっとGlobalを使っていた。 でもいままでGlobal変数が消えて困ったなんて経験は無いけどなあ?運がいいだけ? まあ、勉強になった。ありがとう。
>>715 モジュールレベルのPublicって何よ w
Access2007開発者用ヘルプ "スコープ" 適用範囲 (スコープ) プログラム内で、変数、プロシージャ、オブジェクトが有効である範囲。適用範囲は"変数、プロシージャ、オブジェクトが宣言された方法や場所によって決まります。 たとえば、変数が Public ステートメントで宣言されていて、モジュールに Option Private Module が記述されていないとき、すべてのモジュールのすべてのプロシージャがその変数の適用範囲となり、 その変数はそれらのプロシージャから参照できます。Option Private Module が有効な場合は、モジュール自体がプライベートとして宣言されているので、参照元のプロジェクトからは参照できません。 プロシージャの中で宣言された変数は、そのプロシージャの実行中だけ有効で、キーワード Static により静的変数として宣言されていない限り、プロシージャの実行が、終了すると値は破棄されます。
実際にPublicが破棄されるような状況でStaticが破棄されないってあるのか?
Publicはメモリ確保が終了してるから、タマタマ残ってるって事、他が邪魔したら無くなる Staticはメモリが確保されてる
>他が邪魔したら無くなる 他とは?
>>723 Publicが消えてStaticが残る状況を再現する手順を教えてください
他のモジュールが偶然同じメモリ領域使っちゃったら無くなるんじゃね?
>>726 いや、他のプロシージャでも偶然同じメモリ領域使っちゃったら無くなる
するとPublic変数というのは運が良ければ使える変数ってこと? さすがMS。すごい仕様だなあ?
>>728 スコープの参照範囲から参照できるってこと
スコープの時間的範囲が終了すれば、確保されない
モジュールがメモリからいなくなるときかな、削除したときとか?
>>730 モジュールに Option Private Module が記述されていないときは
public変数は全プロシージャから使えるってことでいいんだよね?
ずっとそう思って使ってきたんだけどなんか不安になってきた。
メモリ領域が使われたらどうのこうのって、 それなら値は初期化されずに不定になるって事にならないか? そんな動作はしないだろ。
>>733 Staticは定位置にメモリが確保されてる
Publicはメモリ確保が終了してるから、他が邪魔したら、動的に別位置に設定しなおして値が無くなるんでは?
>>734 他の邪魔は許すが、他が邪魔したかどうかの監視(または判定)はしてるって事か?
えー
まあ、監視つーか、アドレスが他で埋まっちゃってたら、別に確保するしかじゃね
埋まったかどうかどうやって判断すんのさ
そこらへんはVB内部ってことで 判断できなければ、他のモジュールが確保して実行中(確保され続ける)の変数も守れないだろ
Static(静的)変数にくらべて、動的変数は一々解放しなくても、実行終わったら中身カラ(他でその領域使える)になるから便利ってことでないの?
>>734 >>738 Public変数ですー
他から要求があったら今使ってる領域は譲るよー、
でも代わりに別の領域を確保して初期化するよー
ってことですか、わかりません><
741 :
NAME IS NULL :2008/06/14(土) 13:46:52 ID:Sa3ZCVod
動的変数だからモジュールで使うたびにメモリ確保するんだろ 他で使ってたら別の場所にって事で
742 :
NAME IS NULL :2008/06/14(土) 14:10:32 ID:Q6ctkHOb
富山DQN男の家族消えろ 富山DQN男の親消えろ 富山DQN男の子供消えろ 富山DQN男の親戚消えろ 富山DQN男の家族消えろ 富山DQN男の親消えろ 富山DQN男の子供消えろ 富山DQN男の親戚消えろ 富山DQN男の家族消えろ 富山DQN男の親消えろ 富山DQN男の子供消えろ 富山DQN男の親戚消えろ 富山DQN男の家族消えろ 富山DQN男の親消えろ 富山DQN男の子供消えろ 富山DQN男の親戚消えろ ニヤニヤ(・∀・) ニヤニヤ(・∀・) ニヤニヤ(・∀・) ニヤニヤ(・∀・) 死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね 死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね 死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね 死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 死ぬとき このレスの事思い出してから地獄へ行けよ ニヤ(・∀・)ニヤ(・∀・)
743 :
NAME IS NULL :2008/06/14(土) 14:48:26 ID:hwIMB6Ac
うん、プロシージャで呼び出すたびにメモリ確保するのが正解っぽい。 だから =nothing とかしなくても良い。
ソースはお前らの脳内
745 :
NAME IS NULL :2008/06/14(土) 16:32:02 ID:hwIMB6Ac
呼ぶたびにメモリ確保するのはローカル変数
もう面倒くさいの嫌だから桐にしとくよ。
Publicが飛んだらStaticも飛ぶ。一緒。 トラップなしで実行時エラー起こしてみればすぐに 分かるようなことは、先に試せよ。 脳内妄想垂れ流してるのを見てると気の毒になるから。
749 :
NAME IS NULL :2008/06/14(土) 16:57:08 ID:hwIMB6Ac
そりゃあ実行時エラーすれば何でも起こりうる罠 wwww
結局MDBに変数を保存しておくのが無難か? 面倒だし若干スピードに影響しそうだけどしゃあない。
初期化されてたら取得ってことにすればいいんじゃない
いや、その初期化される前の値が欲しいんだが・・・
変数に変更があるたびにmdbを更新すればいいことなんじゃないのか?
754 :
NAME IS NULL :2008/06/14(土) 19:13:44 ID:hwIMB6Ac
staticで良いじゃん 他で使うときには、渡す先の引数で変数を渡す
>>753 テーブルに、って意味ならそう言ってくれ
それとも別の方法か?
>>748 ファンか本人?
自分で試せばすぐに分かるような記事を検証せずに鵜呑みにすると痛い目にあうよ。
>>749 ここまでのやりとり何も読んでないか理解できなかったんだなw
それでもstaticなら大丈夫と言い張るバカが居るからここにつながるんであって。
あれはスコープと寿命を用途に照らして使い分ける類のものであって、
エラープルーフでもなんでもない。
static信者が自爆するのは信教の自由なので止めないけれど、
初心者を巻き添えにしないように。
757 :
NAME IS NULL :2008/06/14(土) 19:45:42 ID:JuOgoyv1
いきなりの質問ですいませんが、クエリを一度だけ更新する方法を教えて下さい。
>>757 意味が良くわからないが同じ更新を2回しないようにするってことか?
テーブルに更新したかどうかのフラグを立ててすでに更新済みのデータは更新からはずすとか?
見当違いならスマン。
760 :
NAME IS NULL :2008/06/14(土) 22:23:07 ID:JuOgoyv1
>>759 ありがとうございます。やってみますね。
761 :
NAME IS NULL :2008/06/14(土) 22:45:45 ID:e60rf0FN
>>756 なんかトンチンカンなこと書いてるよ
> エラープルーフでもなんでもない。
public変数が初期化されるのはエラーでも何でもないでしょ
正規の動作中だよ
762 :
NAME IS NULL :2008/06/14(土) 23:36:24 ID:JuOgoyv1
>>759 何度もすいません。
フラグの立て方がわかりません。
時刻を10分更新するクエリです。
死亡フラグでも立てとけ
おれ、Accessの次のバージョンが出たら即買いの予定なんすよ
時刻を10分更新するクエリ? ますますなんのことかわからん。 とりあえず、時刻を10分進めるクエリーってことにしておこう。 フラグというのは文字通り旗のこと。つまりしるしをつけておくだけのこと。 ある条件のときにテーブルのあるカラムの値を10分進めるとする。 しかし、一度進めた値はもう二度と進めてもらっては困る。 ならばテーブルに更新したかどうかを記録するカラムを追加し、 初期値としてfalseを入れておく。 そして初期値がfalseならば更新するというケエリーを実行して その時にそのカラムをtrueに更新しておけばOK? そんなことをしてなんの意味があるのかわからないけど、 まあ、低級エスパーとしてはこれが限界だ(w
で、なに プロシージャの実行が終わったら変数はリセット? フォームオープン時のイベントで MyPbTax=テーブルに保存しておいた消費税率 とか読み込ませて フォームが開き終えたらもう消費税はリセット? めでてーな
>>766 しょうがねえだろ、VBA の仕様に基づく制限だ。
文句あるなら、VBで開発して Shared変数使いな。
仕様じゃしようがねえ。お後がよろしいようで・・・・・(お囃子)・・・・・(w
769 :
NAME IS NULL :2008/06/15(日) 23:08:05 ID:iGx6pZh1
>>767 真に、おっしゃる通りです、素直に桐にします
次期バージョンではVBAとVBSが統合されるヨッカーン。 まあ、スクリプトでも使ってろってこった。
いつかはくるであろう、VBA切り捨てのX-dayに怯える日々がはじまるのでつね
べつにVBSだろうがVBAだろうが同じだろうが。
同じなのか??
文法は同じ。 細かいこと言えば結構違う。
そりゃあ、MSのBASICだから文法同じだろw
VBは死にましぇん!
VBSがForm使えりゃ無敵ng
778 :
NAME IS NULL :2008/06/17(火) 23:44:09 ID:wipoekOe
詳しい人がいたら教えてください。
クライアントの環境で、ExcelのモジュールからAccessモジュール呼び、
Accessの結果(レコードセット)を受けて、その結果をExcelのシートに
貼るとこまでは出来ました。
アクセスのmdbファイルの場所を例えば(
http://www.hoge.com/access/test.mdb )
として、Excelのモジュールからこのmdbにアクセスして、結果を受け取る
ということは出来ますか?
HTTP経由だからそれなりの実装をしないと無理ですか?
まるごとダウンロードするしかあんめえ。 つうかサバ側でなんかしろよ
出来ますよ
>>778 > Excelのモジュールからこのmdbにアクセスして、結果を受け取る
もうちょっと具体的にやりたい事書けよ。
これじゃ、mdb中のテーブルに対してクエリ投げた結果を取得したいのか、
shellでaccess実行してmdb開きたいのか分からんだろう。
shell関数だって戻り値はあるし、「結果を受け取る」ってことも
出来るんだから。
> クライアントの環境で、ExcelのモジュールからAccessモジュール呼び、 > Accessの結果(レコードセット)を受けて、その結果をExcelのシートに > 貼るとこまでは出来ました。 Excel VBAからAccess VBAのFunctionを呼べるの?どうやるの?
783 :
782 :2008/06/21(土) 12:50:32 ID:???
試しにやってみたらGetObjectしてApplication.Runで簡単に出来たー。 そうかー、レコードセット返すFunctionとか呼べるんだー。勉強になった。
784 :
782 :2008/06/21(土) 12:57:47 ID:???
で、まあ、そうするとAccessで該当mdbを開かない事にはどうしようもない訳で、 やっぱり都度サーバからダウンロードして開くとかじゃないかな?
先月ネット通販の仕事を辞めて、 次の仕事探す前に何かひとつスキルを身につけたいんだけど Accessって武器になりますか? 前の仕事で、エクセルで数百件くらいのデータを関数を組み合わせて一気に編集するとか、 よくやってたから、Access使えたらもっと早く処理出来そうだなーと気になってました。 簡単なFLASHゲームとか考えるのは好きで、 SE系の専門学校出身だから普通の人よりは飲み込み早いと思うんだけど、 習得にどのくらい時間がかかるのかしら?
>>785 慣れとかコツつかむには時間掛かるだろうけど、
一通りのことなら本見ながら1週間で余裕じゃね?
1週間で余裕なことがスキルになるのかと小一時間
Accessなんて前任者が残していったスパゲッティ状態のVBAと正規化もまともに できてないような糞データベースをお守りできないと話しにならんぞ。
そんなの作り直しちゃえよ
前任者が辞めたとか異動したとかの理由であちこちの部署から ウンコDBなんとかしてくれ系の依頼が後を絶たないお・・・
ウンコエクセルはよく見るけど ウンコDBってどんななんだ?DB化する時点で必然的に整理される気がするんだけど。
>>791 たまにものすごいテーブル設計するやつもいるし、
クライアントから「このEXCELのシートの内容をそのまま使え」と
強制されて非正規化のままで作らされることはあるよ。
桐にしたら良いお! 正規化してなくても不自由ないお!
SELECT FROM.FROM FROM [FROM] とか そんなSQLばっかり読まされる仕事はもういやだお・・・
クエリビルダばっかり使ってinner joinとleft joinの違いがわからないで 必要な項目が欠落してるのに気がつかないとか、まじ視ねといいたい。 アクセスの仕事はこんなのばっか!
とゆーかクエリビルダって使いにくいと思う
>>797 でも、あれしか使えない輩も居る訳で。
個人的には「SQLで書けよ」と思う訳だが、
そのSQLも勝手に書き換えられたりして
気持ち悪い挙動を示すのがACCESS。
799 :
NAME IS NULL :2008/06/26(木) 22:23:07 ID:IHeiKRfY
Access2007です。(XP) Accessで、エクセルのVLOOKUPみたいなことはできますか? 商品名と商品コードの2列からなるテーブルを用意しておき、 別のテーブルで商品名を入力すると、隣のセルに商品コードが自動的に 出るようにしたいのですが、可能ですか? エクセルなら、VLOOKUPで簡単にできるんですけどね。。。
802 :
NAME IS NULL :2008/06/27(金) 18:25:50 ID:zsJ8ZJes
工場内ラインの生産数管理をしたいと思っています。 サブフォームに「不良数」「処理方法」をもつ日報フォームを作成しましたが、 不良数0の日の日報フォームのサブフォームに「不良数」0のレコードを作らないと、 月度内で不良が無かった場合、月度管理用クエリでは 不良数合計のフィールドに表示するものがないため、その他の集計も表示できません。 よろしければ解決方法を教えてください。 意外と単純な事かと思いますが、私の頭では思いつきません…
市販のソフトあたってみたら?
>>802 リレーションを見直してみ。
ヒント: LEFT JOIN
806 :
802 :2008/06/29(日) 13:56:08 ID:+zev6smp
返事遅くなりまして申し訳ありません。 LEFT JOINと言うものを検索した結果 悩んでいたものの通りのものがいくつかありました。 多分、SQLとかわかる人からすれば当たり前のことなんですね…。 もっと勉強します。ありがとうございました。
SQL文の書き方なんて追々おぼえればいいからさ まずはクエリでのテーブルどうしのくっつけかた考えろよ 結合線にマウスカーソルあてて右クリック、で、いろいろとさ
808 :
802 :2008/06/30(月) 21:46:00 ID:tW/mOprp
取りあえず、SQL表示にしてLEFT JOINに書き換え、
Nullには0を返すようにIIfIsNullで完成しました。
ただ
>>807 さんの言うテーブル同士のくっつけ方がよくわかりませんorz
フィールドとフィールドの間の線ですよね?カーソルあてて右クリックしても
フィールド内で右クリックしたときと同じものしかでてきません。
>>808 >Nullには0を返すようにIIfIsNullで完成しました。
つ nz
あてるのは先端 ぞくっと震えがくるぐらいギリギリ微妙な、先端
DBMSによってNVLとかISNULLとかIFNULLとかNZとかコーアレス(スペル忘れた)とか 使い分けなきゃいけない仕事はもういやだお・・・
>>811 Accessではどうしようもないだろwww
814 :
802 :2008/07/03(木) 22:26:16 ID:exZxl670
>>809 nzですか。知らなかったです。
IIfとIsNullを組み合わせて使おうと思いつくの一苦労だったのでなんか切ないです。
結合線の意味はやっと気付きました。リレーションシップの線のことですね。
たしかにあれを変えたらSQL上でLEFT JOINになりました。
なにやら恥をどんどん晒しているようで恥ずかしい限りですorz
>>814 そうやってどんどん覚えていけばいいんじゃなーい?
なんか自分の数年前を見てるようだw
私も初めてnz知った時は同じようにうれしいような切ないような気持ちになったしw
coalesceでいいような
817 :
NAME IS NULL :2008/07/12(土) 19:37:38 ID:dbIMVOlA
>>806 SQLは時間見て勉強した方がいいと思うぞ。
#DB使いは誰でも通る道だからね
>>814 Nzは返り値がVariant型だからね。
出した結果を再利用する時のことを考えて使うべき。
というかNzの第2引数を省略するやつはうんこ
なぜNzと呼ぶのでしょうか?
822 :
NAME IS NULL :2008/07/19(土) 21:44:08 ID:PehLay74
>>814 お前に感心するよ。
俺だったら絶対関数あるはず、ってググッたり人に聞いたり(こっちが多かったりする)して
知識を分けてもらうことに努力しちゃうね。
お前はすばらしい努力家だよ。
でも会社は評価してくれないけどねww
すごいカメだな なんかイヤな事でもあったのか
文脈からして、会社に評価してもらえなかったんだろう。 聞いてばかりじゃ、それも仕方がないな。
なるほど 性格も悪そうだし、仕方がないね。
自分で調べて得た知識とその取得方法は自分に帰ってくるからいいんじゃね?
827 :
NAME IS NULL :2008/07/23(水) 17:00:26 ID:d9fcTHfR
828 :
NAME IS NULL :2008/07/25(金) 14:41:42 ID:5EfeWVVD
確かに慣れは必要だね〜
830 :
NAME IS NULL :2008/07/25(金) 17:50:16 ID:IT6y9+c8
お聞きしたいことがあるのですが アクセス2002で日付型のデータを入力しています。 現状07/08/01の様に入力しないといけないわけですが 070801で認識させるような方法っていうのは有りますか? 0801と入力したら今年の西暦+0801になるようにカスタマイズできれば尚よしなんですが。
>>832 プログラム組むしかないんですね
有り難う御座います
デフォルトのままで行くことにします。
桐にしとけば最初から実現してるよ
お前はPC-98でもさわってろ
桐はDOS/Vでも動く
WindowsVISTAでも動く 最初から 0801→2008/08/01 08/01→2008/08/01 09/08/01→2009/08/01
いまだに桐がどうのこうの言っているヴァカがいるのか。 巣に戻れよ。
桐の人はネタとして薦めてるのかと思っていたが、もしかしてホンキなの?
>>840 かなり本気だと思われ。
極端に言えば神と崇めるレベルまで桐に心酔している。
う〜ん、どっちかっていうと桐の方が高級なんだけどな、高価だし。
つか、桐桐いうやつの言い分がようわからん。 accessより安くて機能が充実しているのならわかるのだが、 高くて機能充実しているのは普通だと思うのだが。
もともとはなんていう名前のソフトなの? > 桐
俺は桐も好きなんだが良くも悪くも閉じた環境の世界であって、拡張性についてはあまり考えられてない。 例えば、どちらも何十人もの同時使用ということについては考えられてないが、 AccessならMySQLなどを使ってクライアントサーバーにすることで対応できる。 桐でもまったくできないというわけでもないのだが、かなり無理があるようだ。 だから桐が悪いというわけではなく、閉じた環境の世界の中で使う分にはAccessより簡単で楽。 ちょっとしたアプリケーションなど簡単に出来てしまう。そういう場合はためらわずに桐を使う。 しかし、その後の発展が考えられる場合はAccessを使う場合がある。 結局どっちが良いかという問題では無く、ケースバイケースの話。 具体的に言うと、桐の使用者には教育者が多いのだけど、成績の処理だの経費の集計だのにはちょうどいい。 しかし、販売管理だの財務会計だのに桐を使うのはちょっとどうかと思う。
販売管理とか財務会計とかこそ、桐の独壇場だろ もともと経理処理なんてものはデータベース的じゃないんだけどな 桐は論理行番号があるから普通に累計計算できるけど、AccessだとADO/DAO介して無理やり(?)VBで組まないと累計すら出せない 経理処理みたいな定型業務に必要な機能は桐では全て最初から用意されてるから、簡単安全正確 当スレでのAccessの質問も、殆どは桐なら最初から機能が用意されてる Accessだと一々ADO/DAO介してVBで組むから、煩雑だしバグも増える 非定形想定外の処理は桐でもマクロ組むけど、桐の一括処理は言語仕様が古臭い、VBよりも遅い 桐のODBC接続は常用は厳しいね、データのインポートやエクスポートに使って、運用は桐単独
桐とAccessは競合するようなものではないと思う。 桐のサイトに行くとわかるのだが、桐が狙っている市場ってExcelでは飽き足らなくなった人だよ。 それならまさに適材だと思う。 Accessを使いこなしている人が桐に移行するとはとても思えない。
まあ、Accessはパーソナルデータベースだから、
何か言っていそうで何も言っていない >849 の才能に嫉妬
昔、DOS桐の仕事したなあ。 確かに印刷と累計は普通に出来たな。 日本語が違和感あったけど。 その後はAccess97に行っちゃったから、 Windows版の桐はよく知らん。
累計つーか残高な。 経理に使うなら残高くらい出せないとダメだろ。 出納長も作れん。
桐の独壇場っていうか、経理ソフトとか会計パッケージのバックエンドは 大概SQLServerのExpress版なんだが・・・
>>852 Accessでも出せるよぅ。重くなるけど。
Accessの方がいろいろ機動力がある気がしたわ。
DOS桐よりは。
856 :
NAME IS NULL :2008/08/07(木) 18:05:12 ID:Xsy4Y32A
>>855 んなぁ、計算量が指数関数的に増大してレコード増えると途端に限界
出納長のような累計を出したいのならレポートに変数を設定して一行ごとに数値を足しながら 印刷すればいいことではないか? 普通であれば累計データをデータベースに持っていなければいけないことなんてないと思うけどなあ?
まあ、そうなんだけど。 経理の現場では、出納帳見ながら**月**日現在の残高を銀行に預け入れ手配して出納帳記入とか、入力しながら**月**日現在の残高見てA社に支払い指示して入力とか、日常茶飯事。 出納帳に入力中に、残高が先月と比べて変だから入力漏れに気付いたり。 データベース的じゃないんだけど。
そう、857の方法だと、プレビュー見るってことになる。 出納帳はExcelでどう?
データベース的じゃない処理だって判ってるなら データベースじゃないエクセルとか桐とか使ってればいいんじゃね?
残高のプレビューも一々超時間掛るんだなこれが、数字コピペ出来ないしな。 AccessよりExcelとか桐とかが良いよな。
ちょっち違うど アクセスでもVBAで組んで累計書き込めるから、桐では最初からコマンドに用意されてるだけ 桐では定型処理・想定される処理が予めコマンドに用意されてる、アクセスでもVBAで組めば出来る 四捨五入とか年齢計算とか順位とか併合処理とか補集合とか、VBAで組むと死にそうになる
>四捨五入とか年齢計算とか順位とか併合処理とか補集合とか、VBAで組むと死にそうになる もうちょっとがんばりましょう。
>>863 ねえ君ぃ、ちなみに、そのなかで一番簡単そうな四捨五入、の関数作って書いてみて、
Function_四捨五入([テーブル・クエリ名],[フィールド名],[四捨五入する小数点桁])
863じゃないが、[テーブル・クエリ名]って必要なのか? Function_四捨五入([対象],[四捨五入する小数点桁]) だけでいいような気がする。
もちろん、[対象]がマイナス値も正しく機能しないとな それと[四捨五入する小数点桁]にマイナス値を指定したら、-2指定とかだと少数点以上桁、10の位で四捨五入
「Access 四捨五入」のキーワードでググったらいちいち検証するのが面倒くさいくらい出てくるけどなあ?
んなことは、ここで回答とか雑談するやつには解り切ったことだろう。 MSのサイトにだってあるんだし。 それを自力で作ることで、応用力とかが養われるんじゃね? Mid関数だって、leftとRightを使えば作れたはずだし。 まぁ、基本はパクって使用しているわけだがw
つまり作らなくても最初から#四捨五入とかがある桐を使っているやつは 応用力のかけらもない○○だと言いたい訳だね(w パクるのも応用力のひとつだと思うけどね。 一応本当にちゃんと動くかの検証も必要だし、バカでもできるってわけじゃない。 いいじゃん、ちゃんと動けば。
マイナス値の四捨五入はJIS基準の、 つまり -1.2345 の 小数点以下3桁の結果が、-1.235 でOK? Function cRound(ByVal tempValue As Double, tempKeta As Long) As Double '四捨五入する Dim tempKekka As Double '移動桁結果 tempKekka = Int(tempValue * 10 ^ tempKeta + 0.5) cRound = tempKekka / 10 ^ tempKeta End Function これでいいんじゃないか? 違う場合は教えてクレクレ。
基本はパクリ MSのサイトにある四捨五入は対象がマイナス値だと四捨五入でなく四入五捨になる件(笑) ダメだろ
>>871 そうなのか?
生憎四捨五入をあまり必要としない業種なものなので知らんかったわ。
必要になったとしても、都度870のようなコードを書き込んでいた。
BASIC使ったことのある人なら、違和感ないんだろうな。
>>869 そこまでは言わないけど、原理(と基本的関数の相関関係)がわからないと応用はできないはず。
逆に必要とする関数がなかった場合、桐のライトユーザーは困るんじゃないのかな。
ネタがない時は桐の話題で遊ぶのも良いな
Excelよりもうちょっと進んだことをやりたいって場合には桐はピッタリだ。 Excelはだいたいわかったから次はAccessをマスターしたいというユーザーが多いのだけど、だいたいが挫折する。 そういう人にはむしろ桐を薦めたい。 Accessは本格的データベース開発システムのサブセットという面がある。 手っ取り早い道具としては桐は素晴らしい。桐で満足している人にAccessを薦めてもしょうがない。 でも現在のプログラムの本流とはかけ離れている。 Accessは簡易ながらも本流から離れていない。 本格的データベース開発システムを指向しながらももっと簡易にシステムを作りたいという場合には最適だと思う。 ということでわざわざ桐の利点なんざ教えてもらわなくても結構なんだよね。
>>871 はい、VB6の本の最初に出てくるアルゴリズムだよね。
対象がマイナス値の時に、求める値が「負の無限大へ」か、「値が大きくなる方へ」か。
Function MaxcRound(ByVal tempValue As Double, tempKeta As Long) As Double
'四捨五入する ・・値が大きくなる方へ
Dim tempKekka As Double '移動桁結果
tempKekka = Int(tempValue * 10 ^ tempKeta + 0.5)
MaxcRound = tempKekka / 10 ^ tempKeta
End Function
Function AbscRound(ByVal tempValue As Double, tempKeta As Long) As Double
'四捨五入する ・・負の無限大へ=Excel的 ,JIS Z 8401、規則B
Dim tempKekka As Double '移動桁結果
tempKekka = Int(Abs(tempValue * 10 ^ tempKeta) + 0.5) * Sgn(tempValue)
AbscRound = tempKekka / 10 ^ tempKeta
End Function
AccessのRound関数≠ExcelのRound関数
AccessのRound関数: 最近接偶数への丸め=銀行丸め
JIS Z 8401、規則A
つか、±の符号保持して、 絶対値で四捨五入すれば良いだけの話だろ?
>>876 んと、875 のを使うとして
対象値 -0.5 -1.5 -2..5
Round関数 0 -2 -2
MaxcRound 0 -1 -2
AbscRound -1 -2 -3
ずれたかも。
ずれた....orz 対象値 -0.5 -1.5 -2..5 Round関数 0 -2 -2 MaxcRound 0 -1 -2 AbscRound -1 -2 -3 どだ
適宜脳内修正おながいします。ゴメン。
まあ、Accessはパーソナルデータベースだから、
あちゃあ
>>850 は皮肉で言ったのに誉められたと思ってまた言っている。
>>876 んだ。別に難しいことを考えることはないだろ?
883 :
NAME IS NULL :2008/08/08(金) 22:27:53 ID:FFfuPyeo
じゃ、次はAccessで出納帳作る方法を皆で考えまひょ
>>860 みたいな give up はナシで
>>883 フーーン、なんか883が出納帳をつくる仕事を請け負っていて只でやらせられるような気もしないではないが、
まあ、いいか?
とりあえず一ヶ月単位でいいんだよな?まず一月ごとの残高と貸方借方のテーブルが必要なのかな?
貸方借方のテーブルなんてイラネー IDと年月日と相手先と入金額と出金額と残高あれば出納帳だーーーーーー 入出金は毎日数十件だけで許してやろう リアルで任意時点での残高見ながら入力できれば実務に十分有用だ 出納帳も出来なけりゃ日本の中小企業財務会計に使えねー 諦めてEXCELでやれってか? そりゃそうよ
要するに小学生の小遣い帳だな。
小遣い帳レベルならエクセルで十分、そうでないならSQLServer使っとけでFAでしょ。 実際弥生会計とか勘定奉行とかPCA会計とかそれなりに名が通ってる会計ソフトは みんなバックエンドがSQLServerなんだし、なんでAccessの出納帳にこだわるのか 全然ワケわからんわ・・・
もう、OOo Baseでいいよ。
BASEね。少しは使い物になるようになったのかな? 評価以前にまともに動かなかったけど。 >リアルで任意時点での残高見ながら入力できれば Excelのように入力したいのね。やっぱりExcelでやれば? Accessでやろうとするとえらく面倒なことになりそう。
じゃ桐で決まりだな
俺桐も好きだけど、こういう粘着気質の桐ユーザーは嫌いだ。
桐が累計を簡単に取れるのはデータの中に計算式が入るという桐独特のシステムのおかげ。 Excelに似ていると言えば似てる。 ただデータと計算は分けるべきだというRDBの本来の思想に反する。 ちなみにRDBにはデータの追加という考え方はあっても挿入という考え方は無い。 これをしつこく桐ユーザーは突いてくるのだけど悪く言えば本流から外れているだけのこと。 累計も挿入もどうしてもということであればできるけど面倒くさい。 残高知るだけならSQlで選択してからデータ集計かけたほうが早い。 ちんたらちんたら一行づつ累計計算してもしょうがない。 挿入は見せかけの行番号を作ってそれで並び替えれば出来る。 でも面倒な割りにはたいした実益は無い。
MySQL だと、SQL UPDATE に orderby 使えるから、累計でも連番でも一撃で出来ちゃう件 JET とか ACE でそれが使えれば、凄ぶる便利になるんだがなぁ MySQL に移行しようかな
どうぞどうぞ
>>893 へーーー、MySQLでできるのか?オラクルではできるとは知っていたけど、それは知らなんだ。
おれも移行するかな?JETはいい加減いやになってきたし。
直前レコード値に足していく関数作って、SQL UPDATE orderby
まあ、Accessはパーソナルデータベースだから、
>>896 ああ、なるほどって・・・・・・
直前レコード値を足していく関数?
直前レコード値をどうやって求めるんだ?
いや、求められないことはないだろうけど、ものすごく遅くなるような気がする。
現在レコード値を足していく関数作って、SQL UPDATE orderby
Function 累計(対象項目) As Currency 累計金額 = 累計金額 + 対象項目 累計 = 累計金額 End Function --------------------- 累計金額 = 0 SQL Update Q_現金出納帳 Set 残高 = 累計(入金 ? 出金) order by 年月日,ID
ありゃりゃ、マイナスが化けた × SQL Update Q_現金出納帳 Set 残高 = 累計(入金 ? 出金) order by 年月日,ID ○ SQL Update Q_現金出納帳 Set 残高 = 累計(入金 - 出金) order by 年月日,ID
>>900 おおお、ありがdって…Accessじゃ使えねーのかorz
Accessじゃ使えないのじゃなくて桐でも使えない。 900の妄想言語のなかでだけ使える。
MySQL凄いな
>>901 Q_現金出納帳クエリ内で ORDER BY しておけばおK。
>>905 全然おKじゃない
MS はUpdateするレコード順を保証してない、DBエンジンが都度最適最速の順番を構成して更新する
Access97 までは密かにOKだったらしいけど、JETもマトモな方向に進化してるから最近はダメ
やっぱ、MySQL
はマトモじゃない
909 :
NAME IS NULL :2008/08/10(日) 14:04:47 ID:3q2J+cNG
すいません、初心者の質問なんだけど、 !の使い方がわかりません。 Me!リストでもMe.リストでも違いはないんでしょうか? どういうときに!を使うのでしょうか。教えてください。
910 :
900 :2008/08/10(日) 14:23:59 ID:???
>>909 確か、ドットはアーリーバインディングでコンパイル時に展開、バングは実行時に展開だったかな
ドットの方が早い
911 :
NAME IS NULL :2008/08/10(日) 14:28:50 ID:3q2J+cNG
912 :
900 :2008/08/11(月) 12:57:13 ID:???
>>911 ああ、半分しか答えてなかった
もう見てないかな?
> どういうときに!を使うのでしょうか。教えてください。
大元のクエリーが実行直前に変化した場合、変化する可能性がある場合は、パラメータクエリとか…
ドットではマズイ問題が生じる場合がある、バングなら都度展開だから確実
913 :
NAME IS NULL :2008/08/11(月) 13:07:38 ID:4zxAH/kO
すいません、また超初心者の質問なんですけど、 フォームを表示させるとき、外側のアクセスの枠が目障りなんですけど、 ファームだけを表示させる方法ってありますか。 教えてください。
914 :
NAME IS NULL :2008/08/11(月) 13:09:32 ID:4zxAH/kO
>>912 見てます。ありがとうございました。参考になりました。
>>913 アクセスの枠ってのがどうもよくわからないのだが、
フォーム=>書式=>境界線スタイル=>なし
ではだめなのか?
916 :
900 :2008/08/11(月) 13:58:21 ID:???
>>913 フォームのプロパティでポップアップ選んで最大化したら良いんジャマイカ?
超初心者なら桐も試してみそ?
桐だと、さらにオーバーラップってのもあるから
918 :
NAME IS NULL :2008/08/11(月) 16:08:31 ID:4zxAH/kO
>>916 ありがとうございます。だいたいできました。フォームは子供、孫がいるんですが、全部ポップアップにすると
アクセス作業枠の外にはみ出すことができました。
しかし、最小にすると、フォームも消えてしまいます。
こいつを目触りにならないように処理できないのですかね。
919 :
NAME IS NULL :2008/08/11(月) 16:20:50 ID:4zxAH/kO
やっぱりアクセスじゃアプリ作れないじゃん。桐のオーバーラップは神。
ほんまどんなアプリ開発も桐にしとけでFAやで…
やっぱり、みんな壁紙を見たいわけ?
to KIOSK Form
マクロの作り方についてです。 コマンドボタンX,Y,Zがあり、それぞれモジュールx、y、zが クリック時プロパティとして環境設定されています。 ここで、コマンドボタンX、Y、Zを順に押すマクロを作りたいのですが、 どうすればいいんでしょうか? (結果的にモジュールx、y、zが作動するようにしたいのですl
ボタンを押すマクロは作れないけど、 ボタンを押したら起動するマクロ1つ作って、そこから x、y、z を順に呼べば良いんでない?
>>927 m(__)m デザインモードにして、コマンドボタンX,Y,Zからクリック時プロパティ として張り付いているマクロx、y、zをそれぞれコピーしてマクロウィンドウ に順に張っていけばいいのかな? モジュールはまだ途中だからわかなんいよ。
根本的にマクロというものをなにか勘違いしてないかな? エクセルのように操作を記録する機能はAccessにはないよ。 Accessのマクロは下位互換性を維持するだけにあるだけだと思うよ。 できることが限られている上にけっしてわかりやすくない。
マクロ、モジュール、プロシージャがごっちゃになってない? クリック時に設定されてるのはプロシージャなの?マクロなの?
932 :
通りすがり :2008/09/01(月) 15:26:30 ID:WpgIIdKe
はじめまして ネットワーク越しのリンクテールだと、テキスト型の項目のインデックスが使われません。 ローカルにコピーすると使ってくれます。 showplan.outファイルでも確認しました。 数値型項目だと、ネットワーク越しでもインデックスを使ってくれます。 この件について、なにかご存知の方は教えてください。 よろしくお願いします。
新参者ですm(__)m
桐からAccessに乗り換えようと、初っぱなから半日ほど悪戦苦闘
ひょっと・・・と思ってココでスレ探して
>>892 読んで初めて納得
桐の一括処理を駆使したシステムをAccessに移植するのは、骨が折れそう(>_<)ヽ
で、テーブルに計算式が使えないって事は、クエリで計算してアップデートしろって事でしょうか?
「桐にしとけ」という声が聞こえるような・・・
934 :
892です :2008/09/04(木) 01:23:48 ID:???
>>933 > 桐の一括処理を駆使したシステムをAccessに移植するのは、骨が折れそう(>_<)ヽ
骨が折れるとかなんとかではありません。全面的に作り直しになります。
一応両方ともデータベースだという以外は似ているところはまったくといっていいくらいありません。
> で、テーブルに計算式が使えないって事は、クエリで計算してアップデートしろって事でしょうか?
はいそのとおりです。本来桐のようにデータと計算式が一体になっているというのはデータベースでは異例なんです。
これは桐のユーザーにとっては面倒だとは思うのですが、理論的には別になっているべきものです。
もうひとつ脅しておくと、桐のデータも時々壊れることがありますが、Accessのデータはその何倍も壊れやすいです。
しかも、桐ならばだいたい修復できるのですが、Accessのデータは修復してもだめなまんまということが多いです。
それだけ聞くと、たしかに桐にしとけって話にもなるんですが、桐は閉じた世界です。
桐をいくら勉強しても桐の世界以外にはいきません。
Accessは壊れやすいデータがいやならMySQLなりPosgresqlなり他のデータベースを採用することができます。
桐は一応外部データベースを使えることになってますが、速度の面で問題があるようです。
Accessでデータの更新等に使われるSQLも標準技術ですので他への応用が利きます。
まあ、はっきりいって最初は不平不満たらたらという状態になるはずですが、AccessにはAccessの良さがあります。
桐をやめろとはいいません。桐で間に合うことに無理にAccessを使う必要はないでしょう。
私も時には桐でちょっとしたアプリケーションを作ることがあります。がんばってください。
>>934 早速&長文&脅し付き TNX www
桐はDOS時代から使ってる。
仕事が忙しくて、今まで乗換えできなかったのだが、新しいデータベース構築を機に乗換える事にした。
移植というか、機能的にほぼ同じものを作ろうとしている。
本業は畑違いながら情報処理の心得はあるので、最初のブレークスルー後はなんとかなると思ってる。
時間も少しあるので、このスレ参考にしながら頑張ります。
936 :
NAME IS NULL :2008/09/04(木) 09:49:18 ID:chsIXRcK
初心者です。 Access質問スレがなかったので…どなたか教えて下さい。すみません。 幾つかあるcsvのファイルをAccessで選び、Accessに出力したいのですが… 幾つかあるcsvのファイル一覧を選択肢として、Accessに表示する方法が解りません。 どなたかアドバイスお願い致します。
938 :
936 :2008/09/04(木) 10:25:42 ID:chsIXRcK
ご返答ありがとうございます。 すみません。もう一つ質問です。api関数を使用せずに出来る方法はあるでしょうか。 ありましたら教えて下さい。お願い致します。
>>938 開く→ファイルの種類→テキスト(*.csv)
>>938 巛彡彡ミミミミミ彡彡
巛巛巛巛巛巛巛彡彡
r、r.r 、|::::: |
r |_,|_,|_,||:::::: /' '\ |
|_,|_,|_,|/⌒ (・ ) (・ )|
|_,|_,|_人そ(^i ⌒ ) ・・)'⌒ヽ ・・・はぁ?
| ) ヽノ |. ┏━━━┓|
| `".`´ ノ ┃ ノ ̄i ┃|
人 入_ノ´ ┃ヽニニノ┃ノ\
/ \_/\\ ┗━━┛/|\\
/ \ ト ───イ/ ヽヽ
941 :
892です :2008/09/04(木) 15:59:19 ID:???
>>935 同じく桐はDos時代からえーーーとVer3くらいだったけ?もっと前だったような気もするけど・・・・
まあ、使ってます。
一応私の場合はdBASEIIからデータベースと呼ばれるものはいろいろとやっているのだけど、
一番Accessが面倒でした。
最低でもデータとプログラムの分割はやるべきです。
それから終了時の最適化もやるのとやらないのとでは大違いです。
ちょっとでも動きがおかしいと思ったら空のデータベースを作ってそこへインポートして使ってください。
これである程度安定化します。
桐はそんなことする必要はないぞというのはもっともですが、全然違うものを比較しても無意味です。
>>933 >で、テーブルに計算式が使えないって事は、クエリで計算してアップデートしろって事でしょうか?
テーブルにユニークなキーがあれば残高計算くらいは選択クエリーだけでできたはず
>>942 でも遅くてとても使い物にならないという話だったよ。
944 :
933 :2008/09/04(木) 21:13:43 ID:???
>>941-943 みなさんにレス頂いて、一寸おっかなびっくりw
dBASEU時代は知ってるけど顧客管理をBASICで組んでた。
データベースに触れたのは桐3からだったと思う。
データとプログラムの分割ってホルダーとかパーテーションで割れって事かな?
やりたい事は、生産管理(部品納期や工程進捗)
稼働カレンダーのテーブルから取り掛かったんだけど、
[日付][曜日][稼働]
9/1 月 1
9/2 火 1
:
9/7 日 0
って感じで、曜日を入れたかったのと、土日はデフォで 0 にして、後で会社カレンダーに合わす事に。
そこでSQL文で引っかかったというド素人です。
とりあえず、最初の障害は更新クエリでクリアしました。
最終的には本体完成のリードタイムに合わせて、いつ部品が必要で、いつユニットが組みあがって・・・というもの
よろしければ、続けて質問にお付き合いをm(__)m
・クエリってSQL 1行(のみ)で構成されているもの?(複雑な更新はVBA)
・入力時の既定値に、前行から値を取得して加工する事は出来ない?(DLASTは入力既定値には使えない)
>>938 VBAにDIR関数がある。
古典が嫌いならScripting.FileSystemObjectも使える。
946 :
NAME IS NULL :2008/09/04(木) 23:51:08 ID:31HRRJ0I
【麻生太郎は差別主義者】 (野中引退寸前、最後の自民党総務会で) 堀内の目の前に座っていた野中が、 「総務会長!」 と甲高い声を上げたのはそのときだった。 立ち上がった野中は、 「総務会長、この発言は、私の最後の発言と肝に銘じて申し上げます」 と断って、山崎拓の女性スキャンダルに触れた後で、政調会長の麻生のほうに 顔を向けた。 「総務大臣に予定されておる麻生政調会長、あなたは大勇会の会合で、 『野中のような部落出身者を日本の総理にはできないわなあ』とおっしゃった。 そのことを、私は大勇会の三人のメンバーに確認しました。君のような人間が わが党の政策をやり、これから大臣ポストについていく。こんなことで人権啓発 なんてできようはずがないんだ。私は絶対に許さん!」 野中の激しい言葉に総務会の空気は凍りついた。麻生は何も答えず、顔を 真っ赤にしてうつむいたままだった。 「野中広務 差別と権力」P352
今.NETの案件で帳票出すのに、Microsoft.Reportingとクリレポを調査してんだけど アクセスのレポートって意外と使いやすいのに気がついたわ。とくに、正規化した テーブルの外部キーをそのままコンボボックスの値として渡して、コンボはコンボで マスタの一覧を別に動的に取得しておいて、渡された値でマスタの名称なんかの 文字列を表示できたりするのが便利だ。あとレポートのレンダリングごとに関数を 呼び出してパラメータを動的に変更させたりできるのもいい。
フォームならともかくレポートでコンボボックスって使うか?
あまりスマートな感じじゃないな
フォーム側で制御して、レポートはただ出力されるようにした方がいいと思う。
確かにスマートじゃないけど、別に問題も無いと思うけどなあ?
レポートのフォーマットを頻繁に変えるエンドユーザーに対してはけっこう有効。 「おまいら変えたくなったら自力でやれよ」みたいに。 しかし、金がとれなくなった・・・orz
自分で仕事を減らしたのかw
紙の面積は有限だからよく考えて配置したい。 余計な▼増やされると困るケースもあるよ
>>954 ンッ・・・・・困るケース?
別に▼が印刷されるわけじゃなし、そんなことってあったけ?
最近ではあまり使わないようにしてる(なんとなくスマートでないからって理由)から
よくわからないけど?
>>954 やったことないならやってみれ。意外と便利。
957 :
954 :2008/09/06(土) 00:44:26 ID:???
>>956 逆だ逆、初心者の頃によく解らず使ってたよ
959 :
954 :2008/09/06(土) 09:18:23 ID:???
紙の面積は有限だから余計な▼「の部分の面積」を浪費されると困るってことだよ…
>>959 何をいってるのかさっぱりわからない。
デザイン上は▼表示されるけど、プレビューで見たらその部分も
テキスト領域として印字できるんだから、紙面上は▼も含めて、
コントロールの全領域を表示領域として帳票をデザインすれば
いいだけじゃやないの?
961 :
954 :2008/09/06(土) 15:17:57 ID:???
あれ、そうだったのか?だったら俺の勘違いだ。スマン まあでも白背景に文字だけ印刷じゃなくてボックスに境界線つけて印字することが多いから 上下余白も設定できない(2007は知らん)コンボボックスはどっちみち使わないんだがな・・・
俺は罫線は線で引くけどなあ・・・
俺は境界線派だな。 いくら会社の仕事とはいえ、本職ではないから 結局は趣味の延長線上。 VBAをガシガシ書くのは好きだが、レポートとかフォームとかは ウィザードでできたものを修正するぐらいに手を抜く。 下手をするとEXCELで作表したものを貼り付けることも。
いいか悪いかは別にして、日本人は罫線だらけの帳票大好きだからな… エクセルが事実上表計算ソフトの代名詞と言えるほど普及してるのに 同じオフィス同梱のワードがネームバリュー今一なのは一太郎みたいに 直感的に罫線引けないからって説もあるほど。
>>964 スペースで桁揃え出来ない時点で終わってます。
スペースで桁揃え(笑)
>>964 ああ、確かに分かる。
罫線のためだけにExcelで文章書いてるのが多い。
会社入ってからWordを1度も使ってない。
>>967 > 罫線のためだけにExcelで文章書いてるのが多い。
電卓片手にExcelで入力。
なにかが間違っているW
かと思えばExcelのセルの幅と高さを揃えて方眼紙のようにしてそこに図面を書く。
確かに見事な図面を書いてはいるんだが・・・・・・なんか違うぞ?
969 :
NAME IS NULL :2008/09/08(月) 17:46:55 ID:VWtMWGtA
Accessで、上書き保存したのに… 反映されない なんてバグありますか? 先ほどから上書き保存しているのですが、一度閉じると… 上書きされてない…。
>>969 アクセスに上書き保存なんて概念あったっけ?という疑問はさておき・・・・・
mdbが壊れている可能性がありますね。
空のmdbファイルを作ってそこに全オブジェクトをインポートしてください。
そのまま使いつづけると完全に壊れてインポートもできなくなる可能性が高いです。
971 :
NAME IS NULL :2008/09/08(月) 20:18:05 ID:VWtMWGtA
すみませんaccess初心者です。業務でaccessを使うことになったのですが…変更しても保存出来なくなりました。 バックアップを開き変更したら保存出来たので…それを使うことにしました。 アドバイスありがとうございます!!
変更とか保存とか本当にAccessなのか使ってるのは…
フォームとかVBAの部分の変更が保存されないってことじゃないの? mdbファイル壊れてるとままあることじゃね
974 :
NAME IS NULL :2008/09/09(火) 11:22:12 ID:Dsded7aI
プルダウンで過去5年(2004 2005 2006 2007 2008)という感じで表示させ、選択出来るようにしたいのですが… オプションの値集合ソースに SELECT year(NOW()-5 〜 とかいれてみたのですが…5年分でなくて困ってます。 クエリで上手く作ることも出来ず悩んでます… どなたかアドバイスをお願いします。
975 :
974 :2008/09/09(火) 11:48:12 ID:Dsded7aI
変なことを聞いてしまいすみませんでした。 VBAの問題でした。
>>974 Value List でデータ直打ち
2004;2005;....;2008
じゃだめなのか?
データ範囲が可変なら VBAで直接作ればいいだけ。
977 :
NAME IS NULL :2008/09/10(水) 05:46:32 ID:xahfvKur
単純なP/L番号生成プログラムをAccessで作成したのですが、排他制御が うまく機能しません。オプションで「排他モードで開く」を選択しても、 実際ファイルを開いたときに .ldbが生成されてしまい、排他制御が利きません。 ショートカットから /excl スイッチというのも試しましたがだめでした。 単純にファイル単位での制御ができればよいのですが、どこを見落としている のでしょうか?
排他って、開く方がするもんじゃないのか?
979 :
NAME IS NULL :2008/09/10(水) 11:55:41 ID:ZEzaTfyG
テーブルAから一つだけ値を指定して、フォームAのコンボAに入れたいのですが… どうやっても #Name? になってしまいます。 VBAかSQLを使うと思うのですが…上手くいかないので…上手い方法をどなたか教えて下さい。
>>979 まずテーブルAから一つだけ値を指定して目的のレコードを抽出するクエリーは作れる?
981 :
NAME IS NULL :2008/09/10(水) 14:49:22 ID:ZEzaTfyG
はい。そこは出来るのですが…フォームのテキストボックスに入れることが出来なくて困ってます。
982 :
981 :2008/09/10(水) 16:25:05 ID:ZEzaTfyG
すみません。 なぜか一旦ACCESSを閉じて開いて…みたら… 何故か解りませんが…出来ました。 ありがとうございます!!
983 :
NAME IS NULL :2008/09/11(木) 00:39:06 ID:bBXAVZRa
>978 アクセスでは「排他的にファイルを開く」というイメージのようですが そのように開いた後も、同ファイルを別ユーザが開くことができるので 困っております。
排他制御が必要不可欠ならSQLServerその他のRDBMSに乗り換える必要あり
>>983 ファイルを開く時にフラグを立てて、そのフラグが立っている間は別のユーザーが開けないようにすればいいんじゃない?
例えばtest.mdbならtest.lkというファイルを作ってそれをフラグとして使うとか?
というかファイル単位の排他制御がなんで必要なのか良くわからない。
漏れの2003はふつうに排他制御利くけどな。 逆にどういう状況だと利かないのか、そっちの方が知りたい。 まさか詳細オプションを排他モードにしたけど、開くときは いつもどーりファイルをダブルクリックしちゃってました、って オチじゃないだろーなw
ダブルクリックしたら「他の人が開いてるからダメです」的なメッセージで 拒否ってほしいってことでしょ、それもコード等一切なしで。 まあ普通に_だから
988 :
NAME IS NULL :2008/09/12(金) 05:27:01 ID:uDSljEeg
>>987 実はそうですが、無理なんでしょうか。エクセルのように読み取りオンリーとか
アクセス拒否がされるとよいのですが。
>>986 オプションは排他モードで、
ファイルを開くときはショートカットから
Target: "ファイル名.mdb"/excl とオプションをつけて開いています。
実際に排他制御が聞いている状態というのはどういう動作をするのか
教えていただけませんか?
また、オプションの
「既定のレコードロック」の部分はどれが選択されているべきでしょうか?
根本的に表計算とデータベースの違いがわかってない気がするのは俺だけ?
1.ダミーテーブルを用意 2.メインフォーム、起動時にダミーテーブルをチェック 3.何もなければ適当なデータを追加して処理続行 4.、ダミーテーブルにレコードが存在したらただちに終了 5.メインフォーム終了時にダミーテーブルのレコードを削除してから終了 これでご所望の排他処理ができますが
>>990 プログラム無しでやることを希望しているようなんだが?
そりゃあ無理?たぶんそうだろうなあ。
992 :
986 :2008/09/12(金) 23:54:57 ID:???
>>988 > オプションは排他モードで、
> ファイルを開くときはショートカットから
オプション設定は、ショートカットから開くときには何の関係もないよ。
あれはファイルメニューの「開く」から開くときだけ関係ある設定だから。
> Target: "ファイル名.mdb"/excl とオプションをつけて開いています。
「Target」というのはよく分からない。
WindowsXPのショートカットにはそういう設定はないから、Vistaかなんかの話?
とりあえずWindowsXPのショートカットの場合、プロパティの「リンク先」って
いうボックスに下のような感じで設定する。
"%ProgramFiles%\Microsoft Office\OFFICE11\MSACCESS.EXE" "排他で開きたいmdbのフルパス" /excl
上はAccess2003の場合のパス。他のバージョンだとアプリのパスが変わるはず。
このショートカットをダブルクリックすると、排他で開く。
アプリのパスを省略すると、排他では開けない(ふつうに共有で開く)。
「excl」というのはあくまでアプリのためのスイッチだから。
排他で開かれているファイルを他の誰かが開こうとすると、こんな風に言われるはず。
'排他で開かれているmdb' は既に使用されているので、使用できませんでした。
自分がいままで使ってきた中では、使い方を間違っている場合を除いて、
排他制御の指定がきかなかったことは一度も経験したことがないよ。
たいして使ってないからあてにはならんけど。
> また、オプションの
> 「既定のレコードロック」の部分はどれが選択されているべきでしょうか?
知らない。
ファイル自体を排他で開くことと関係あるとは思えないし。
べきとかべしとかじゃなく、したいように設定するところじゃないすか?
間違ってたら誰か正しいことを書いてやってくれ。
無理だって言ってる奴は何なの?馬鹿なの?死ぬの?