Access総合相談所 其の23 at BSOFT
Access総合相談所 其の23 - 暇つぶし2ch30:名無しさん@そうだ選挙にいこう
10/02/14 15:54:28
最新ビジネスソフト入荷!
激安販売中!
  URLリンク(wwttww.hostrator.com)

31:初心者
10/02/15 22:01:06
わたしはAccessにはじめてさわろうとする初心者です。
データベースソフトということくらいしか知りません。
きょう初めて勉強中なのですが、言葉がさっぱりわからなくて・・・(><)

下の用語はなんなのかサルでもわかりやすく教えていただけませんか?

「テーブル」・・・
「フォーム」・・・
「クエリ」・・・
「レポート」・・・

32:名無しさん@そうだ選挙にいこう
10/02/15 22:20:33
テーブル=データの入れ物
フォーム=データを入れる画面
クエリ=データの選別や加工するしくみ
レポート=データを印刷する

こんなかんじかな?
例外もあるけど気にしない

33:名無しさん@そうだ選挙にいこう
10/02/15 22:22:01
「テーブル」・・・食卓
「フォーム」・・・投球姿勢
「クエリ」・・・高級魚
「レポート」・・・期末に提出する紙媒体

34:初心者
10/02/15 22:27:56
>>32
ありがとうございます!
初めてさわる人にとってはさっぱりだったので
イメージがわくだけでも助かります!

>>33
受け狙いありがとう
涙がちょちょぎれます
でも平凡すぎ
そんな高級魚いるの?

35:名無しさん@そうだ選挙にいこう
10/02/15 22:32:54
AS/400だとQUERYが胡瓜なんだよな

36:名無しさん@そうだ選挙にいこう
10/02/15 22:41:40
こんな説明で理解できるなんてすごいサルだ!

37:名無しさん@そうだ選挙にいこう
10/02/16 17:58:42
ADOのレコードセットをNewしてフィールドをAppendしてデータをAddNewして追加したんだけど、
これを元にテーブルを作成できる?

38:名無しさん@そうだ選挙にいこう
10/02/16 18:38:26
>>37
ADOX使えばできるんじゃなかったっけ

39:名無しさん@そうだ選挙にいこう
10/02/16 19:06:20
>>37
エスパースレじゃないんだから、やりたいことをなるべく正確に書かないと。
元のテーブルはどこかにあって、そのテーブル定義を使い、
さらに新規フィールドも追加して別テーブルを作成したいということか?



40:37
10/02/17 10:25:26
>>38
どもです、ADOX調べてみまっす!・・・と、ADOX.Tableを使えばよさげですね、ありがとうございます!!

>>39
説明不足すまそ、元テーブルは無いです。
Newしたレコードセットに定義したフィールドを持つテーブルを作りたくて。
自分で CREATE TABLE文を実行してテーブルを作ればいいんだけど、
フィールドを定義してレコードを新規追加したレコードセットのメソッド呼び出し一発で
テーブルを新しく作れたらいいなぁ、と。

41:名無しさん@そうだ選挙にいこう
10/02/17 19:15:44
毎度お世話になっております。

あるテーブル、あるクエリがありまして、テーブルには主要な数値が入っており、
クエリでそれを計算させています。

テーブル
[日付] - [要素A] - [要素B] - [要素C]

クエリ
[日付] - [要素A] - [要素B] - [要素C] - [要素A + 要素B - 要素C]

こんな具合です。クエリの最後の計算させている部分なのですがこの
部分を次のレコードの[要素D]としたいです。

つまり、[要素A + 要素B - 要素C]は次月繰越、[要素D]は前月繰越
という感じです。

どのようなクエリ式をつくると、この前月・次月繰越が実現できますでしょう
か?

42:名無しさん@そうだ選挙にいこう
10/02/17 20:47:27
>>41
前月繰越は
SELECT (要素A + 要素B - 要素C) AS [要素D] FROM [テーブル] WHERE [日付] BETWEEN DateSerial(Year(Date), Month(Date) - 1, 1) AND DateSerial(Year(Date), Month(Date), 0):
かな?(手元にACCESSないから自信ないが・・・)

後はこのクエリとテーブルをFROM句にいれてフィールドを抽出すればいい

43:地愚蔵 ◆mJCLw0MP/o
10/02/17 22:01:27
>>42
サンクスコ

助かったありがとう。


44:名無しさん@そうだ選挙にいこう
10/02/17 22:12:44
【 システム環境  . 】 WindowsXP, Access2007
【 VBAが使えるか .】 はい
【 VBAでの回答  】 可
テーブルAとテーブルBをキーで結合してCSVに出力したいのですが、
結合後のフィールド数が255を超えているためTransferTextを使用せず
VBAに下記のように記述(一部省略)して出力しています。
ただ、データ件数が5万件以上あるので、①の箇所で時間が掛かって
しまい終わりません。
50件で試したところ15分近く掛かりました。
もっと効率よく出来る方法はありませんでしょうか。

Set db = CurrentDb
Set qdf = db.QueryDefs("テーブルA選択クエリ")
Set rsA = qdf.OpenRecordset
F = FreeFile
Open "新データ.csv" For Append As #F

Do Until rsA.EOF
Set db2 = CurrentDb
Set qdf2 = db2.QueryDefs("テーブルB選択クエリ")
'キーは4個あります。
qdf2.Parameters("[ID1]") = rsA.Fields("ID1").Value
qdf2.Parameters("[ID2]") = rsA.Fields("ID2").Value
qdf2.Parameters("[ID3]") = rsA.Fields("ID3").Value
qdf2.Parameters("[ID4]") = rsA.Fields("ID4").Value
Set rsB = qdf2.OpenRecordset・・・・・①
Write #F, rsA.Fields("ID").Value, rsB.Fields("項目A").Value
rsA.MoveNext
Loop

45:名無しさん@そうだ選挙にいこう
10/02/17 23:00:36
>>44
テーブルBの[ID1]~[ID4]でマルチカラムインデックスは作成してありますか?

46:名無しさん@そうだ選挙にいこう
10/02/17 23:21:09
>>45
作成していません。

47:名無しさん@そうだ選挙にいこう
10/02/18 01:04:49
>>44
手元にアクセスが無いからわからないが
1 テーブルAの必要なフィールドを選択したクエリ
2 テーブルBの必要なフィールドを選択したクエリ
を作って1と2の結合は出来ないのかな?
それとも出力フィールド数が255を超えているのか?

48:名無しさん@そうだ選挙にいこう
10/02/18 01:55:27
>>44
まず >>45 の言うとおりテーブルBの結合に使う列にインデックスを作成(重複が少ない列順)。
まだ遅いなら、ループの外で Recordset を開き、ループの中で Seek を使って結合するレコードに移動するようにコードを変更。
まだ遅いなら、列値の取得は列名ではなく、列番号(かField変数経由)で行うようにコードを変更。
まだ遅いなら、ループ中での文字結合を極力減らす(配列に貯めて最後に Join で結合する等)ようにコードを変更。
まだ遅いなら、Access で解決するのは諦める。か、もっと良いパソコンを使う。か、他に方法があったら教えて。

例:
Set tblA = CurrentDb.OpenRecordset("テーブルA", dbOpenTable, dbReadOnly)
Set tblB = CurrentDb.OpenRecordset("テーブルB", dbOpenTable, dbReadOnly)
tblB.Index = "連結に使うインデックス名"
Do Until tblA.EOF
  tblB.Seek "=", tblA(0), tblA(1), tblA(2). tblA(3)
  Write #file, tblA(0), tblB(0)
  tblA.MoveNext
Loop

Recordset は開くたびにテーブル情報を読み取って初期化する必要があるから、何百回もやると重い。
Fields("[ID1]")も毎回一致する名前の列を検索するから、何千回もやると重い(列数が多いと特に)。
文字結合は結合するたびにメモリを再確保するから、何万回もやると重い(文字列が長いと特に)。

>>47
> 結合後のフィールド数が255を超えているためTransferTextを使用せず 
って書いてる。

49:名無しさん@そうだ選挙にいこう
10/02/18 05:34:29
textで半分づつ出して二つのテキストをVBAでつなぐ手もあるかな?

50:名無しさん@そうだ選挙にいこう
10/02/18 10:47:46
>>44
テーブルAとBそれぞれキーの昇順でソートしたレコードセットを用意して、
マージしてキーが一致するものだけをテキスト出力したらいいんじゃないかい?

51:45
10/02/18 16:26:19
>>46
通常、5万レコードから50件抽出するのに15分も掛りませんから、
コードはそのままで>>48さんの言われるようにインデックスを作成してみてください。
マルチカラムインデックスの方がより速いと思いますが、[ID1]~[ID4]に対して
個別にインデックスを作成しても十分すぎる効果があると思います。
これならデザインビューから簡単に設定できますから。

52:44
10/02/18 22:06:52
テーブルBにインデックスを作成し>>48さんの方法で試したところ
無事出力できました。
どうもありがとうございました。

53:48
10/02/19 01:12:59
>>49
なるほど。TransferText で出力できる量の列を別々に出力させて、後で繋ぐのね。
そっちのほうが簡単だし早そうだ。気づかなかった。ありがとう、勉強になったよ。

>>51
個別にインデックスを作成しても普通は1つしか使われないような?

54:名無しさん@そうだ選挙にいこう
10/02/19 16:24:04
バックエンドにMySQLを使用して、フロントエンドにAccess2002という
社内システムを運用中です。

mdbのファイルサイズが約65MBでVBAの総ステップ数が11万行程
あるのですが、ある日Access2007Runtimeで実行させたところ、
ファイルサイズが約14MBまで小さくなってしまいました。

Access2002で最適化してもここまでファイルサイズが小さくならな
いし、ファイルサイズが小さくなりすぎて少し不安になりましたが、
mdbの内容は全く変わっていませんでした。

サイズが小さくなった事で起動時間も早くなり、なんとなく動作も軽快
になったような気がするのですが、これって常識?

55:名無しさん@そうだ選挙にいこう
10/02/19 21:09:58
>>54

>ファイルサイズが約14MBまで小さくなってしまいました
>これって常識?

たぶん常識。mdbって書いてあるんだから間違いないということはないと思うが、
mdbだと、VBAのソースとかも保存されているわけだし。
比べるのだったら、mdeとじゃなきゃ。

56:55
10/02/19 21:11:55
訂正

×間違いないということはないと思うが
○間違いということはないと思うが

57:名無しさん@そうだ選挙にいこう
10/02/20 00:21:12
助けてください。

dBase で 出作られた DBFファイルを Access2Kで取り込んだのですが

日本語が文字化けしてしまいます。

なにかよい方法はあるのでしょうか?


58:名無しさん@そうだ選挙にいこう
10/02/20 00:36:35
>>57
2002だと5、III、IV(文字化け対処だからツッコミはしないように)が用意されているが、dBaseのバージョンは大丈夫か?
手間でもいったんテキストにしてインポートしたら。

59:名無しさん@そうだ選挙にいこう
10/02/20 03:48:36
>>57
インポート定義のコードページの設定は大丈夫?

60:名無しさん@そうだ選挙にいこう
10/02/20 07:09:32
access2007が入っていて、access97を使いたいのですが、
どのようにインストールすればいいのですか?
初心者なのでなにもわかりません(+o+)
どなたか教えてくれませんか???
お願いします。

61:名無しさん@そうだ選挙にいこう
10/02/20 10:00:48
初心者にはおすすめできない

62:名無しさん@そうだ選挙にいこう
10/02/20 10:09:38
>>60
1.Access97の入ったインストールCDをCD読み込み可能な光学ドライブにセットする
2.インストール手順に従い、保存先等を設定する。
3.インストール終了までしばらく待つ
4.インストールが終了したら光学ドライブからCDを取り出す。

63:名無しさん@そうだ選挙にいこう
10/02/20 12:46:56
エクセルとアクセスって違うんですか??

64:名無しさん@そうだ選挙にいこう
10/02/20 12:48:01
お引き取りくださいksg!

65:名無しさん@そうだ選挙にいこう
10/02/20 12:48:05
>58
他社製品のため出来ません。

>59
インポート定義はテキスト形式のみ対応では?


いろいろやってみた結果、次の手順でやることにしました。

1.OpenOfficeOrg で読み込む。(OpenOfficeOrgは文字化けしないため)

2.ただし、テキストのベタ打ち(改行もない)のようなので、
 何らかの整形ツールで固定長文字列に揃えて保存する。

3.アクセスで取り込む。





66:メモリ君 ◆7mDj3mSGOQ
10/02/20 18:36:52
>>65
DBF Explorerというツールも便利だよ。

67:名無しさん@そうだ選挙にいこう
10/02/21 06:04:54
流れ読まずに質問。

Accessを5年ぶりに使って受注管理システム作ることになりそうです。
もし、SQL SERVER Express走らせるマシンの用意が出来るなら、Access+SQL SERVERでADP形式がオススメですか?
ストアドプロシージャは使うつもりはありませんが、昔MDPが壊れることが何度かあったのでトラウマになっています。


68:名無しさん@そうだ選挙にいこう
10/02/21 07:17:02
シロウトにはおすすめできない

69:名無しさん@そうだ選挙にいこう
10/02/21 10:28:00
>>67
同時に編集する人数による。一人なら mdb。二人以上なら SQL Server を勧める。
mdb でも同時に編集できる人数を一人に制限しておけば、多人数で使っても結構壊れなかったと思う。
もちろん SQL Server の方が安定しているのは間違いないけど。

SQL Server を使う場合も adp を使う特別な理由がなく、ストアドプロシージャも使わないのなら、
adp はデータベース設計だけに使い、mdb からそれをリンクテーブルとして接続して作った方が楽かも。
mdb の方がレポートとか入力用に一時的な作業用テーブルが必要なとき、ローカルにテーブルを作れる分使い勝手が良いから。

どっちにしてもバックアップは必要だし、開発と保守の手間を考えて選んでください。

70:名無しさん@そうだ選挙にいこう
10/02/21 18:32:13
クエリの抽出条件をフォームコンボボックスから指定して
 クエリの抽出条件: Forms!テストform!コンボ12
としていました

コンボ12にアスタリクスを入力したときに、全件抽出するようにしたいので
 クエリの抽出条件: LIKE Forms!テストform!コンボ12
と書き換え、コンボ12 に * を入力してみましたが、1件も抽出されません

なにか勘違いしていると思うのですが、希望通りにするには、どう設定したら良いですか?

71:70
10/02/21 18:47:00
再起動したら想定通りに動きますた
アクセスのバカやろーーーーーーーーーーー!!

72:名無しさん@そうだ選挙にいこう
10/02/21 21:22:29
access2000を使用しています。
ExcelでAccessのデータを「外部データの取り込み」から読み込んで
別にグラフを作っているのですが、ユニオンクエリを読み込もうとすると
「パラメーターが不足しています。1を指定して下さい」と出てきて読み込めません。
このエラーはどうすればいいんでしょうか。

73:メモリ君 ◆7mDj3mSGOQ
10/02/21 21:50:50
>>72
そのユニオンクエリがパラメータクエリを含んでいる為、開けない
と見た。

フォームか何かの値をフィルタに使っているとか、フラグのための
フィールドにNull値が混じっているとか。

単独でそのユニオンクエリがまず開けるのかどうかを確認。

74:名無しさん@そうだ選挙にいこう
10/02/22 10:04:19
>>56

65MBのmdbをmdeに変換すると、約20MBになりました。

今回はmdbのままRuntimeにて起動→終了しただけでファイルサイズが
激減し、ソースコードの内容も一切変わっていませんでした。もちろんmdb
なので、全ての編集をすることが出来ます。

一体mdbの中でなにが起こったのか不思議でした。

75:名無しさん@そうだ選挙にいこう
10/02/22 10:38:35
>>63

「エクセルとアクセス」って繰り返し言っていると、
ついうっかり「アクセル」って言い間違えることありますよね。オレだけ?

76:名無しさん@そうだ選挙にいこう
10/02/22 15:00:53
>>73
パラメータクエリを使っていないかも、ユニオンクエリ単独で開けるかも
確認してみましたが、問題ありませんでした。

77:メモリ君 ◆7mDj3mSGOQ
10/02/22 19:32:22
>>76
俺も何度か出会ったエラーなんだが、その時は、フラグが必要なフィールドなのに
Nullがあったりした。
なので、1をなにかの列で埋めてみるとか。



78:名無しさん@そうだ選挙にいこう
10/02/22 22:38:16
確かに、ExcelのVBAからSQL投げるとNzとか超基本的な関数で
「1を指定して下さい」エラーになることがあるな

79:メモリ君 ◆7mDj3mSGOQ
10/02/23 06:58:25
>>78
そうそう。俺もよくNz関数使う。

こういう場合、計算式が入っているフィールドを一つ一つ検査するしか
ないんだよなぁ。

80:名無しさん@そうだ選挙にいこう
10/02/23 08:41:46
テーブルが
ID, 親ID, 数字
1, (null),  10
2,  1,   20
3,  1,   30
4,  3,   40
となっています。要するに
1   10
├2  20
└3  30
 └4 40

こういうツリーをイメージしています。
この時に、「自分と配下の数字をすべて合計した表」を作りたいのですが、
クエリだけで表現できませんか?
つまり、
ID  数字合計
1    100
2    20
3    70
4    40
このような表がほしいのです。

81:名無しさん@そうだ選挙にいこう
10/02/24 10:13:28
>>75
エクセルとアクセス、エクセルとアクセス、……エクセスとアクセル

あれ?

82:名無しさん@そうだ選挙にいこう
10/02/24 10:27:07
>>80
クエリを複数使えばできる。応援するぞ、頑張れ。

83:名無しさん@そうだ選挙にいこう
10/02/25 23:32:45
Access でモノクロ印刷できねーの?
Acrobatみたいにモノクロ2値で出力設定もないし、桐みたいにモノクロ前提のデザインもないし
ウィザードでレポート作ったらカラーになるし、背景色を全部白にしてもプリンタはモノクロインクじゃなくカラーインク配合して出力して汚い

84:名無しさん@そうだ選挙にいこう
10/02/25 23:39:40
アクセスで印刷しようとしてる時点で…、桐にしとけ。

85:名無しさん@そうだ選挙にいこう
10/02/26 01:01:28
>>83
プリンタ側で設定すればいいんじゃね? 
もしくはVBAやVerによってはAPIで。
そもそも白黒印刷前提で色を使用しているのが解らん。
もしかして、フォームを印刷しているとかか?
カラーインクジェットとモノクロレーザーを持っているから
理解に苦しむ悩みだが。

86:名無しさん@そうだ選挙にいこう
10/02/26 08:31:05
2007や2010でリボンのレポート作成でレポート作ると勝手にカラーになっちゃうのです
勝手に代替えの行とかに色付いて、ヘッダーに勝手にカラーでロゴ入ったり
もー、使いにくいです

87:メモリ君 ◆7mDj3mSGOQ
10/02/26 09:16:11
>>86
最後のデザイン指定のところで、ナニもないタイプを選ぶわけだが
それがどれなのかわからない上に、自分のテンプレを登録できる
わけじゃないのがなぁ。それよくわかるよ。

毎回だから一番シンプルな2003を選んで修正しているよ。


88:名無しさん@そうだ選挙にいこう
10/02/26 10:19:00
>>86
>2007や2010でリボンのレポート作成でレポート作ると勝手にカラーになっちゃうのです

そりゃ酷い仕様だな。簡単なのは白黒印刷用にプリンタを登録してしまう方法だろう。
たぶん、モノクロ印刷設定ができると思うのだが。
Accessレポートの利点は使用プリンタを指定できるところだと思うのだが、
2007や2010だとその機能もなくなっているのか?
VBAとかでできるのかもしれないが、ドライバインスコのほうが簡単なので俺はそうしている。
モノクロ印刷じゃなくて、両面印刷なんだけど。


89:名無しさん@そうだ選挙にいこう
10/02/26 10:44:07
プリンタでモノクロ設定するとグレートーンになってバッチイなぁ。
純白なエリカ様のようなバージンな清々しい印刷はメンドイ。

90:名無しさん@そうだ選挙にいこう
10/02/26 11:03:44
>>89
メーカーとか朱によって違うのだろうが、黒インク持ちのやつは
「カラーインクを使わない」とか「白黒2値」とかの設定がないか。
もしくは、プロファイルで白黒印刷とか。
でも白黒印刷を多用するなら、モノクロレーザーを買ったほうが
経済的だとは思うが。綺麗だし。
家庭用だったら、2万程度で買えるんじゃないのか。

91:名無しさん@そうだ選挙にいこう
10/02/26 11:07:42
ACCESSのSQLの質問です(基本的なことですまんorz)
テーブルのある項目に何種類の値が入ってるか件数を取得したいのだが・・・どうするんだっけ??
ORACLEでは" select count(distinct ある項目) from テーブル"でいけたと思うんだが、
ACCESSでは「distinctをそこで使うんじゃねえ」エラーが出ちゃうのん...orz
副問い合わせする方法なら思いつくんだが、副問い合わせしなくてもいい記述があるなら教えてくださいませ。

例)以下の状態で、項目1には2種類の値("AAAAAAAA"と"BBBBBBBB")が入ってるので2を取得したいっす。
 [項目1] [項目2]
 AAAAAAAA xxxxxxxx
 AAAAAAAA yyyyyyyy
 AAAAAAAA zzzzzzzz
 BBBBBBBB xxxxxxxx
 BBBBBBBB yyyyyyyy

92:名無しさん@そうだ選挙にいこう
10/02/26 11:16:19
>>91
SELECT DISTINCTROW テーブル.項目1, Count(*) AS テーブルのカウント
FROM テーブル
GROUP BY テーブル.項目1;

ウィザードの集計を使ってみたけど、こういうことでいいの?


93:91
10/02/26 11:17:24
ああ、すまん。投稿してから間違いに気づいたorz

94:名無しさん@そうだ選挙にいこう
10/02/26 11:19:01
さらに間違えた。93の名前欄は92ね。

95:91
10/02/26 11:21:15
>>92-93
どもです、結構むずいでしょorz

96:名無しさん@そうだ選挙にいこう
10/02/26 11:28:25
>>91
クエリで固有の値プロパティ設定してカウントして、SQLビューで見れば答えが書いてある

97:91
10/02/26 11:55:18
>>96
どもです。それが・・・以下のような結果しか返してくれなくてorz

SELECT DISTINCT Count(テーブル1.項目1) AS カウント FROM テーブル1;
結果
[カウント]
5

SELECT DISTINCT Count(テーブル1.項目1) AS カウント FROM テーブル1 GROUP BY テーブル1.項目1;
結果
[カウント]
2
3

>>94 気にしないでねw

98:96
10/02/26 12:12:38
ああ、勘違いゴメン

99:91
10/02/26 13:11:34
>>98
いえいえ、アドバイスどもです。

100:名無しさん@そうだ選挙にいこう
10/02/26 20:54:46
あるシミュレーションデータの生成を行うプログラムを作りました。

固定データのあるテーブル そして変動要素のあるテーブルの二つがあり、
それぞれを演算させて、1行ずつ、計算結果のテーブルへと指定した月数
分データを入れていく。

変動要素には何年目もしくは何ヶ月目の変数が格納されており、ジェネレート
する時の月数を素に今はDLookupで毎回ルックアップして変数を取り出し、演算
して、計算結果テーブルへと格納しています。

ただ、この変数がかなりの量でForループで廻しているわけなのですがもの凄く
遅いです。かなりマシンパワーを必要とします。Dlookupよりも効果的で速度の出
る何か秘策は有りませんか?



101:名無しさん@そうだ選挙にいこう
10/02/26 21:04:54
俗に言うSQLで一撃系に書き換えるしかないよ

102:名無しさん@そうだ選挙にいこう
10/02/26 21:30:52
Dlookupが必要な時点でテーブル設計間違ってる

103:名無しさん@そうだ選挙にいこう
10/02/26 22:54:40
>>101
およそ20個近く1レコードの中で演算させた結果を格納する列があるのだ
けれど、これ全部SQLで書き直しですか・・・・

userday = iniread("USER", "FY", "")
For CounterY 1 to calcyear
 For CounterM 1 to 12
  with rs
    .AddNew
    !年月日 = DateAdd("m",1," userday)
    !演算結果1 = (SQL文)
    !演算結果2 = (SQL文)
    (中略)
    .Update
  end with
  next CounterM
next CounterY

こんな感じで廻すんでしょうか?


104:名無しさん@そうだ選挙にいこう
10/02/26 23:59:34
>>103
こういうテーブル構造って人間にはわかりやすいんだけど
DB的に後々苦労する筆頭なんだよな。

105:名無しさん@そうだ選挙にいこう
10/02/27 00:14:37
>>104
あのーすみませんが、俺が今つくっているこれは

データベースのテーブルの設計じゃないんですよ。はっきりいって
テーブル構造とか意味ナイんで。

テーブル設計の話はほかでやってもらえます?

106:名無しさん@そうだ選挙にいこう
10/02/27 00:24:51
あちゃー

107:名無しさん@そうだ選挙にいこう
10/02/27 00:28:13
>>105
そうなの? あなたの質問が速度を速くしたいというものだったから
DBには不向きなテーブル構造をしているよって書いただけなのに。
できるなら力になってあげようと思ったけど、俺は抜けた。

108:名無しさん@そうだ選挙にいこう
10/02/27 08:21:58
2抜けた

109:名無しさん@そうだ選挙にいこう
10/02/27 09:41:50
>>107
Dlookupをわざわざ使っている時点でそもそも、そういう話にならない。

というより、極めて簡単な資金繰りあたりのシミュレーションを作ってみる
といい。テーブル設計なんてできないから。



110:名無しさん@そうだ選挙にいこう
10/02/27 11:04:38
DLookUpが特段に遅いということではないと思うなぁ、俺は。
多用してると「んっ?」と思うことあるから、パフォーマンスを上げるにSQLに代替する
事があるけれども、超絶に良くなるということはないのでは?
さらなるパフォーマンス上げるには結果的にテーブル設計如何にかかってくるとことが多
いと思うんよね。テーブル設計なんてできねってんなら、マシンスペック上げるか、Access
を使わなくてもいいってことじゃね?

投げた質問の意図しない回答に対し必要以上に突っかかるのは格好わるいぜ

3抜けた

111:名無しさん@そうだ選挙にいこう
10/02/27 11:55:29
最初から参加さえしていない俺勝ち組

112:名無しさん@そうだ選挙にいこう
10/02/27 12:30:13
俺はあんまり頭悪くないんだけど今回はたまたま質問してるだけって気持ちが
こういう上から目線の書き込みになっちゃってるんだろうな。

まあこんな態度じゃ目的の解答がどんどん得にくくなるってことに気付いてない時点で
壊滅的に頭悪いわけだがw

113:名無しさん@そうだ選挙にいこう
10/02/27 13:22:28
質問の仕方が悪いよね。最初から
「DLookupより断然高速で、DLookupと同等の機能はありませんか?」
って聞けばよかったのに・・・

114:名無しさん@そうだ選挙にいこう
10/02/27 13:58:02
         ____   
       / \  /\ キリッ
.     / (ー)  (ー)\      
    /   ⌒(__人__)⌒ \    <あのーすみませんが、俺が今つくっているこれは
    |      |r┬-|    |      データベースのテーブルの設計じゃないんですよ。
     \     `ー'´   /      はっきりいって テーブル構造とか意味ナイんで。
    ノ            \      テーブル設計の話はほかでやってもらえます?
  /´               ヽ              
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.    
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))


          ____
        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ    <だっておwww
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)
| / / /      |r┬-|    | (⌒)/ / / //  
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/
|     ノ     | |  |   \  /  )  /  
ヽ    /      `ー'´      ヽ /    /     
 |    |   l||l 从人 l||l      l||l 从人 l||l   バ   
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、 ン
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒)) バ
                             ン

115:名無しさん@そうだ選挙にいこう
10/02/27 14:06:27
あ~あ、もう来ないんだろうな。

116:名無しさん@そうだ選挙にいこう
10/02/27 19:00:43
>>105
じゃ、なんでここに書き込んでんだよ

117:名無しさん@そうだ選挙にいこう
10/02/27 22:17:17
Forms!出納帳 を作って並べ替えました
[年月日]で昇順にして、同一[年月日]内では[ID]昇順です
[ID]、[年月日]の順で並び替えしたらそう出来ました

その並び替え順の状態で、特定のレコード以前のレコードをフィルタするwhere句はどう書けばよいですか?

118:名無しさん@そうだ選挙にいこう
10/02/27 22:59:21
>>117
[年月日]<特定レコードの[年月日] or ([年月日]=特定レコードの[年月日] and [ID]<=特定レコードの[ID])
って感じじゃなかろうか。

119:名無しさん@そうだ選挙にいこう
10/02/27 23:27:08
>>118
どうも有難うございます

帳票フォームで狙ったレコードにカーソル置いてDSUMのcriteriaに入れたいのですが、なんか大変そうですね
&とか'とか"とか、どう書いたら良いか解りません


120:名無しさん@そうだ選挙にいこう
10/02/27 23:43:02
>>119
じゃあ勉強しなよ

121:名無しさん@そうだ選挙にいこう
10/02/27 23:47:22
>>120
教えてください、お願いします

122:名無しさん@そうだ選挙にいこう
10/02/28 11:24:48
>>121
DSUMに拘ってるみたいだけど、出納帳の累計出したいとかじゃないの?

123:名無しさん@そうだ選挙にいこう
10/02/28 11:30:10
連投スマソ。
ちなみに
DSum("列名", "テーブル名 or クエリ名", "条件式") だけど
レコード多いと劇遅だよ。

124:名無しさん@そうだ選挙にいこう
10/02/28 11:33:05
>>123
それ言ったら代替策ないでしょ?



125:名無しさん@そうだ選挙にいこう
10/02/28 11:47:39
>>122
テーブルに累計書き込まずに、フッターとかの非連結テキストボックスに特定レコードまでの合計を表示したいのです
必要な時だけボタンを押して表示する感じ

126:名無しさん@そうだ選挙にいこう
10/02/28 12:46:31
桐にしとけ

127:名無しさん@そうだ選挙にいこう
10/02/28 15:47:22
>>125
ADOでいいんなら作ったやつアップできると思うがいるか?

128:名無しさん@そうだ選挙にいこう
10/02/28 16:27:12
>>127
ご親切に有難うございます
なんとか自分で解決しました
>>118 さんのアドバイスでクエリ作って、それをdomainに指定してcriteriaは省略でできました
あっさり過ぎて拍子抜けです

129:名無しさん@そうだ選挙にいこう
10/03/02 23:15:38
DDoS糞食らえ

130:名無しさん@そうだ選挙にいこう
10/03/02 23:51:01
2000なんだけど、レプリケーションをササッと解除してくれるようなツールないかな。
テーブル作成クエリの作業後に主キーやインデックス、規定値にリレーションシップの
再設定をしなきゃいけないのがどうにも。
知らない間にデザインマスターがなくなってたので、tsrelも退避してくれない。

131:名無しさん@そうだ選挙にいこう
10/03/03 09:22:17
一時テーブル作る時って、どういう命名の仕方がいいのかな。
MDBに複数からの同時アクセスがあるとTMPとかじゃマズいよね。
日時とかから生成するもん?

132:名無しさん@そうだ選挙にいこう
10/03/03 10:55:21
>>131
クライアントのマシンネームでも使えばいいんじゃね?
実際のところは、ファイル共有ではなくてC/Sのかたちにするのが本来だと思うけど.


133:名無しさん@そうだ選挙にいこう
10/03/03 11:31:08
>>132
なるほど、ごもっともです。

MDBへの多数のアクセスはやりたくないんですが、
もし壊れたらそれを言い訳に本格的に開発する時間をもらうつもりです。

134:名無しさん@そうだ選挙にいこう
10/03/03 20:56:58
Accessはパーソナルデータベースソフトです。

135:名無しさん@そうだ選挙にいこう
10/03/04 09:20:39
フロントエンドとして使う場合もあるだろ
・・・と思ったが、今はAccessで本格的に開発することなんてあんまり無いのかな。

器用貧乏なAccessの機能を覚えるよりは、PHP+MYSQLとかVS2008で開発
した方が効率いいし、そのへんの事務員が自分でやるならExcelとかFileMaker
を覚えた方が効率良さそうだ。

136:名無しさん@そうだ選挙にいこう
10/03/04 13:06:29
>>>135
システムの規模によるんじゃないかな。
それに未だにVB6.0やVBAが基本言語の会社もあるだろうしね。

137:名無しさん@そうだ選挙にいこう
10/03/04 15:07:40
短い開発期間に低予算に多出力とくればおのずとaccessに辿り着くような気がする。

138:名無しさん@そうだ選挙にいこう
10/03/04 20:51:56
社内で勝手にMySQLとか使えないし、申請しても許可が下りないんで
Access使うしかないって感じかな…。

139:名無しさん@そうだ選挙にいこう
10/03/04 21:59:18
>PHP+MYSQLとかVS2008で開発した方が効率いいし

ないわ

140:名無しさん@そうだ選挙にいこう
10/03/04 22:56:12
結局、桐が一番良いわけだ

141:名無しさん@そうだ選挙にいこう
10/03/04 23:19:15
ものすごく行き詰まってしまったので、相談させてください。

下記の固定長データをACCESS2000にインポートするにあたり、
ボタン押下でテーブルに取り込みたいと思います。

インポート定義を作成し、手動で定義を適用、インポートすると
定義通りにうまく作成されるのですが、VBAでボタンを作成して取り込むと、
フィールド1に固定長のすべてが入力されてしまいます。
マクロを作成してもうまくいきませんでした。

※DoCmd.TransferText acImportDelim,"インポート定義","テーブル", フルパス, false

どのようにコードを書いたら、定義通りに取り込めるのでしょうか?


-------------------------------------
1001ミツビシ
--------------------------------------
フィールド名 データ型 開始位置 幅 インデックス スキップ
フィールド1 テキスト型 1 1 いいえ FALSE
フィールド2 テキスト型 2 3 いいえ FALSE
フィールド3 テキスト型 5 5 いいえ FALSE


142:名無しさん@そうだ選挙にいこう
10/03/04 23:26:46
>>141
マクロでやってみて、上手くいったらVBAコードに変換すれば間違えてた記述が解る

143:141
10/03/05 00:19:36
>>142

それがマクロでやってもフィールド1にデータが全部入ってしまうのです。
VBAにこだわってないので、マクロでもよいんですが、
手動できるものが、同一定義を指定しながらなぜできないのかなと。

144:名無しさん@そうだ選挙にいこう
10/03/05 00:51:34
DoCmd.TransferText acImportDelim, FS, FS, FN, False, ""
ヒントになるか?

145:141
10/03/05 07:25:48
>>144

ありがとうございます。
会社に行って早速試してみます。

146:名無しさん@そうだ選挙にいこう
10/03/05 15:56:57
これ、ADOで引っ張ってきた複数のレコードをフォームのテキストボックスに
代入しようとしたら、一旦、一時テーブルに格納しないといけないの?

できるだけAccessのフォームの機能でやりたいので、レコードの移動を
フォームプロパティの移動ボタンでやりたかったんだが・・・。

147:名無しさん@そうだ選挙にいこう
10/03/05 15:59:21
もしかして、そもそも非連結で作ろうとしてることが間違ってる?

148:名無しさん@そうだ選挙にいこう
10/03/05 16:02:38
>>146
Formオブジェクトなどにrecordsetプロパティがあるから、これにレコードセットを代入するのじゃ。
でもって、フォームに配置してるコントロールのcontrolsourceプロパティを設定しておけば、
テーブル連結フォームと同様に操作できるのじゃ

149:名無しさん@そうだ選挙にいこう
10/03/05 18:32:42
>>148
神よ!うまくいきやした。
ありがとやんした。Accessが便利だと思えるようになりますた。

150:名無しさん@そうだ選挙にいこう
10/03/05 18:51:08
でもこれでも、フィルタ機能が使えない・・・・・orz

151:名無しさん@そうだ選挙にいこう
10/03/05 20:00:28
>>150
フィルタできないとな?普通使う分には、んなことねぇと思うんじゃが。
URLリンク(homepage3.nifty.com)
ここに答えはないかい?

152:名無しさん@そうだ選挙にいこう
10/03/05 22:53:59
ログインの時のパスワードの解除方法を教えて下さい


153:名無しさん@そうだ選挙にいこう
10/03/06 08:24:56
>>152
Access のバージョンは?

154:名無しさん@そうだ選挙にいこう
10/03/06 13:32:43
VistaSP2&Access2007。フォームにボタン配置しようとしたらAccessが落ちました。
2,3回やっても落ちたので新規DBを作って試してみたらボタンだけじゃなくテキストボックス
でも落ちるようです。ラベルならOK。もしやと思いテキストファイルのエクスポートを試して
見たら落ちました。どうも各種ウィザードのダイアログが開くタイミングで落ちるっぽいです。
クエリウィザードでも落ちたのでたぶん間違いないかと。

Officeを一旦アンインストールしてから再インストールしても同症状でした。
自宅のPCでAccessが使えなくても困ることはあまりないんですが、とても気持ち悪いです。
どこか調べてみるべき点など心当たりはあるでしょうか?

155:名無しさん@そうだ選挙にいこう
10/03/06 14:00:43
>>154
officeにもSP2あるけどまぁ治らん気がする
office入れなおしてだめだったらいい機会だと思ってOSから入れなおす。俺なら。

156:名無しさん@そうだ選挙にいこう
10/03/06 14:06:56
>>154
C:\Program Files\Microsoft Office\Office12\ACCWIZ\UTILITY.ACCDA
を削除してからAccessの修復インストール

結果を報告して

157:名無しさん@そうだ選挙にいこう
10/03/06 15:20:40
>>153
2007です


158:154
10/03/06 15:44:14
レスしていただきありがとうございます。
>>154
office入れ直したときにspを当てる前後でそれぞれ動作確認したんですがどちらでも
Accessは落ちました。
>>156
やってみましたが症状に変化はないようです。

症状的にDLL等の共有モジュールのどれかが壊れてるのかなとも思いますがどれだ
かは判明していません。
ふと気がついてイベントビューワをみたら「障害が発生しているモジュール VBE6.DLL」
となっていたのでこれも削除して修復しましたが変化なしです。

自宅PCだし現状では困ってる訳でもないので、暇つぶしがてら色々やってみて直ったら
報告しますね。

159:154
10/03/06 15:45:31
失礼、アンカミス。
上は>>155の間違いでした。

160:名無しさん@そうだ選挙にいこう
10/03/06 16:04:13
>>157
2007のデータベースパスワードなら現在までHackingされていない、総当たり方法しかない

161:名無しさん@そうだ選挙にいこう
10/03/06 16:14:30
>>124

つい最近試してみたのだが、レコードの数が多ければ多いほど
遅くなるわけだが、代替としては、SQLで記述する方法がある。

ただ、そのままでは意味がないので、関数化して使うのが定石。

これで、もともと作っていたアプリがおよそ30秒掛かっていた作業
が俺の場合には、6秒にまで短縮したよ。ということで、ありとあら
ゆるこういった集計関数使っている場所をSQLに置き換えた。



162:名無しさん@そうだ選挙にいこう
10/03/06 16:18:59
関係ないけど、やり方次第でホント短縮できるよね。
初心者だった頃に見様見真似で作った物が2時間ぐらいガリガリ動いてたのを、それを見たプロい人が手直しして
数秒で計算が終わったのを見た時は感動したもんだ…。

163:名無しさん@そうだ選挙にいこう
10/03/06 16:58:26
>>157です
パスワードが解らないんじゃなくて
起動時に出てくるパスワードの入力の設定を
解除したいということです



164:名無しさん@そうだ選挙にいこう
10/03/06 17:03:21
>>163
2007のデータベースパスワードなら、パスワード解らないと解除できない
2003以前にあったユーザーグループ権限パスワードを2007で使ってる話しなら、それは簡単に解除できる
アプリ作者が独自に起動フォームに作ったパスワードなら、色々と方法はある

どのパスワードよ?

165:名無しさん@そうだ選挙にいこう
10/03/06 19:48:55
>>140 acImportDelim -> acImportFixed で.

166:名無しさん@そうだ選挙にいこう
10/03/06 19:52:35
間違えました
>>141 acImportDelim -> acImportFixed で.

167:名無しさん@そうだ選挙にいこう
10/03/07 05:44:19
>>165
マナーの悪い奴は鮮人認定されてもしょうがなくね?
俺なにも間違ったこと言ってなくね?

168:名無しさん@そうだ選挙にいこう
10/03/07 10:27:10
>>151
解決したでヤンス!
どうもありがとうございました。

rs.CursorLocation = adUseClient
このおまじないが必要でした。

169:名無しさん@そうだ選挙にいこう
10/03/08 12:58:54
2010のDataMacroに期待したんだが、やはり残高計算は出来ないみたいだね

170:名無しさん@そうだ選挙にいこう
10/03/08 13:21:01
桐でも使ってろ

171:名無しさん@そうだ選挙にいこう
10/03/08 17:25:30
Temp = ""
If Me!開始日付 <> "" And Me!開始日付 <> "" Then
Temp = Temp & "日付 between #" & Me.開始日付 & "# and #" & Me.終了日付 & "#"
End If
Me.F_仕訳帳の編集_sub_.Form.Filter = Temp
Me.F_仕訳帳の編集_sub_.Form.FilterOn = True

こういう感じのフォームフィルターを書いてるんだが、書いてていやになってきた。
string.format("日付 between #{0}# and #{1}#",hoge,hage)
みたいに書く方法があったら教えてほしい。

172:名無しさん@そうだ選挙にいこう
10/03/08 18:35:23
>>171
その書き方できたらいいなと思うよね。俺は関数定義して使いまわしてる。
エレガントにしてくれる人がいればと思い書いておく。
Public Function DateCriteria(Optional Date1 As Variant, Optional Date2 As Variant) As String
If IsDate(Date1) And IsDate(Date2) Then
DateCriteria = " between #" & CDate(Date1) & "# and #" & CDate(Date2) & "#"
ElseIf Not IsDate(Date1) And IsDate(Date2) Then
DateCriteria = " <= #" & CDate(Date2) & "#"
ElseIf IsDate(Date1) And Not IsDate(Date2) Then
DateCriteria = " >= #" & CDate(Date1) & "#"
Else
DateCriteria = ""
End If
End Function


173:名無しさん@そうだ選挙にいこう
10/03/08 21:20:34
>>171
関数を作っちゃ駄目なん?
Public Function My_Format(expression As String, ParamArray args()) As String
    My_Format = expression
    Dim i As Long
    For i = 0 To UBound(args)
        My_Format = Replace$(My_Format, "{" & i & "}", args(i))
    Next
End Function

My_Format("({0}, {1})", x, y)

似たコードが多いなら空白チェックも入れて1行で書くとか。
Public Function My_TryFormat(expression As String, ParamArray args()) As String
    Dim i As Long
    For i = 0 To UBound(args)
        If Nz(args(i), "") = "" Then Exit Function
    Next
...

Filter = My_TryFormat("日付 BETWEEN #{0}# AND #{1}#", Me.日付1, Me.日付2)

174:名無しさん@そうだ選挙にいこう
10/03/08 21:46:16
>>172
IsDate(Date1) And IsDate(Date2) の後の Not IsDate(...) 判定は要らないよ。
もし IsDate(...) なら最初の If が成立するので。
Public Function DateCriteria(Optional Date1 As Variant, Optional Date2 As Variant) As String
    
    Dim pDate1 As String, pDate2 As String
    pDate1 = IIf(IsDate(Date1), "#" & Date1 & "#", "")
    pDate2 = IIf(IsDate(Date2), "#" & Date2 & "#", "")
    
    If pDate1 <> "" And pDate2 <> "" Then
        DateCriteria = " BETWEEN " & pDate1 & " AND " & pDate2
    ElseIf pDate1 <> "" Then
        DateCriteria = " >= " & pDate1
    ElseIf pDate2 <> "" Then
        DateCriteria = " <= " & pDate2
    End If
    
End Function

175:名無しさん@そうだ選挙にいこう
10/03/08 23:27:49
Me!開始日付とMe.開始日付が普通に混在してる時点でいやになってきた

176:名無しさん@そうだ選挙にいこう
10/03/09 13:22:39
わりぃ。ちょっとメモらせて
URLリンク(msdn.microsoft.com)

177:名無しさん@そうだ選挙にいこう
10/03/09 17:16:31
ちょいと質問。
小数点以下2桁の項目に整数値と小数値が混ざっているデータの整数値は小数点以降を表示したくないとき、
以下のやり方よりもナイスなやり方ってある?

format([数値項目],iif((([数値項目]-int([数値項目]))*100)>0,"#,##0.##","#,##0"))

178:名無しさん@そうだ選挙にいこう
10/03/09 18:34:33
テキストボックスの書式じゃだめかい?

179:名無しさん@そうだ選挙にいこう
10/03/09 20:22:09
>>175
何が違うんだ?

180:名無しさん@そうだ選挙にいこう
10/03/09 21:02:47
>>177
*100を消す

181:177
10/03/11 10:47:07
>>180
ホントだ、指摘どもです。

182:名無しさん@そうだ選挙にいこう
10/03/12 11:52:18
従業員に使わせるアプリをAccessで作るときは、Ctrl+P とか Ctrl+S とか機能したらマズイんだけど
変なショートカット沢山あるけど、どうしたら良いの?

183:名無しさん@そうだ選挙にいこう
10/03/12 12:24:02
>>182
完全な抑制ができるわけではないけれど、
アクションのないマクロをキーに割り当てって感じ。
URLリンク(office.microsoft.com)
もしくは、イベントで管理じゃね?

184:名無しさん@そうだ選挙にいこう
10/03/12 12:47:22
>>183
ああ有難うございます
一つ一つ潰すんですね(^_^;)

185:182
10/03/12 19:11:27
>>184
フォームのKeyPreview=Trueにして、フォームのkeydownイベントとかで
if Shift>2 then KeyCode=0
で、単独押下と{Shift}+キーの操作以外は一気に取り消せるはず。
{Shift}:1 {Ctrl}:2 {Alt}:4 な。

186:183
10/03/12 19:12:50
おっと間違えたw ↑は183だ

187:名無しさん@そうだ選挙にいこう
10/03/13 00:02:55
>>184
そうは言ってもCtrl+CとかXとかVとかだけは使わせてって要望が絶対出るだろうし
一つ一つ潰すしかないだろ

188:名無しさん@そうだ選挙にいこう
10/03/13 00:58:35
>>185
おお、逆転の発想!

189:名無しさん@そうだ選挙にいこう
10/03/13 09:11:03
2010
詳細なテキストサービス を有効にしないとマトモにスクロールしなくなる
有効にすると、対応してない他の大部分のアプリでは不具合続出
どうすりゃ良いのよ?

190:名無しさん@そうだ選挙にいこう
10/03/13 12:59:29
ACCESSのマクロのフィルタ実行で式ビルダから条件式を実行したときと
クエリで条件式を設定して実行したときに
結果が異なることもあるのでしょうか。

191:名無しさん@そうだ選挙にいこう
10/03/15 11:09:44
ええ?!

192:名無しさん@そうだ選挙にいこう
10/03/15 23:29:06
まさかまた並びが違うから結果が違うとかいう戯言ぬかすんじゃ・・・

193:名無しさん@そうだ選挙にいこう
10/03/16 00:45:29
さぁて、Classでも作るべ。
どんなClassが使っておられるの?みなさん
使い甲斐があるのはなんだろうか
どんな感じで使っておられる?
もしかすっとClass使ってないかな

194:名無しさん@そうだ選挙にいこう
10/03/16 06:38:47
1993恋をした~
あ~

195:名無しさん@そうだ選挙にいこう
10/03/16 09:55:32
ACCESS97のサンプルについてたらしいcontact.mdbを入手する方法ないですかね。
97は入ってるけどインストールは出来ないです。


196:名無しさん@そうだ選挙にいこう
10/03/16 10:00:32
>>190
フィルタって対象がフォームじゃねーの?

197:名無しさん@そうだ選挙にいこう
10/03/16 16:22:18
>>193
クラスモジュールのこと?

198:名無しさん@そうだ選挙にいこう
10/03/16 18:23:19
>>179
Me のレコードソースが変数含んでると、データ滅茶苦茶に狂うだろ

199:名無しさん@そうだ選挙にいこう
10/03/17 02:58:05
>>197
んだんだ
複雑なことがちとつらくなってきてさ、きちんとコーディングしておくべきかと思って。

200:名無しさん@そうだ選挙にいこう
10/03/17 05:38:53
>>199
自分は使ってない、っていうかむしろこちらが参考にしたい
(フォームモジュールもクラスモジュールっていう突っ込みは置いといて)

よく使うのはチェックボックス全部ONにしたりとか
カレンダー呼び出しとかだけど数行で済むからそのまま書いてるし。

201:名無しさん@そうだ選挙にいこう
10/03/17 16:08:46
教えて下さい。
アクセス欲しくてパソコンショップいったら高すぎてとても手が出せません。
かといってフリーソフトで手に入れたアクセスもどきのデータベースは機能がしょぼくてガッカリでした。
色々とくぐっていたらベータ版という無料でダウンロードできるものがあるらしいことがわかったんですが
これは他のマイクロソフトオフィスもまとめてダウンロードしてしまうものなんでしょうか?
ワードとエクセルはすでにあるし、他のオフィスはいりません。アクセスだけ欲しいのです。
下手にダウンロードしたら今あるワードとエクセルを新しいヴァージョンに上書きしてしまうのでしょうか?
ベータ版はサポートないというのでいじりたくないのです。
それにベータ版は本来の製品と比べると機能とか悪いのでしょうか?
どうか詳しく教えてください

202:名無しさん@そうだ選挙にいこう
10/03/17 16:50:34
ごめんな、俺にもよくわからないんだ
googleとMicrosoftならきっと応えてくれると思うぜ

203:名無しさん@そうだ選挙にいこう
10/03/17 16:57:45
>>201
> 下手にダウンロードしたら今あるワードとエクセルを新しいヴァージョンに上書きしてしまうのでしょうか?

下手にダウンロードしても、上手にダウンロードしても、インストールしなければ何も起こりません
インストール最初にカスタムからアクセスだけ選んでインストールしてください

204:名無しさん@そうだ選挙にいこう
10/03/17 17:18:24
ありがとうございます

205:名無しさん@そうだ選挙にいこう
10/03/17 20:40:56
>>200
んー参考にしてもらえるかどうかはわからんのだが、ADO接続/ADO非同期接続/フォーム仕様の共通化
などこさえてみた。数レスまえのショートカットキー抑制の話題がきっかけだったのだけれど、
フォームプロパティのうっかりミスとか面倒でさ、まとめてやっちゃうかと。
宣言部略/Class_Initialize CanCloseFlg = False
Public Sub BindForm(Frm As Form, Optional IsModal As Boolean = False, Optional btnClose As CommandButton, Optional btnQuit As CommandButton)
 Set pFrm = Frm
 With pFrm
  Select Case .DefaultView
   Case acDefViewSingle '0:Single Form/単票フォーム
    .NavigationButtons = False : .RecordSelectors = False ’BackColorとか、Allow系とか(以下略)
  End Select
  .KeyPreview = True : .OnKeyDown = "[EVENT PROCEDURE]" : .OnUnload = "[EVENT PROCEDURE]"
 End With
 pFrm.Modal = IsModal
 If Not btnClose Is Nothing Then Set pbtnClose = btnClose : pbtnClose.OnClick = "[EVENT PROCEDURE]"
 If Not btnQuit Is Nothing Then Set pbtnQuit = btnQuit : pbtnQuit.OnClick = "[EVENT PROCEDURE]"
End Sub
Private Sub pbtnClose_Click()
 CanCloseFlg = True : DoCmd.Close acForm, pFrm.Name
End Sub
Private Sub pbtnQuit_Click()
 CanCloseFlg = True : Application.Quit
End Sub
Private Sub pFrm_KeyDown(KeyCode As Integer, Shift As Integer)
 'キーキャンセル処理
End Sub
Private Sub pFrm_Unload(Cancel As Integer)
 Cancel = Not CanCloseFlg
End Sub
みたいなぁ~。そんなことかよと思わないでくれろ。俺にしては良くやったと思ってる。

206:名無しさん@そうだ選挙にいこう
10/03/17 22:49:08
>>205
うおお…なるほどこれ一つ作っとけばフォームの使い方統一できる訳か…
確かにコード量減るしモジュール側からあらかた設定できるしこれは参考になるわ・・・

207:名無しさん@そうだ選挙にいこう
10/03/18 07:04:04
ACCESS難しいよ。なにこれ。
妙に回りくどくてわかりづらい。

VBAを使った方が簡単そうに思えるが逃げたら負けかな?

208:名無しさん@そうだ選挙にいこう
10/03/18 12:21:06
>>207
別にいいんじゃね? 細かい制御をしようと思えばVBAが必須となるし。
回り道に思えても基本を抑えたほうが後々何かと楽できるだろうけど、
社内SE的な立場なら、早く作れてなんぼだろうよ。
ぶっちゃけ、利用者は内部的にどのような処理が行われているなんかは気にせんだろう。
気にするのはレスポンスと使い勝手、あと当たり前だけど正しい応答だ。
後任者のために─なんて考える必要はないよ。
まず後任者なんてありえないから。どうしても必要なシステムなら
会社が外注に頼んででも同等のシステムを用意するだろうし。

209:名無しさん@そうだ選挙にいこう
10/03/18 13:32:28
>>207
VBAわかるならVBAでやった方が楽。
ACCESSの機能だけで色々やろうとすると何かもうVBで最初から組んだ方が
楽なんじゃないかと思うことが多々ある。
事務員の方が詳しいかもしれん。

210:201
10/03/18 15:55:15
ベータ版をダウンロードしたんですが、その後どうやってインストールしたらいいのかわかりません。

まず『いますぐダウンロード』のボタンをクリックして、『実行』をクリックしてしまったんです。
それでダウンロード完了したのですが、次に何も表示されませんでした。
探したのですがそれらしいプログラムはどこにも保存されておらず、本日付けの意味不明なデータがたくさん見つかりました。
どうしたらいいのでしょうか?
今、『保存』で改めてダウンロードしなおしてるんですが、『実行』でダウンロードしたものは削除したいのですが・・。

211:201
10/03/18 16:07:12
マイクロソフトのよくある質問を見ても、なんだか『保存』してダウンロードする方法しか説明がなくて
だったらどうして『実行』なんていう選択肢があるのか……てっきり実行選択したら、自動的にインストールまでやってくれるかと思ってクリックしてしまったので、どうしたらいいのかさっぱりです。
ダウンロード先は一時ファイルとしか表示されなかったので、全然わからず『ファイル名を指定して実行』で検索しても出てこなかったので


212:名無しさん@そうだ選挙にいこう
10/03/18 17:39:07
>>211
日時指定で検索して、それらしいファイルをかたっぱなしから削除するしかないんじゃないか。
もはやスレ違いどころか板違いな質問だと思うが。

213:名無しさん@そうだ選挙にいこう
10/03/18 20:57:40
>>208
使う人は気にしないよね。

>>209
やっぱり?

ありがとう!吹っ切れました。VBAで組むことにします!

214:名無しさん@そうだ選挙にいこう
10/03/18 23:48:00
DBには興味があるが仕事につながりそうにない
アクセスってみんなどんな場面で使ってるの?
俺の生半可な知識だとDBのユーザー側エンドで使わない人は全く使わなそう
逆に使う人はSQL勉強した方がいいって言いそう

215:名無しさん@そうだ選挙にいこう
10/03/18 23:57:26
>>214
別に仕事につながらないのなら、無理して使う必要はないんじゃない?
似たようなことはEXCELでもできるだろうし。
ただEXCELだとデータをいじられやすくないか。
フォームを使うにしても、ACCESSより一段ハードルが高いような気がするし。
まぁ、顧客管理とか在庫管理なんていうのが比較的ポピュラーなんじゃないの。

216:名無しさん@そうだ選挙にいこう
10/03/19 00:13:47
まぁそうなんだけど知りたいという単純な興味からです
どうせ今求職中の身なので

217:名無しさん@そうだ選挙にいこう
10/03/19 00:17:11
アクセスを当座で見につけてLAN組んでっていうのを考えると
やっぱり在庫管理も顧客管理もエクセルでやってそうですね

218:名無しさん@そうだ選挙にいこう
10/03/19 00:25:27
>>216
たしかこのスレ内だと思ったが、やはり仕事に活かせるシステムを教えてって質問した人がいたけど、
ニッチなシステムが多いから、使っているところでは重宝するが
それ以外の人にはまったく理解不能なシステムが多いっていう回答があったな。
基本的にはまさにそれ。
大元の情報を自分の部署用にカスタマイズとかが多いんじゃない。
まぁ、単独系のシステムも作ったけどね。

219:名無しさん@そうだ選挙にいこう
10/03/19 00:30:20
やっぱり「使える」というレベルになるには深く勉強しろと
なかなか先が長そうですね
でもやっぱりじわじわ勉強はしてみようかな
ありがとう

220:名無しさん@そうだ選挙にいこう
10/03/19 02:35:02
基幹システムのデータベースにAccessのリンクテーブルで接続して
データを抽出、加工してExcelに貼り付けて帳票を作るというのが多い。
いわゆる帳票の一つで、普段良く使う帳票はシステムで作ってあるけど、
たまにしか必要ないとか、イレギュラーなものはテーブルをよく知っている
ヘルプデスクのDBチームが作ることが多い。

221:名無しさん@そうだ選挙にいこう
10/03/19 09:55:04
そういえば昔いた会社で、ACCESSを基幹システムに繋げて見積システムにしてたな。
拠点同士でレプリケーション機能とか使ってるし、すぐにMDBが2G到達するしで、、、、
せめてMSDEにしろよと思いながら、横から生温かい目で見てたのを思い出した。

ACCESSはさ、中途半端に知ってるエンドユーザがうざいんだよな。
安易にテーブルのデータを手修正したり、更新クエリを多用してるのを見てると、
Excelでやるデータ加工よりも手順が確認しずらく危ない気がしてならない。

222:名無しさん@そうだ選挙にいこう
10/03/19 11:12:35
OS-XP access2003

Error 3197 って出てデータ開けない・・・
新しいデータベース作成してインポートも出来ないです
googleで調べてJETCOMPと言う物を使ったけど無理?でした
入力してたテーブルにある基本データだけでも取り出したいのですが無理でしょうか?

223:名無しさん@そうだ選挙にいこう
10/03/19 11:45:13
URLリンク(www.bitpower.co.jp)

224:名無しさん@そうだ選挙にいこう
10/03/19 12:13:27
Access2007、AccessRuntimeでadp→ade作成
クライアントはWindowsXP SP3
サーバーはWindowsServer2003でSQLSERVER2008EE

300件を超える請求先への請求書とその控を印刷します。
フォームのボタンを押したら、請求先ごとにレポート「請求書」「控」を
印刷してクローズ、を繰り返します。

最初の数十件くらいは正常に印刷されるのですが、その後の数百件全て、
日本語(ひらがなや漢字)が全く印刷されなくなります。

よくよく調べてみると、1件印刷するたびに1~2MBの物理メモリを消費しており、
使える物理メモリが無くなったタイミングでおかしくなってしまうようです。

VBAのプログラム上、開いたオブジェクトは全てCloseやNothingで解放してあります。
しかし、1度開いたフォームやレポートが使用した分の何割かは、Accessそのものを
完全に終了させないと解放されないままになってしまいます。

このメモリリークを解消する手立てを探しています。
アドバイスお願いします。

225:名無しさん@そうだ選挙にいこう
10/03/19 12:21:35
>>224
> よくよく調べてみると、1件印刷するたびに1~2MBの物理メモリを消費しており、

Access の問題か?
スプール設定を調べてみろ、指定フォルダの容量とか

226:224
10/03/19 13:55:58
>>225
MSACCESS.EXEのメモリ使用量がぐんぐん増加します。
また、現象が起こった際に、フォーム上のボタンやラベルのキャプションが
一部消えてしまいます。(「印刷」「閉じる」等の文字)
これが、クライアント端末3台、テスト端末2台全てで発生します。

スプール設定というと、プリンタのプロパティの詳細設定でしょうか?
「すぐに印刷データをプリンタに送る」となっていたので、「全ページ分のデータを
スプールしてから…」に変えてみましたが、現象変わりませんでした。

指定フォルダの容量とは、adeファイルの場所のことでしょうか?
CやDドライブにフォルダを作成して、その中にadeを置いて動かしていますが、
Accessが使用する容量をどこかで設定できるのでしょうか?

227:名無しさん@そうだ選挙にいこう
10/03/19 14:11:25
C:\の空きが少なくて \System32\spool\PRINTERS が溢れるんじゃねえのか?
とりあえず、スプールフォルダを空きの大きい別ドライブに指定しろ

228:224
10/03/19 14:34:26
>>227
クライアント端末は今見れませんが、テスト端末ではCドライブの容量は
それぞれ30GB、70GB以上空いています。

連続で印刷しながら、Cの空き容量とspool\PRINTERS内を
モニタしてみましたが、数KBのファイルが出来ては一瞬で消えていくだけで、
特に溢れている様子はありませんでした。

229:名無しさん@そうだ選挙にいこう
10/03/19 15:00:32
2007ランタイムは「Windows Vista」「Windows XP Service Pack 2」のみじゃなかった?

230:名無しさん@そうだ選挙にいこう
10/03/19 15:12:40
>>222
Error Number 3197 はメモ型かOLE 型のフィールドが壊れたときに出るエラーみたい。
VBA を使ってテーブルを開き、壊れているレコードを特定して削除すれば開けるかも。
URLリンク(www.granite.ab.ca)
URLリンク(support.microsoft.com)

231:名無しさん@そうだ選挙にいこう
10/03/19 15:49:17
Runtimeでadpってありなん?
パッケージソリューションに乗るの?

232:名無しさん@そうだ選挙にいこう
10/03/19 15:55:49
>>224
まず、リークの原因を突き止めることだと思う。
他のプリンタを使用した場合は?
印刷時のみ発生するのか?
OLEオブジェクト、サブレポートとかがリークしてないか?

233:名無しさん@そうだ選挙にいこう
10/03/19 16:03:25
>>224
レポートじゃなくて、きちんとデータが取得できてるかどうかシミュレーションしてみたら?
全ての環境で同じ状況ってんだから、コード見直すしかねーべな

>>229
まぁ問題ないと思うけど、そうなってるよね

234:名無しさん@そうだ選挙にいこう
10/03/19 16:14:53
>>224
>請求先ごとにレポート「請求書」「控」を
>印刷してクローズ、を繰り返します。

普通は取引先ごとにグループ化して作るものじゃない?
クローズする必要がわからん。

235:名無しさん@そうだ選挙にいこう
10/03/19 16:18:06
adpってSQLServerから非同期っぽくデータをロードするんじゃねかったけか?
ロードが間に合ってないってことがありえるんかな?

236:名無しさん@そうだ選挙にいこう
10/03/19 16:35:58
スプールやめてみたら。処理が追いついてないんだろう。

237:234
10/03/19 16:41:43
>>224
ExcelVBAでセルを色塗りするツールを作ったとき、セルが多すぎると
Excelが落ちるエラーがあった。
一定数色塗りするごとにブックのセーブをかけると落ちなかった。

仕組みはよく解らんが、OS(Windows)がExcelを立ち上げるとき、
アプリ領域、データ領域、機能ごとの作業領域という風にメモリを確保するらしい。
作業領域は意外と狭く実行中には広がらないようで、これを超えると
エラーになるが、保存処理を行うと開放されるということらしい。

今回のエラーも作業領域不足で、Accessファイルを保存すると
回避できるかもしれないが、Accessの保存はフォームや、レポートの保存で
アプリの保存というのはないんじゃなかったっけか?
だとすると回避策はないかもしれない。

238:名無しさん@そうだ選挙にいこう
10/03/19 16:50:07
そういえばCANONのプリンタってビジネス機でも早いほうのメモリを使うとかなかったっけ。
案外プリンタがメモリを食っているんじゃない?

239:名無しさん@そうだ選挙にいこう
10/03/20 00:34:29

SELECT * INTO [Excel 5.0;Database=c:\0000.xls;].[1-3月] FROM TMP;

とすると、TMPテーブルの内容をXLSファイルへエクスポートできた
のですが、シート名「1-3月」が「__3月」に化けてしまいます。
全て全角で「1-3月」とすると問題無いのですが、
半角文字と全角文字を混在する事はできないのでしょうか?

240:名無しさん@そうだ選挙にいこう
10/03/20 01:09:14
>>239
ダブルクォーテーション " の場合2つ "" つづけるとエスケープできるけど。
- の前に " をつけて [1"-3月] とかでできないかな?

241:240
10/03/20 01:18:47
>>239
ダブルクォーテーションやシングルクォーテーョンで
囲むとできないかな?
["1-3月"]
['1-3月']

242:224
10/03/20 03:37:54
みなさん、レスありがとうございます。
今まではまり込んで、まだ解決できていません…。
切り分けということで、いろいろな条件で動かしてみました。

1.Runtimeを使うので、DBに印刷設定のプロパティ値を保存して、
  印刷前にプレビューで開いて設定値を取得・セットし、印刷する仕組みになっています。
  このプレビューをレポートビューに変更したら、若干メモリ使用量の増加が緩やかになりました。

2.試しに印刷ロジックを全てコメントアウトして、レコードソースとなるデータ収集の
  SQLだけループさせてみたところ、メモリ使用量はほとんど増加しませんでした。

3.VistaSP1上で動作させてみたところ、メモリ使用量の増加はかなり緩やかで、
  運用にまったく問題ないレベルでした。
  また、WindowsServer2003SP2上で動作させてみたところ、XPSP3上より
  変動は激しいものの増加は緩やかでしたが、運用に耐えるレベルではありませんでした。


プリンタもいろいろ変えてやってみましたが、増加量に差はありませんでした。
OLE周りも散々チェックしましたが、リークの原因になりそうな箇所は見つけられません。
また、サブレポートは使用していません。
上記2の件から、印刷時のみの問題だろうと思っています。

メモリの増加具合をタスクマネージャでモニタしていて、気付いたのですが、
例えば印刷前のメモリ使用量が30とすると、「[プリンタ名]で[レポート名]を印刷中…」という
メッセージが出た際に60に増加して、印刷が終わると35になり、後は
65→40→70→45…といった感じに増えていきます。
これが100に達すると、レポートやフォーム上からキャプションやテキストが
消えてしまう、という感じです。

243:224
10/03/20 16:13:56
手を変え品を変えやってみましたが、やっぱり解決しません…。
プリンターのプロパティの詳細設定で「プリンタに直接送る」チェックしてもダメでした。
(「スプールを使わない」というのはこれでいいんですよね?)

224で「使える物理メモリが無くなったタイミング」と書いていますが、
よくよく眺めてみると、「使える仮想メモリが無くなったタイミング」でした。
処理中に物理も仮想も減っていきますが、仮想メモリ使用量が設定の上限に
達したところから、おかしな現象が起こりはじめます。

どうやっても
「Docmd.Open acReport, [レポート名]」でレポート/プレビュー→印刷、
「Docmd.Close acReport, [レポート名], acSaveNo」で閉じた後に、
その分のメモリが解放されません。

試しに、新規accdbファイルを作って白紙のレポートにテキストボックスを数個貼り付けて
OpenClose繰り返してみたところ、白紙なので量は少ないものの、
MSACCESS.EXEの使用メモリがいくらか増えたままになっていました。
請求書の罫線やデータ山盛りの状態だと、その分多いだけで、
これはAccess2007のバグなのかもしれないと思いはじめました…。

244:名無しさん@そうだ選挙にいこう
10/03/20 17:40:50
>>243
1回の作業で1万枚以上印刷しても問題はなかったけどなぁ。VB+mdbの環境だったが。
何かほかの作業をするとボタン等が消えてしまう現象は発生したが、動作的には問題はなかったし。
レコードソースが多段クエリだと、たまに印字されないとかの不具合が発生した気も。


245:名無しさん@そうだ選挙にいこう
10/03/20 18:17:18
>>242
>印刷前にプレビューで開いて設定値を取得・セットし

どんな値を設定してるのかわからんがクエリに値をセットして
レポートのレコードソースにはできないのか?

246:名無しさん@そうだ選挙にいこう
10/03/20 19:39:28
224氏の件、気になって確かめてみた。
Xpクライアント上でメモリが大きく消費されていく状況は確認できた。
環境としては
・Runtimeは、2007のバージョン2/ADOは2.8
・クライアントXpSP3/7-64、mySQL5.1へADO接続
・Report_Openで、ServerにSQL投げてレコードセット取得
解放したいという意味でコマンドを使わずやってみた。
Report_請求書:
 ReportClose時 RaiseEventして呼び出し側に通知
呼び出し側:
 Set rpt = New Report_請求書:rpt.Visible = Trueで呼出し印刷プレビュー表示
 ReportCloseの通知があったら、Set rpt = Nothing
 念のため呼び出し側Close時にも、Set rpt = Nothingをトライ

一応DoCmdでもやってみたけど同じっぽい感じ。
レポート呼び出す毎メモリ消費していくし、呼出し側閉じてもメモリへらねぇ
印刷プレビューしなきゃいいのかも知れんけど、Xp使わない方向でいいかなと俺は思ってる。


247:名無しさん@そうだ選挙にいこう
10/03/20 19:46:54
OSの問題?
Accessの問題?

248:名無しさん@そうだ選挙にいこう
10/03/20 20:08:05
>>247
Accessの問題じゃない? 印刷ってフォーマット時と印刷時イベントがあることから
単純に考えて倍の労力が使われている気が。

249:224
10/03/20 20:15:57
Accessの1ファイルの最大容量が2GB制限
32bitWindowsの1プロセスあたりの仮想メモリ制限が2GBか3GB
このあたりに引っかかっているんだと思います。
Docmd.Closeでちゃんとメモリ解放してくれれば、制限値まで使い切る
ことは無いはずですけど…。

>>244
今のと同じシステムを、
Windows98SE+MSDE(7.0)、Access2000
WindowsXP+MSDE(7.0)、Access2000
動かしているときには、まったく問題ありませんでした。

>>245
レコードソースは、単一のテーブルです。
Runtimeを使う場合、クライアント毎のレポートのページ設定を保存できないので、
そのプロパティ値(プリンタデバイス名、余白、用紙サイズ等)をテーブルに保存しておき、
印刷する前にプレビューやレポートビューで一旦開いたレポートオブジェクトにセットしています。

ただ、試しにこういうロジックを全部コメントアウトして、プリンタも設定も標準のまま
Docmd.Open acReport [レポート名]のみで印刷しても、現象変わりませんでした。

>>246
確認ありがとうございます。
やはり、バグなのか仕様なのか、Access2007でこの現象は再現性があるんですね。
おかげさまで諦めがつきました。

別adpファイルを印刷用に誂えて、メインadpからファイルごとOpen/Closeしつつ、
別プロセスで印刷していく仕組みにしようと思います。

250:名無しさん@そうだ選挙にいこう
10/03/20 21:02:25
ビル「Runtime では印刷させません」

251:名無しさん@そうだ選挙にいこう
10/03/21 11:20:31
アクセスがやっと桐に追いついたかなぁって思ったが、マダマダじゃん

252:名無しさん@そうだ選挙にいこう
10/03/21 14:36:03
【 システム環境  】 WindowsXP, Access2007
【 VBAが使えるか 】 いいえ
【 VBAでの回答  】 否
【 検索キーワード 】 リレーションシップ

業務マニュアルのDBをつくりたいです。個別の業務を副次業務としたメタ業務もあります。
「1チャーハンつくる」「2ラーメンつくる」「3お昼ごはんをつくる」という業務があって、1、2は3の
副次業務であるとき、1を選ぶとチャーハンのつくりかた、3を選ぶとチャーハンとラーメンの
つくりかたと3自身のマニュアルも一度に表示されるクエリーをつくりたいです。
副次のネストのレベルは無制限にしたいです。

そこでつぎのようなリレーションシップを作りました。t業務とt業務_1は同一のテーブルです。
URLリンク(www.dotup.org)

t業務:ID
t業務サブ:サブ業務ID
t業務_1:業務名
t業務内容:内容
のクエリーをつくれば
1 1 チャーハン いためる
2 2 ラーメン  ゆでる
3 3 お昼ごはん 300円以内
3 1 チャーハン いためる
3 2 ラーメン  ゆでる
のような結果が得られることを期待してました。

しかし、リレーションシップの保存後はこうなってしまいます。
URLリンク(www.dotup.org)

そもそもつくりかたがまずいような気もするんですが、どうしたらいいでしょうか?


253:名無しさん@そうだ選挙にいこう
10/03/21 15:43:36
読解力がなくてすまないが、抽出条件でサブ業務ID >=抽出条件で済むんじゃないの?
つうか、業務IDでチャーハン、ラーメン、お昼ご飯だけでよさ気だが。

254:253
10/03/21 15:44:39
<=だたorz

255:252
10/03/21 16:03:26
実際にはグラタンやらハンバーグやら晩御飯やらが順不同で
入力されてるので、単に「お昼ごはんより業務IDが小さい」だけで
その副次業務を抽出することはできないのです。

256:252
10/03/21 17:40:03
つらつら考えてみるに

業務ID 上位業務ID

2    
3    2
4    2
5    
6    4

上のようなテーブルがあるとき、業務IDに2を指定すると

業務ID





のテーブルかクエリーをつくれれば解決なわけです。
こういうのはVBAを使わないと無理でしょうか。

257:名無しさん@そうだ選挙にいこう
10/03/21 20:24:43
>>256
いちおうはできた。

(1) 上位業務IDの2を入れると3,4が表示されるクエリを作る。
(2) そのクエリを基に4から6が表示されるクエリを作る。
んで、(1)と(2)からユニオンクエリを作ったら>>256の結果にはなった。
当然、業務IDに1,3,5,6を指定したときはその値だけが表示され、
4を指定したときは4,6という表示になる。

んでも、2→4→6→ ……と長々と続くときには
その段数分だけクエリを作らなきゃいけないけどね。

もっといい方法はエロい人に任せよう。

258:252
10/03/21 20:41:26
ありがとうございました。
段数無制限で再帰的につくれる方法があるといいんですが。

259:名無しさん@そうだ選挙にいこう
10/03/22 16:18:27
【 システム環境  】 Windows xp, Access2003
テーブルにあるデータ一列に置換で文字を変換(日々増えて、数百あるものを3種類に集約)
→・その結果を反映させて、それをあらかじめ並べてあるピポットで集計
→・これをExcelにシートを分けて、エクスポートって可能でしょうか?

置換しようとしたら、グレーゾーンで押せず、ピポットで型は作ったけど、
反映されず、都度Excelでエキスポートした後に置換、ピポットってやってるのが手間で。



260:256
10/03/22 17:59:52
間口広げます。
VBAでうまい方法があれば教えてください。

261:256
10/03/22 18:11:06
たびたびですみません。
結果はこう出力したいです。

業務ID レベル
2    1
3    2
4    2
6    3

262:名無しさん@そうだ選挙にいこう
10/03/22 22:21:57
>>260
>>261
> 間口広げます。
上から目線かよ

その前に、もう少しわかるように説明してくれ。
何をどうしたいのかよくわからん。

263:名無しさん@そうだ選挙にいこう
10/03/22 22:58:14
>>260
で、>>80との関係は?

264:256
10/03/22 23:03:32
自分の間口広げてみました。

業務ID 上位業務ID


3    2
4    2
4    3

6    2
6    4

上のようなテーブルがあるとき、業務IDに2を指定すると

業務ID レベル
2    1
3    2
4    2
6    2
6    3

のテーブルをつくりたいです。レベルは従属の段数です。
2は直接指定されてるのでレベル1。3、4、6はレベル1の2に従属してるのでレベル2。
6はレベル2の4に従属してるのでレベル3です。

後だしになって申し訳ないですが、ひとつの業務に対する上位業務は複数になる場合
もあります。


265:256
10/03/22 23:05:39
>>263 >>80は別人です。

266:259
10/03/22 23:08:13
自分もアドバイス頂けるとたすかります!

267:名無しさん@そうだ選挙にいこう
10/03/22 23:23:56
>>259
エクスポートではないけんど、コピーしてExcellに貼り付けってできたと思うから、
なんとかかんとか可能な処理じゃね?2003環境ないから責任はとらんぜよ。

>>256
間口広げるのはどうぞご自由になんだが、
こうやってみたけどうまくいかないとかさ、評価や意見を求めるならレスしやすいけど、
ズバリ解答っぽいのを求められてもなぁさらに後だしでしょ。はははは。

268:名無しさん@そうだ選挙にいこう
10/03/22 23:28:56
>>256
よくわからんなぁ。最初の例で言うと要は単品メニューとセットメニューがあるようなものか?

269:256
10/03/22 23:49:34
>>268
そんな感じです。チャーハンのレシピはさまざまな上位グループに従属します。

健康管理-食事-お昼ごはん-チャーハン
健康管理-炭水化物-チャーハン
家計管理-食費-チャーハン
材料-野菜-にんじん-チャーハン

みたいなイメージで。もっときちんと統制掛けないと自分でもわけわかめになりそうですけど
自由度がほしい。


270:名無しさん@そうだ選挙にいこう
10/03/22 23:55:50
もう少しで2010でますね。
64bitにしてみたいけど、アプリ配布先は2007以前+32bitOSが多勢だからどうしようか迷い中だぜ。
runtimeが早めに出てくれたらいいなぁと思う連休最終日。ちょっと鬱。
寝れないのでRibbonUIでも勉強するべ。

271:名無しさん@そうだ選挙にいこう
10/03/23 00:00:46
2010のランタイムはもう出てるじゃん

272:名無しさん@そうだ選挙にいこう
10/03/23 00:08:12
正式にリリースされてないものは、製品の一部としても検収してくれねぇってことよ

273:名無しさん@そうだ選挙にいこう
10/03/23 00:14:23
2010ランタイムは即時に出すって方針で、βでもほぼ同時に出した、製品版でもほぼ同時にでる予定になってる

274:名無しさん@そうだ選挙にいこう
10/03/23 00:24:34
おっほ、そうなのか。
SharePointとの絡みもあるからさほど後にならんだろうと思っていたのだけど、
ほぼ同時なら俺にはありがてぇ話だ。RTMでもほぼ同時になることをお祈りするわ。

275:名無しさん@そうだ選挙にいこう
10/03/23 20:02:22
ACCESS2003を勉強する必要があって、価格.comを調べてみたら
URLリンク(kakaku.com)

2年前は3万円代で買えたのに、同じ店で今は7万円前後と金額が約倍に跳ね上がっています。
その理由をご存知の方いらっしゃったら教えて下さい。
よろしくお願いします。

276:名無しさん@そうだ選挙にいこう
10/03/23 20:04:11
もう入荷しないから

277:名無しさん@そうだ選挙にいこう
10/03/23 20:06:54
早速のお返事有難うございます。
そうですか、じゃあこの値段で買うしかないという事ですか・・・

278:名無しさん@そうだ選挙にいこう
10/03/23 20:08:59
別に無理に買ってくれんでも良いよ

279:名無しさん@そうだ選挙にいこう
10/03/23 20:28:34
別に2003に拘んなくても...という俺は2000でも使いこなしてない

280:259
10/03/23 21:58:49
>>267
ありがとうございました。やっぱり置換、ピボットはExcelエキスポートしてからにします。
何かうまく自動化できないもんですかね?

281:名無しさん@そうだ選挙にいこう
10/03/23 22:11:29
そもそも7万あったら桐が買えるんじゃね?

282:名無しさん@そうだ選挙にいこう
10/03/23 22:13:03
桐か・・・/(^o^)\

283:名無しさん@そうだ選挙にいこう
10/03/23 23:29:07
うん、桐が買えちゃうから、その2003は不要。

284:名無しさん@そうだ選挙にいこう
10/03/24 07:26:02
>>259
後出しになってる時点で終わってる。

質問は「こうやったら、こうなる」という例を
自分で説明できるようになってから。

285:名無しさん@そうだ選挙にいこう
10/03/24 15:35:49
ACCESS 2000+Windows XP

フォームA(表示中)のレコードソースに指定したテーブルに対して
フォームB(フォームAからモーダルオープン)で DELETE & INSERTしてからフォームBを閉じてフォームAに戻ったとき、
フォームAで DELETE & INSERT後を表示したいんだがどうもできないっす。

やってみたこと。
1.フォームAに戻ってきたときに Me.Refresh
2.フォームAに戻ってきたときに Me.Recalc
3.フォームAに戻ってきたときに Me.Requery
4.フォームBをオープンする直前で フォームAのレコードソースを ""にセットして
 フォームAに戻ってきたときにレコードソースを戻す

もしかして無理?

286:名無しさん@そうだ選挙にいこう
10/03/24 17:01:30
>>285
フォームB閉じるときにForms("フォームA").Requeryで出来ないのかい?


287:名無しさん@そうだ選挙にいこう
10/03/24 17:19:21
単に、フォームAのレコードソースに同じものをセットし直せば良いんジャマイカ

288:285
10/03/24 17:37:45
>>286
どうもです、試してみましたが空白表示のままでした。
(念のため追加の許可TRUE、FALSE両方試したけどダメでしたorz)
>>287
どうもです、レコードソースのセットし直しでもなんか動いてくれなかったので、
フォームBからフォームAのコントロールに直接値をセットしたらOKでした。
 例)Forms(FORMNAME_MAKE).項目名.VALUE = Me.項目名.VALUE ※ フォームBのソースで記述

ありがとうございます!

289:名無しさん@そうだ選挙にいこう
10/03/25 03:04:12
リボンのカスタマイズとか自前のリボン作れるようになったんだけどさ
使いどころがいまひとつピンとこないんよね。頭が固くなっちゃったかなぁ

290:名無しさん@そうだ選挙にいこう
10/03/25 11:27:42
けっきょく桐を買いますた。

291:名無しさん@そうだ選挙にいこう
10/03/25 18:11:28
OS: XP pro SP3
ACCESS: 2003(変更できません)

mdbの仕様等が変更できない状態で、
マシンの買い換えが必要になりました。
テーブルは50個で、合計で数万レコードあります。

ハードのスペックでどこまで改善されるかわかりませんが、
core i5(2コア+HTT=4コア) 3.4GHz
core i7(4コア+HTT=8コア) 2.8GHz
どちらがいいのでしょうか?

複数cpuに対応していなければ
周波数が大きなi5のほうがいいのでしょうか?

あと、メモリが前回2GBで、
今回4GB(実質3.3GB)なのですが、
メモリの効果はあるのでしょうか?

MDBの合計容量は1GBもありません。

あと、320GB 7200rpmの内周部と
500GB 7200rpmの内周部を使うのであれば
変化は感じ取れるのでしょうか?
(すべてメモリ上で処理する?)

データベースとハードウェアスペックにどれくらいの依存度が
あるかわかりませんが、可能であれば、
良い状態にしたいのでアドバイスお願いします。


292:名無しさん@そうだ選挙にいこう
10/03/25 18:22:27
そのPCで他に何かの作業をするかどうかは考えないとして、
CPU:前者
メモリ:効果なし
HDD:プラッタ容量次第では感じる


293:名無しさん@そうだ選挙にいこう
10/03/25 19:20:37
OS:xp ACCESS2003です

クエリの並べ替え→昇降順では並び替えられない文字列を、好きなように並べる式ってありますか?
お願いします

294:名無しさん@そうだ選挙にいこう
10/03/25 19:34:45
並び替え用のフィールドをつくる

295:名無しさん@そうだ選挙にいこう
10/03/25 20:38:11
>>291
メモリーを2GBつんでいたのなら4GBにしたところで効果はないだろうな。
でも4GB中2GB程度をRAMディスクにして、そこで作業すれば効果があるかも知れん。

296:名無しさん@そうだ選挙にいこう
10/03/25 20:38:36
おじさんが使いだした頃はAccessでODBC使うとネットワークトラフィックが・・・
とか言われたんだが、今時のギガビットネットワークでも同じなのかな?

297:名無しさん@そうだ選挙にいこう
10/03/25 20:54:08
>>296
仕様自体は変わっていないから通信量は変わらんだろうな。
ただ、相対的に回線使用率は下がっているだろうけど。

298:名無しさん@そうだ選挙にいこう
10/03/25 21:46:45
Me.サブフォーム.Form.Requery と
Me.Sub_サブフォーム.Requery
の違いを教えてください

299:名無しさん@そうだ選挙にいこう
10/03/25 22:01:27
>>298
上はサブフォームのリクエリ
下はメインフォームのコントロールのリクエリ

300:名無しさん@そうだ選挙にいこう
10/03/27 13:50:23
>>299
ありがとうございます

301:あぼーん
あぼーん
あぼーん

302:名無しさん@そうだ選挙にいこう
10/03/31 13:01:39
>>224
メモリリークの問題は俺も過去に経験した。結果、未だ解決できていない。
なのでメモリをたくさん搭載したマシンで動かすという力業をやっている。
URLリンク(virtual.haru.gs)
URLリンク(virtual.haru.gs)

およそ100件の勤怠データを個別にPDF化してメールでそれらを個別に送信
というプログラムを作ったわけだが、これだけでだいたいメモリを1GBちょっと
消費する。

いくらオブジェクトを解放してもVMでつかんでいるメモリの量が減ることはなかった。
だからメモリの少ないマシンでやるとメモリ不足でハングする。

AccessのPDFアドインを使った場合も、ReportToPDF使った場合もどちらも同じ。
やや後者のほうがメモリ消費量が少ない。Accessのメモリリークの問題は既知の
問題だが未だに解決されてないよ。

303:名無しさん@そうだ選挙にいこう
10/03/31 13:46:45
スレチだが、
>>302リンク先の別記事でGoogle Map API KeyをAccessローカルアプリ上でつこうてるよう
に見受けられるね

304:名無しさん@そうだ選挙にいこう
10/04/02 17:12:37
2010 RTM まだかいなっ♪

305:名無しさん@そうだ選挙にいこう
10/04/02 17:21:29
部門内のお仕事便利化ツールをお勉強がてら作りたいな~と思っているんですが、
これから覚える開発環境としてはどちらがお勧めですか?
経験があるのはVBAとPHP+MYSQLくらいです。

1.Access2007+ADO+SQLServer2008Express
2.VB.net Webアプリ+SQLServer2008Express

306:名無しさん@そうだ選挙にいこう
10/04/02 18:54:04
>>305
両者を比較するにはスケールというか何かが違いすぎねか?
手っ取り早く始められるってんなら1.でえーじゃろうがなぁ、
ちょっと色がちがうけどSharePointってのも部門内ツールとして面白いよ

307:名無しさん@そうだ選挙にいこう
10/04/03 23:17:59
3 .桐V9 + Oracle10gXE

これが最強だろ

308:名無しさん@そうだ選挙にいこう
10/04/05 16:28:44
人すくねー。つまらんからRibbonXmlでも書いてひつまぶし。くいてー
<customUI xmlns="URLリンク(schemas.microsoft.com)">
 <commands>
  <command idMso="ApplicationOptionsDialog" enabled="false" />
  <command idMso="FileExit" enabled="false" />
 </commands>
 <ribbon startFromScratch="true">
  <officeMenu>
   <button idMso="FileNewDatabase" visible="false" />
   <button idMso="FileOpenDatabase" visible="false" />
   <splitButton idMso="FileSaveAsMenuAccess" visible="false" />
   <button idMso="FileCloseDatabase" visible="false" />
  </officeMenu>
 </ribbon>
</customUI>

309:名無しさん@そうだ選挙にいこう
10/04/10 21:33:59
桐にしとけ

310:名無しさん@そうだ選挙にいこう
10/04/10 21:49:14
質問です。

Access2007を使っております。今までメニューもフォームで作っていたのですが、
これをリボンで作ることにしました。普通のボタンは設置できて作れたわけなので
すが、以下の問題点がどう解消したらいいのかわかりません。

1.コンボボックスをどうやって設置したらよいのかわからない。
2.そのコンボボックスにとあるレコードをレコードソースとして割り当てたい
3.そのコンボボックスにある値(0番目のIDを対象)をVBAで読みとりたい。
4.そのコンボボックスのソースを更新したい

これらはどうやったらできるのでしょうか?

311:名無しさん@そうだ選挙にいこう
10/04/10 22:12:55
>>310
URLリンク(msdn.microsoft.com)
ここの内容を先に理解すべきかと思う。
1.>>308のようなRibbonXmlを作成する必要がある
2.リボンに配置した要素のコールバック(get~)で設定する
3.リボンに配置した要素のコールバック(on~)で取得する
4.object.Invalidateもしくはobject.InvalidateControlで強制更新し発生するコールバックで更新する。

312:名無しさん@そうだ選挙にいこう
10/04/11 18:42:44
Access 2003でページ設定からの印刷設定が全く保持されないんだけど
これって対処可能なのかな不可能なのかな?

用紙サイズ・給紙方法を毎回変えるのがだるいんだけど Acc2000/Acc2007はともかく2003のはみつからんかった


313:名無しさんφ ◆rNiNKtLPbM
10/04/11 18:58:17
>>312
2007でも当初その問題があったが、バグということで、パッチが出て対処されたよ。

2003でもパッチか何かあるんじゃないかい?

あとこういうのがあった。
URLリンク(www.nbcom.co.jp)
URLリンク(www.bitpower.co.jp)
URLリンク(pinka99.ddo.jp)

とりあえず最新のSPは当てて於くべしでしょう

314:名無しさん@そうだ選挙にいこう
10/04/12 11:41:21
20フィールドあるテーブルで全てを対象に抽出したい場合、どうするのが速度が速いのでしょうか?
検索は曖昧検索です。
フィールドは、テキスト、メモが入り混じってます。

今は、クエリでフィールドを全て一つのフィールドのように見立ててLikeでしています。
ただし結果の表示は遅いです。

315:名無しさん@そうだ選挙にいこう
10/04/12 16:26:16
>>314
20フィールドそれぞれで like検索して orで繋げて試してみたら?

316:名無しさん@そうだ選挙にいこう
10/04/13 15:05:22
tes

317:名無しさん@そうだ選挙にいこう
10/04/14 16:36:35
テーブルのデータをコピーしたいと思います。ただ当DBで他の作業をしたままコピーしたいので
時間よりも処理を軽くしたいと思うのですが、そういうのは可能なんでしょうか?
データのコピー先はLANで接続されたネットワーク越しになります。

318:名無しさん@そうだ選挙にいこう
10/04/14 16:51:16
>>317
MDBファイルを他所へコピーして、そこからテーブルのデータをコピーすれば、
他作業への影響は全く無いんじゃない?

319:名無しさん@そうだ選挙にいこう
10/04/14 19:16:09
test

320:名無しさん@そうだ選挙にいこう
10/04/14 20:50:34
桐ってOracleに接続できるの?

321:名無しさん@そうだ選挙にいこう
10/04/14 23:09:18
桐はDOS時代からオラクル接続が売りの一つ

322:名無しさん@そうだ選挙にいこう
10/04/16 18:34:37
そうだったんですか?初耳だな~

323:名無しさん@そうだ選挙にいこう
10/04/18 19:40:32
何でこんなに高いんでしょう。
三万じゃなく一万五千くらいなら買うのに


324:名無しさん@そうだ選挙にいこう
10/04/18 19:58:02
googleのなら無料だよ!

325:名無しさん@そうだ選挙にいこう
10/04/18 20:05:39
ライセンス体系は見直した方が良いとは俺も思うな。

326:名無しさん@そうだ選挙にいこう
10/04/18 20:36:18
>>324
それは何でしょうか?フリーソフトか何かですか?

327:名無しさん@そうだ選挙にいこう
10/04/18 21:10:33
>>323
通販でアカデミックかアップグレード版を買うべし

328:名無しさんφ ◆rNiNKtLPbM
10/04/18 23:45:31
>>323
長年、Access使ってきた身としては、特に高いとは感じないな。

様々なアプリケーションを作ってきたけれど、十分価格以上のリターン
を得られたし。金だけじゃなくてね。

高いと感じる人は、オフィスとしてのAccessっていう位置付けしか感じ
ない 使っていないからだと思うよ。VBA駆使したり他のデータベース
のフロントエンドとしての使い方だとか、VBの代わりとして使うとかそう
いう開発環境としての使い方はしていないでしょ。

住所録だとか台帳だとか、そういったお決まりで尚かつVBA駆使しない
で作るアプリケーションとかね。さらに一歩踏み込んで開発環境として
使う 使い道を探る 応用してみると、この価格は価格相応だと思うよ。



329:名無しさん@そうだ選挙にいこう
10/04/19 00:00:17
でもMSだからなぁ。
2000でSR-1が来るまでは辛かったぜ。
金もらってもいいと思うくらいのレベルだったよ。

330:名無しさんφ ◆rNiNKtLPbM
10/04/19 00:10:14
>>329
Access2007でも、終了時に最適化を行うと最適化失敗したあげくに
ファイルが消滅するバグがあったよ・・・・あれは最悪だった。

パッチやSPが出るまでヒヤヒヤものだった。

331:名無しさん@そうだ選挙にいこう
10/04/19 01:01:14
>>327
学生じゃないし、グレードアップも何も前ヴァージョン買ってないので。
ベータ版を使用してますよ。使えるうちにデータ作るつもり

332:名無しさん@そうだ選挙にいこう
10/04/19 22:43:14
>>323
Access2007は22,000円位で実売してるだろ
自分はoffice2010へのアップグレードを考えて
アップグレード版のプロフェッショナル買ったけど

333:名無しさん@そうだ選挙にいこう
10/04/22 23:18:21
access2003の以下の症状で困ってます。

1.access2003のレポートでword2003文書を貼り付けて使用していた。

2.パソコンがクラッシュしリカバリ

3.リカバリ後、access2003のレポートに貼り付けた、word2003文書を編集すると
  貼り付けた文書のサイズが小さくなる。

リカバリ前は、貼り付けた文書を編集してもサイズは変わりませんでした。

対処方法はどうしたらいいのでしょうか?



334:名無しさん@そうだ選挙にいこう
10/04/22 23:48:40
パッチをあてる

335:名無しさん@そうだ選挙にいこう
10/04/23 02:27:42
Access2010 RTM 記念sage

336:名無しさん@そうだ選挙にいこう
10/04/23 04:53:58
backstage ちょっとおもしろいねぇ
配布アプリケーションの設定とかに使えそうな気配

337:名無しさん@そうだ選挙にいこう
10/04/23 13:24:10
64bit版で作成したaccdeは32bit版では作動しねぇの忘れてたぁ。ぐぬぬぬ
32→64も同じだぁ。ぐぬぬ

VBA7へのVerUp!

338:名無しさん@そうだ選挙にいこう
10/04/23 14:45:35
まじで?
32→64は問題なさそうだが、そうもいかないの?

339:337
10/04/23 16:47:08
コンパイル結果が64/32で違いがあるんだろね
64ビットで作成されています的なエラーが出て実行できない
ソースコード参照可(accdb)で適切なコード書いてれば、64/32でいずれでも実行できるかと。
一定の範囲内で2007での実行も可能かも知れんね。
マクロとVBAが違うから2007→2010は行けそうだが、2010→2007は動かんかも的な。
バージョンの違いを受けた印象を距離で示すと、
桐- ∞ -2000-2003-----2007----------------2010(32)--2010(64)

いろいろ面倒そうだけど、64bit使いたいのよのぉ。冷静に考えればメリット少ないか。

340:名無しさん@そうだ選挙にいこう
10/04/24 19:11:22
高すぎるが、これって待っていれば新しいバージョンどんどんでて
そのうちに安くなる可能性ってある?(二万円くらいならなんとか)

341:名無しさん@そうだ選挙にいこう
10/04/24 21:19:34
>>340
6月に発売される Access 2010 は既にアップグレード版が \11,813, 通常版が \13,986 だよ。
URLリンク(kakaku.com)

342:名無しさん@そうだ選挙にいこう
10/04/24 22:20:24
ようやく2010のレイアウトに慣れてきたばかりだと言うのに・・・
ところで、何が違うんだ?

343:名無しさん@そうだ選挙にいこう
10/04/25 07:50:48
>>341
おお!サンクス!!

344:名無しさん@そうだ選挙にいこう
10/04/27 08:04:23
長いことjetで使っていたaccessのシステムをMSDEにしようと思っています。
ただデータはサーバー側に置くのは当然として
プログラムは今までどおりクライアントに置いた方がいいのか迷ってます。
サーバーに置いても構わないのならプログラムの修正の時簡単ではいいのですが?
どなたかアドバイスいただけないでしょうか?


345:名無しさん@そうだ選挙にいこう
10/04/27 09:08:26
MSDEってどういう意味で使ってるんだ?
俺が無知なだけなのかもしれないけど。

でも、プログラム修正の手間を考えたらMDBからSQLServerに
接続して使う方が楽なんじゃないかと思うんだけど…。

Thinクライアントで、ってこと?

346:名無しさん@そうだ選挙にいこう
10/04/27 15:24:04
>>344
アップサイジングして終了じゃないか。

347:名無しさん@そうだ選挙にいこう
10/04/27 16:31:43
プログラムはADP内じゃないの?

348:名無しさん@そうだ選挙にいこう
10/04/27 18:47:23
Access2002のファイルを2007に変換したいのですが、
[ホスト名]のユーザAdminが排他的に開いています。データベースが使用可能になった時点で、再度実行してください。
と出てしまい、変換できません。

このファイルをアップサイジングしたいのですが、
一度2007形式にしないとダメなようで困ってます…。


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