Access総合相談所 其の23

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

前スレ
Access総合相談所 其の22
http://pc11.2ch.net/test/read.cgi/bsoft/1251297578/

テンプレ等は>>2 以降参照
2名無しさん@そうだ選挙にいこう:2010/02/09(火) 19:39:32
桐にしとけ
3名無しさん@そうだ選挙にいこう:2010/02/09(火) 19:47:14
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★ OS、ACCESSのバージョンを明記してください。
★ 質問内容は具体的に書いてください。
  ・何がしたいのか
  ・どんな処理を試したか
  ・動作状況など駄目な理由
  テーブル/フォームの構成、クエリ、VBAの内容など差し支えない
 範囲で詳しく書くと、早く回答が得られるかもしれません。
  図解があれば尚良し。
  聞き返さなくても詳細が把握できる質問が望ましいです。
★ 事前にヘルプ・Google等で調べられる範囲は調べてください。
  大概の疑問は検索することで解決します。
★ アドバイスを貰ったら、必ず経過・結果の報告をして下さい。
  ギブアンドテイクで情報を共有しましょう。
4名無しさん@そうだ選挙にいこう:2010/02/09(火) 19:48:57
▼━質問テンプレ ━━━━━━━━━━━━━━━━━
【 システム環境  】 Windows**, Access**
【 VBAが使えるか 】 はい・いいえ
【 VBAでの回答  】 可・否
【 検索キーワード 】 Googleやヘルプでの検索キーワード
5名無しさん@そうだ選挙にいこう:2010/02/09(火) 20:06:16
ACCESS2000総合相談所
http://pc.2ch.net/bsoft/kako/965/965614164.html
ACCESS総合相談所 その2
http://pc.2ch.net/bsoft/kako/1007/10079/1007987001.html
ACCESS総合相談所 その3
http://pc.2ch.net/bsoft/kako/1019/10190/1019087338.html
ACCESS総合相談所 その4
http://pc.2ch.net/bsoft/kako/1027/10274/1027491281.html
ACCESS総合相談所 その5
http://pc.2ch.net/bsoft/kako/1033/10331/1033182163.html
ACCESS総合相談所 その6
http://pc2.2ch.net/bsoft/kako/1037/10378/1037856185.html
ACCESS総合相談所 その7
http://pc2.2ch.net/bsoft/kako/1043/10439/1043996834.html
ACCESS総合相談所 その8(消息不明です)
http://pc2.2ch.net/bsoft/kako/1051/10516/1051630268.html
ACCESS総合相談所 その9(消息不明です)
http://pc2.2ch.net/test/read.cgi/bsoft/1061828549
ACCESS総合相談所 その10
http://pc5.2ch.net/test/read.cgi/bsoft/1075378966/
ACCESS総合相談所 その11
http://pc5.2ch.net/test/read.cgi/bsoft/1089812359/
ACCESS総合相談所 その12
http://pc8.2ch.net/test/read.cgi/bsoft/1106963038/
ACCESS総合相談所 その13 【桐にしとけ】
http://pc8.2ch.net/test/read.cgi/bsoft/1121055646/
ACCESS総合相談所 その14 【桐にしとけ】
http://pc8.2ch.net/test/read.cgi/bsoft/1128486351/
ACCESS総合相談所 その15
http://pc8.2ch.net/test/read.cgi/bsoft/1142586697/
ACCESS総合相談所 その16 【桐にしとけ】
http://pc11.2ch.net/test/read.cgi/bsoft/1157195290/
6名無しさん@そうだ選挙にいこう:2010/02/09(火) 20:09:05
ACCESS総合相談所 その17 【桐にしとけ】
http://pc11.2ch.net/test/read.cgi/bsoft/1175943813/
ACCESS総合相談所 その18 【桐にしとけ】
http://pc11.2ch.net/test/read.cgi/bsoft/1198885955/
Access総合相談所 其の19 【桐にしとけ】
http://pc11.2ch.net/test/read.cgi/bsoft/1216293538/
Access総合相談所 其の20 【桐にしとけ】
http://pc11.2ch.net/test/read.cgi/bsoft/1230971374/
Access総合相談所 其の20 【桐にしとけ】
http://pc11.2ch.net/test/read.cgi/bsoft/1230971374/
7名無しさん@そうだ選挙にいこう:2010/02/09(火) 20:11:34
>>6の訂正
Access総合相談所 其の21 【桐にしとけ】
http://pc11.2ch.net/test/read.cgi/bsoft/1240392946/

以上
8名無しさん@そうだ選挙にいこう:2010/02/09(火) 22:01:36
>>1
前スレ、下手すりゃあと半月は持つかもしれないが、
とりあえず、乙。
9名無しさん@そうだ選挙にいこう:2010/02/11(木) 18:19:21
ところで、一時期注目されていた ADO はいったいどうなったんだろう?
10名無しさん@そうだ選挙にいこう:2010/02/12(金) 11:41:23
Accessではリボンが癌だな
11名無しさん@そうだ選挙にいこう:2010/02/12(金) 16:44:40
今まではExcelを使ってましたが
あまりにも重いので
accessの2003でネットショップの商品管理をしたいと思ってます。

用途が少し違うので参考書片手に勉強してます。

やりたいこと
毎週送られてくるメーカーからの在庫や価格などを
変更したり新製品があれば追加したり
生産終了したら削除したりするだけのデーターになります。

ただ送られてくる価格表などのデーターのフィールドがメーカーで違うので
結局一つずつ確認して打ち直している状態です。

たとえば、楽天ショップやYahooなどのショッピングサイトの商品登録CSV
のビューにメーカーから来るエクセルデーターを簡単に移行する方法や
こうやってみれば良いなどアドバイス頂けたら幸いです。

メーカーから送られてくるデーターを同じような形にしないと無理なのでしょうか?
12名無しさん@そうだ選挙にいこう:2010/02/12(金) 18:37:09
メーカーから送られてくるデーターを同じような形に変換しないと一元管理は無理。個別に管理するならしなくてもいいよ。
13名無しさん@そうだ選挙にいこう:2010/02/12(金) 19:09:59
>>11
まぁ>>12の言うとおりなのだが、整形自体をAccessでやってしまうのも手。
取引先が何社あるのかは知らないが、製品数>取引先だろうから
自動整形プログラムを作る価値はあるのでは。
ファイル名が取引先ごとに一定の規則に基づいて名づけているのなら至極簡単だし
列名付データなら、それでも充分識別は可能だろう。
14名無しさん@そうだ選挙にいこう:2010/02/12(金) 21:29:11
AccessってWindowsに付属するDBエンジンを扱えるVBAとフォームとレポートがセットになってるものだろ
何でフォームとレポートがダメダメで不自由なんだ??
桐にしとけば良いのか?
15名無しさん@そうだ選挙にいこう:2010/02/12(金) 21:44:37
>>14
結局、欧米と日本の表示形式の差異に由来しているんじゃないの?
桐が欧米に展開したとしたら、逆に使いづらいといわれるかもね。
16名無しさん@そうだ選挙にいこう:2010/02/12(金) 21:50:59
Accessってダメなのか?
今日から勉強しようと思ったのに。
データベースソフトらしいけど、Excelの機能で充分カバーできる?
17名無しさん@そうだ選挙にいこう:2010/02/12(金) 21:57:00
>>16
>>14にも書いてあるとおり、DBエンジンはWindowにすでに入っている。
なのでExcelでもADOとか使ってDBを操作することは可能。
Accessは、コマンドオンリーでやらなくてはならないものを
視覚的に操作できるようになっている。
18名無しさん@そうだ選挙にいこう:2010/02/12(金) 22:01:05
>>16
エクセルVBAで入力フォーム作れる人なら、大体はオケ
19名無しさん@そうだ選挙にいこう:2010/02/12(金) 22:03:39
あと2GBという制限はあるが、Excelのように行数制限がない。
また、データ抽出等はExcelよりも高速。
20名無しさん@そうだ選挙にいこう:2010/02/12(金) 22:09:17
扱えるレコード数はエクセルの方が遥かに多いよ
21名無しさん@そうだ選挙にいこう:2010/02/12(金) 22:40:45
>>11
メーカーが送ってくるデータが変更分のみなら、例えばこんな感じ。

メーカー入力データ -> 共通データ への変換
1.メーカー毎のデータ取込用テーブル
 メーカーからの Excel, CSV データを日時を付けて、そのまま追加するだけのテーブル
2.メーカー毎の最新共通データクエリ
 1.のテーブルから各商品の最新日時のデータだけを抽出して、
 メーカー名、品番、品名、価格、在庫などのフィールド名を共通のものに変換するクエリ
3.統合最新データクエリ
 2.の全てのクエリを一つにまとめたクエリ

ショップマスターデータ -> 共通データ -> ショップインポートデータ への変換
4.ショップ毎のマスターテーブル
 ショップデータを、そのまま保存するテーブル(ショップ独自のIDとメーカーの商品との関連付けに使う)。
5.ショップ毎の共通マスタークエリ
 4.のテーブルデータをショップ独自のIDと2.と共通のフィールド名に変換するクエリ
6.ショップ毎の出力用クエリ
 3.と5.を組み合わせてショップ毎のインポート形式に変換するクエリ

毎週の作業の流れとしては、
メーカーから届いたデータを1.に取り込んで、6.の各結果をショップにインポート。
新商品がある場合のみ4.のデータを各ショップからエクスポートしたデータに入れ替え
(新商品が少ないなら手動で必要なデータのみ追加しても良い)。

メーカーとショップのデータがメーカ名、品番などで機械的に関連付けできない場合は
4.を手動で管理する。
22名無しさん@そうだ選挙にいこう:2010/02/13(土) 00:27:55
VBとか.Netとかで帳票作りこんでる人間からするとアクセスのレポートは神らしいよ
23名無しさん@そうだ選挙にいこう:2010/02/13(土) 01:11:08
Accessを学習するのにどんな本が優秀ですか?
いままではBOOKOFFで買ってきた「できるOfficeXP」のAccess部分を読んでPCで一通り操作しただけです。
自分はさいきんPowerPointをさわりはじめた初心者レベルですが、オススメ本の名前を教えていただけませんか?
24名無しさん@そうだ選挙にいこう:2010/02/13(土) 08:52:10
>>22
だな、桐の出力が凄すぎる
25名無しさん@そうだ選挙にいこう:2010/02/13(土) 12:05:26
xlsならよく見かけるのですが、mdbのパスワード解析ソフトは存在するのでしょうか?
ひとつだけ見つけたのですが、試用できないので本当に解析できるかわかりません。
試用可能のものやフリーのものがあれば教えていただけないでしょうか?
msbはOffice2007とOfficeXPで前任者が作成したものです。
26名無しさん@そうだ選挙にいこう:2010/02/13(土) 12:13:57
( ゚,_ゝ゚)バカジャネーノ
27名無しさん@そうだ選挙にいこう:2010/02/13(土) 12:42:47
( ゚,_ゝ゚)
28名無しさん@そうだ選挙にいこう:2010/02/13(土) 12:54:10
自分で解除しろよ、一瞬だ
29名無しさん@そうだ選挙にいこう:2010/02/13(土) 14:32:58
11です

>>21
ありがとうございます!!
参考になりました

これを基に勉強してみます。
30名無しさん@そうだ選挙にいこう:2010/02/14(日) 15:54:28
最新ビジネスソフト入荷!
激安販売中!
  http://wwttww.hostrator.com
31初心者:2010/02/15(月) 22:01:06
わたしはAccessにはじめてさわろうとする初心者です。
データベースソフトということくらいしか知りません。
きょう初めて勉強中なのですが、言葉がさっぱりわからなくて・・・(><)

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

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

こんなかんじかな?
例外もあるけど気にしない
33名無しさん@そうだ選挙にいこう:2010/02/15(月) 22:22:01
「テーブル」・・・食卓
「フォーム」・・・投球姿勢
「クエリ」・・・高級魚
「レポート」・・・期末に提出する紙媒体
34初心者:2010/02/15(月) 22:27:56
>>32
ありがとうございます!
初めてさわる人にとってはさっぱりだったので
イメージがわくだけでも助かります!

>>33
受け狙いありがとう
涙がちょちょぎれます
でも平凡すぎ
そんな高級魚いるの?
35名無しさん@そうだ選挙にいこう:2010/02/15(月) 22:32:54
AS/400だとQUERYが胡瓜なんだよな
36名無しさん@そうだ選挙にいこう:2010/02/15(月) 22:41:40
こんな説明で理解できるなんてすごいサルだ!
37名無しさん@そうだ選挙にいこう:2010/02/16(火) 17:58:42
ADOのレコードセットをNewしてフィールドをAppendしてデータをAddNewして追加したんだけど、
これを元にテーブルを作成できる?
38名無しさん@そうだ選挙にいこう:2010/02/16(火) 18:38:26
>>37
ADOX使えばできるんじゃなかったっけ
39名無しさん@そうだ選挙にいこう:2010/02/16(火) 19:06:20
>>37
エスパースレじゃないんだから、やりたいことをなるべく正確に書かないと。
元のテーブルはどこかにあって、そのテーブル定義を使い、
さらに新規フィールドも追加して別テーブルを作成したいということか?

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

>>39
説明不足すまそ、元テーブルは無いです。
Newしたレコードセットに定義したフィールドを持つテーブルを作りたくて。
自分で CREATE TABLE文を実行してテーブルを作ればいいんだけど、
フィールドを定義してレコードを新規追加したレコードセットのメソッド呼び出し一発で
テーブルを新しく作れたらいいなぁ、と。
41名無しさん@そうだ選挙にいこう:2010/02/17(水) 19:15:44
毎度お世話になっております。

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

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

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

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

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

どのようなクエリ式をつくると、この前月・次月繰越が実現できますでしょう
か?
42名無しさん@そうだ選挙にいこう:2010/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 :2010/02/17(水) 22:01:27
>>42
サンクスコ

助かったありがとう。
44名無しさん@そうだ選挙にいこう:2010/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名無しさん@そうだ選挙にいこう:2010/02/17(水) 23:00:36
>>44
テーブルBの[ID1]〜[ID4]でマルチカラムインデックスは作成してありますか?
46名無しさん@そうだ選挙にいこう:2010/02/17(水) 23:21:09
>>45
作成していません。
47名無しさん@そうだ選挙にいこう:2010/02/18(木) 01:04:49
>>44
手元にアクセスが無いからわからないが
1 テーブルAの必要なフィールドを選択したクエリ
2 テーブルBの必要なフィールドを選択したクエリ
を作って1と2の結合は出来ないのかな?
それとも出力フィールド数が255を超えているのか?
48名無しさん@そうだ選挙にいこう:2010/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名無しさん@そうだ選挙にいこう:2010/02/18(木) 05:34:29
textで半分づつ出して二つのテキストをVBAでつなぐ手もあるかな?
50名無しさん@そうだ選挙にいこう:2010/02/18(木) 10:47:46
>>44
テーブルAとBそれぞれキーの昇順でソートしたレコードセットを用意して、
マージしてキーが一致するものだけをテキスト出力したらいいんじゃないかい?
5145:2010/02/18(木) 16:26:19
>>46
通常、5万レコードから50件抽出するのに15分も掛りませんから、
コードはそのままで>>48さんの言われるようにインデックスを作成してみてください。
マルチカラムインデックスの方がより速いと思いますが、[ID1]〜[ID4]に対して
個別にインデックスを作成しても十分すぎる効果があると思います。
これならデザインビューから簡単に設定できますから。
5244:2010/02/18(木) 22:06:52
テーブルBにインデックスを作成し>>48さんの方法で試したところ
無事出力できました。
どうもありがとうございました。
5348:2010/02/19(金) 01:12:59
>>49
なるほど。TransferText で出力できる量の列を別々に出力させて、後で繋ぐのね。
そっちのほうが簡単だし早そうだ。気づかなかった。ありがとう、勉強になったよ。

>>51
個別にインデックスを作成しても普通は1つしか使われないような?
54名無しさん@そうだ選挙にいこう:2010/02/19(金) 16:24:04
バックエンドにMySQLを使用して、フロントエンドにAccess2002という
社内システムを運用中です。

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

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

サイズが小さくなった事で起動時間も早くなり、なんとなく動作も軽快
になったような気がするのですが、これって常識?
55名無しさん@そうだ選挙にいこう:2010/02/19(金) 21:09:58
>>54

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

たぶん常識。mdbって書いてあるんだから間違いないということはないと思うが、
mdbだと、VBAのソースとかも保存されているわけだし。
比べるのだったら、mdeとじゃなきゃ。
5655:2010/02/19(金) 21:11:55
訂正

×間違いないということはないと思うが
○間違いということはないと思うが
57名無しさん@そうだ選挙にいこう:2010/02/20(土) 00:21:12
助けてください。

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

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

なにかよい方法はあるのでしょうか?
58名無しさん@そうだ選挙にいこう:2010/02/20(土) 00:36:35
>>57
2002だと5、III、IV(文字化け対処だからツッコミはしないように)が用意されているが、dBaseのバージョンは大丈夫か?
手間でもいったんテキストにしてインポートしたら。
59名無しさん@そうだ選挙にいこう:2010/02/20(土) 03:48:36
>>57
インポート定義のコードページの設定は大丈夫?
60名無しさん@そうだ選挙にいこう:2010/02/20(土) 07:09:32
access2007が入っていて、access97を使いたいのですが、
どのようにインストールすればいいのですか?
初心者なのでなにもわかりません(+o+)
どなたか教えてくれませんか???
お願いします。
61名無しさん@そうだ選挙にいこう:2010/02/20(土) 10:00:48
初心者にはおすすめできない
62名無しさん@そうだ選挙にいこう:2010/02/20(土) 10:09:38
>>60
1.Access97の入ったインストールCDをCD読み込み可能な光学ドライブにセットする
2.インストール手順に従い、保存先等を設定する。
3.インストール終了までしばらく待つ
4.インストールが終了したら光学ドライブからCDを取り出す。
63名無しさん@そうだ選挙にいこう:2010/02/20(土) 12:46:56
エクセルとアクセスって違うんですか??
64名無しさん@そうだ選挙にいこう:2010/02/20(土) 12:48:01
お引き取りくださいksg!
65名無しさん@そうだ選挙にいこう:2010/02/20(土) 12:48:05
>58
他社製品のため出来ません。

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


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

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

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

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



66メモリ君 ◆7mDj3mSGOQ :2010/02/20(土) 18:36:52
>>65
DBF Explorerというツールも便利だよ。
67名無しさん@そうだ選挙にいこう:2010/02/21(日) 06:04:54
流れ読まずに質問。

Accessを5年ぶりに使って受注管理システム作ることになりそうです。
もし、SQL SERVER Express走らせるマシンの用意が出来るなら、Access+SQL SERVERでADP形式がオススメですか?
ストアドプロシージャは使うつもりはありませんが、昔MDPが壊れることが何度かあったのでトラウマになっています。
68名無しさん@そうだ選挙にいこう:2010/02/21(日) 07:17:02
シロウトにはおすすめできない
69名無しさん@そうだ選挙にいこう:2010/02/21(日) 10:28:00
>>67
同時に編集する人数による。一人なら mdb。二人以上なら SQL Server を勧める。
mdb でも同時に編集できる人数を一人に制限しておけば、多人数で使っても結構壊れなかったと思う。
もちろん SQL Server の方が安定しているのは間違いないけど。

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

どっちにしてもバックアップは必要だし、開発と保守の手間を考えて選んでください。
70名無しさん@そうだ選挙にいこう:2010/02/21(日) 18:32:13
クエリの抽出条件をフォームコンボボックスから指定して
 クエリの抽出条件: Forms!テストform!コンボ12
としていました

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

なにか勘違いしていると思うのですが、希望通りにするには、どう設定したら良いですか?
7170:2010/02/21(日) 18:47:00
再起動したら想定通りに動きますた
アクセスのバカやろーーーーーーーーーーー!!
72名無しさん@そうだ選挙にいこう:2010/02/21(日) 21:22:29
access2000を使用しています。
ExcelでAccessのデータを「外部データの取り込み」から読み込んで
別にグラフを作っているのですが、ユニオンクエリを読み込もうとすると
「パラメーターが不足しています。1を指定して下さい」と出てきて読み込めません。
このエラーはどうすればいいんでしょうか。
73メモリ君 ◆7mDj3mSGOQ :2010/02/21(日) 21:50:50
>>72
そのユニオンクエリがパラメータクエリを含んでいる為、開けない
と見た。

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

単独でそのユニオンクエリがまず開けるのかどうかを確認。
74名無しさん@そうだ選挙にいこう:2010/02/22(月) 10:04:19
>>56

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

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

一体mdbの中でなにが起こったのか不思議でした。
75名無しさん@そうだ選挙にいこう:2010/02/22(月) 10:38:35
>>63

「エクセルとアクセス」って繰り返し言っていると、
ついうっかり「アクセル」って言い間違えることありますよね。オレだけ?
76名無しさん@そうだ選挙にいこう:2010/02/22(月) 15:00:53
>>73
パラメータクエリを使っていないかも、ユニオンクエリ単独で開けるかも
確認してみましたが、問題ありませんでした。
77メモリ君 ◆7mDj3mSGOQ :2010/02/22(月) 19:32:22
>>76
俺も何度か出会ったエラーなんだが、その時は、フラグが必要なフィールドなのに
Nullがあったりした。
なので、1をなにかの列で埋めてみるとか。

78名無しさん@そうだ選挙にいこう:2010/02/22(月) 22:38:16
確かに、ExcelのVBAからSQL投げるとNzとか超基本的な関数で
「1を指定して下さい」エラーになることがあるな
79メモリ君 ◆7mDj3mSGOQ :2010/02/23(火) 06:58:25
>>78
そうそう。俺もよくNz関数使う。

こういう場合、計算式が入っているフィールドを一つ一つ検査するしか
ないんだよなぁ。
80名無しさん@そうだ選挙にいこう:2010/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名無しさん@そうだ選挙にいこう:2010/02/24(水) 10:13:28
>>75
エクセルとアクセス、エクセルとアクセス、……エクセスとアクセル

あれ?
82名無しさん@そうだ選挙にいこう:2010/02/24(水) 10:27:07
>>80
クエリを複数使えばできる。応援するぞ、頑張れ。
83名無しさん@そうだ選挙にいこう:2010/02/25(木) 23:32:45
Access でモノクロ印刷できねーの?
Acrobatみたいにモノクロ2値で出力設定もないし、桐みたいにモノクロ前提のデザインもないし
ウィザードでレポート作ったらカラーになるし、背景色を全部白にしてもプリンタはモノクロインクじゃなくカラーインク配合して出力して汚い
84名無しさん@そうだ選挙にいこう:2010/02/25(木) 23:39:40
アクセスで印刷しようとしてる時点で…、桐にしとけ。
85名無しさん@そうだ選挙にいこう:2010/02/26(金) 01:01:28
>>83
プリンタ側で設定すればいいんじゃね? 
もしくはVBAやVerによってはAPIで。
そもそも白黒印刷前提で色を使用しているのが解らん。
もしかして、フォームを印刷しているとかか?
カラーインクジェットとモノクロレーザーを持っているから
理解に苦しむ悩みだが。
86名無しさん@そうだ選挙にいこう:2010/02/26(金) 08:31:05
2007や2010でリボンのレポート作成でレポート作ると勝手にカラーになっちゃうのです
勝手に代替えの行とかに色付いて、ヘッダーに勝手にカラーでロゴ入ったり
もー、使いにくいです
87メモリ君 ◆7mDj3mSGOQ :2010/02/26(金) 09:16:11
>>86
最後のデザイン指定のところで、ナニもないタイプを選ぶわけだが
それがどれなのかわからない上に、自分のテンプレを登録できる
わけじゃないのがなぁ。それよくわかるよ。

毎回だから一番シンプルな2003を選んで修正しているよ。
88名無しさん@そうだ選挙にいこう:2010/02/26(金) 10:19:00
>>86
>2007や2010でリボンのレポート作成でレポート作ると勝手にカラーになっちゃうのです

そりゃ酷い仕様だな。簡単なのは白黒印刷用にプリンタを登録してしまう方法だろう。
たぶん、モノクロ印刷設定ができると思うのだが。
Accessレポートの利点は使用プリンタを指定できるところだと思うのだが、
2007や2010だとその機能もなくなっているのか?
VBAとかでできるのかもしれないが、ドライバインスコのほうが簡単なので俺はそうしている。
モノクロ印刷じゃなくて、両面印刷なんだけど。
89名無しさん@そうだ選挙にいこう:2010/02/26(金) 10:44:07
プリンタでモノクロ設定するとグレートーンになってバッチイなぁ。
純白なエリカ様のようなバージンな清々しい印刷はメンドイ。
90名無しさん@そうだ選挙にいこう:2010/02/26(金) 11:03:44
>>89
メーカーとか朱によって違うのだろうが、黒インク持ちのやつは
「カラーインクを使わない」とか「白黒2値」とかの設定がないか。
もしくは、プロファイルで白黒印刷とか。
でも白黒印刷を多用するなら、モノクロレーザーを買ったほうが
経済的だとは思うが。綺麗だし。
家庭用だったら、2万程度で買えるんじゃないのか。
91名無しさん@そうだ選挙にいこう:2010/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名無しさん@そうだ選挙にいこう:2010/02/26(金) 11:16:19
>>91
SELECT DISTINCTROW テーブル.項目1, Count(*) AS テーブルのカウント
FROM テーブル
GROUP BY テーブル.項目1;

ウィザードの集計を使ってみたけど、こういうことでいいの?
9391:2010/02/26(金) 11:17:24
ああ、すまん。投稿してから間違いに気づいたorz
94名無しさん@そうだ選挙にいこう:2010/02/26(金) 11:19:01
さらに間違えた。93の名前欄は92ね。
9591:2010/02/26(金) 11:21:15
>>92-93
どもです、結構むずいでしょorz
96名無しさん@そうだ選挙にいこう:2010/02/26(金) 11:28:25
>>91
クエリで固有の値プロパティ設定してカウントして、SQLビューで見れば答えが書いてある
9791:2010/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
9896:2010/02/26(金) 12:12:38
ああ、勘違いゴメン
9991:2010/02/26(金) 13:11:34
>>98
いえいえ、アドバイスどもです。
100名無しさん@そうだ選挙にいこう:2010/02/26(金) 20:54:46
あるシミュレーションデータの生成を行うプログラムを作りました。

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

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

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

101名無しさん@そうだ選挙にいこう:2010/02/26(金) 21:04:54
俗に言うSQLで一撃系に書き換えるしかないよ
102名無しさん@そうだ選挙にいこう:2010/02/26(金) 21:30:52
Dlookupが必要な時点でテーブル設計間違ってる
103名無しさん@そうだ選挙にいこう:2010/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名無しさん@そうだ選挙にいこう:2010/02/26(金) 23:59:34
>>103
こういうテーブル構造って人間にはわかりやすいんだけど
DB的に後々苦労する筆頭なんだよな。
105名無しさん@そうだ選挙にいこう:2010/02/27(土) 00:14:37
>>104
あのーすみませんが、俺が今つくっているこれは

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

テーブル設計の話はほかでやってもらえます?
106名無しさん@そうだ選挙にいこう:2010/02/27(土) 00:24:51
あちゃー
107名無しさん@そうだ選挙にいこう:2010/02/27(土) 00:28:13
>>105
そうなの? あなたの質問が速度を速くしたいというものだったから
DBには不向きなテーブル構造をしているよって書いただけなのに。
できるなら力になってあげようと思ったけど、俺は抜けた。
108名無しさん@そうだ選挙にいこう:2010/02/27(土) 08:21:58
2抜けた
109名無しさん@そうだ選挙にいこう:2010/02/27(土) 09:41:50
>>107
Dlookupをわざわざ使っている時点でそもそも、そういう話にならない。

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

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

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

3抜けた
111名無しさん@そうだ選挙にいこう:2010/02/27(土) 11:55:29
最初から参加さえしていない俺勝ち組
112名無しさん@そうだ選挙にいこう:2010/02/27(土) 12:30:13
俺はあんまり頭悪くないんだけど今回はたまたま質問してるだけって気持ちが
こういう上から目線の書き込みになっちゃってるんだろうな。

まあこんな態度じゃ目的の解答がどんどん得にくくなるってことに気付いてない時点で
壊滅的に頭悪いわけだがw
113名無しさん@そうだ選挙にいこう:2010/02/27(土) 13:22:28
質問の仕方が悪いよね。最初から
「DLookupより断然高速で、DLookupと同等の機能はありませんか?」
って聞けばよかったのに・・・
114名無しさん@そうだ選挙にいこう:2010/02/27(土) 13:58:02
         ____   
       / \  /\ キリッ
.     / (ー)  (ー)\      
    /   ⌒(__人__)⌒ \    <あのーすみませんが、俺が今つくっているこれは
    |      |r┬-|    |      データベースのテーブルの設計じゃないんですよ。
     \     `ー'´   /      はっきりいって テーブル構造とか意味ナイんで。
    ノ            \      テーブル設計の話はほかでやってもらえます?
  /´               ヽ              
 |    l              \
 ヽ    -一''''''"〜〜``'ー--、   -一'''''''ー-、.    
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))


          ____
        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ    <だっておwww
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)
| / / /      |r┬-|    | (⌒)/ / / //  
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/
|     ノ     | |  |   \  /  )  /  
ヽ    /      `ー'´      ヽ /    /     
 |    |   l||l 从人 l||l      l||l 从人 l||l   バ   
 ヽ    -一''''''"〜〜``'ー--、   -一'''''''ー-、 ン
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒)) バ
                             ン
115名無しさん@そうだ選挙にいこう:2010/02/27(土) 14:06:27
あ〜あ、もう来ないんだろうな。
116名無しさん@そうだ選挙にいこう:2010/02/27(土) 19:00:43
>>105
じゃ、なんでここに書き込んでんだよ
117名無しさん@そうだ選挙にいこう:2010/02/27(土) 22:17:17
Forms!出納帳 を作って並べ替えました
[年月日]で昇順にして、同一[年月日]内では[ID]昇順です
[ID]、[年月日]の順で並び替えしたらそう出来ました

その並び替え順の状態で、特定のレコード以前のレコードをフィルタするwhere句はどう書けばよいですか?
118名無しさん@そうだ選挙にいこう:2010/02/27(土) 22:59:21
>>117
[年月日]<特定レコードの[年月日] or ([年月日]=特定レコードの[年月日] and [ID]<=特定レコードの[ID])
って感じじゃなかろうか。
119名無しさん@そうだ選挙にいこう:2010/02/27(土) 23:27:08
>>118
どうも有難うございます

帳票フォームで狙ったレコードにカーソル置いてDSUMのcriteriaに入れたいのですが、なんか大変そうですね
&とか'とか"とか、どう書いたら良いか解りません
120名無しさん@そうだ選挙にいこう:2010/02/27(土) 23:43:02
>>119
じゃあ勉強しなよ
121名無しさん@そうだ選挙にいこう:2010/02/27(土) 23:47:22
>>120
教えてください、お願いします
122名無しさん@そうだ選挙にいこう:2010/02/28(日) 11:24:48
>>121
DSUMに拘ってるみたいだけど、出納帳の累計出したいとかじゃないの?
123名無しさん@そうだ選挙にいこう:2010/02/28(日) 11:30:10
連投スマソ。
ちなみに
DSum("列名", "テーブル名 or クエリ名", "条件式") だけど
レコード多いと劇遅だよ。
124名無しさん@そうだ選挙にいこう:2010/02/28(日) 11:33:05
>>123
それ言ったら代替策ないでしょ?

125名無しさん@そうだ選挙にいこう:2010/02/28(日) 11:47:39
>>122
テーブルに累計書き込まずに、フッターとかの非連結テキストボックスに特定レコードまでの合計を表示したいのです
必要な時だけボタンを押して表示する感じ
126名無しさん@そうだ選挙にいこう:2010/02/28(日) 12:46:31
桐にしとけ
127名無しさん@そうだ選挙にいこう:2010/02/28(日) 15:47:22
>>125
ADOでいいんなら作ったやつアップできると思うがいるか?
128名無しさん@そうだ選挙にいこう:2010/02/28(日) 16:27:12
>>127
ご親切に有難うございます
なんとか自分で解決しました
>>118 さんのアドバイスでクエリ作って、それをdomainに指定してcriteriaは省略でできました
あっさり過ぎて拍子抜けです
129名無しさん@そうだ選挙にいこう:2010/03/02(火) 23:15:38
DDoS糞食らえ
130名無しさん@そうだ選挙にいこう:2010/03/02(火) 23:51:01
2000なんだけど、レプリケーションをササッと解除してくれるようなツールないかな。
テーブル作成クエリの作業後に主キーやインデックス、規定値にリレーションシップの
再設定をしなきゃいけないのがどうにも。
知らない間にデザインマスターがなくなってたので、tsrelも退避してくれない。
131名無しさん@そうだ選挙にいこう:2010/03/03(水) 09:22:17
一時テーブル作る時って、どういう命名の仕方がいいのかな。
MDBに複数からの同時アクセスがあるとTMPとかじゃマズいよね。
日時とかから生成するもん?
132名無しさん@そうだ選挙にいこう:2010/03/03(水) 10:55:21
>>131
クライアントのマシンネームでも使えばいいんじゃね?
実際のところは、ファイル共有ではなくてC/Sのかたちにするのが本来だと思うけど.
133名無しさん@そうだ選挙にいこう:2010/03/03(水) 11:31:08
>>132
なるほど、ごもっともです。

MDBへの多数のアクセスはやりたくないんですが、
もし壊れたらそれを言い訳に本格的に開発する時間をもらうつもりです。
134名無しさん@そうだ選挙にいこう:2010/03/03(水) 20:56:58
Accessはパーソナルデータベースソフトです。
135名無しさん@そうだ選挙にいこう:2010/03/04(木) 09:20:39
フロントエンドとして使う場合もあるだろ
・・・と思ったが、今はAccessで本格的に開発することなんてあんまり無いのかな。

器用貧乏なAccessの機能を覚えるよりは、PHP+MYSQLとかVS2008で開発
した方が効率いいし、そのへんの事務員が自分でやるならExcelとかFileMaker
を覚えた方が効率良さそうだ。
136名無しさん@そうだ選挙にいこう:2010/03/04(木) 13:06:29
>>>135
システムの規模によるんじゃないかな。
それに未だにVB6.0やVBAが基本言語の会社もあるだろうしね。
137名無しさん@そうだ選挙にいこう:2010/03/04(木) 15:07:40
短い開発期間に低予算に多出力とくればおのずとaccessに辿り着くような気がする。
138名無しさん@そうだ選挙にいこう:2010/03/04(木) 20:51:56
社内で勝手にMySQLとか使えないし、申請しても許可が下りないんで
Access使うしかないって感じかな…。
139名無しさん@そうだ選挙にいこう:2010/03/04(木) 21:59:18
>PHP+MYSQLとかVS2008で開発した方が効率いいし

ないわ
140名無しさん@そうだ選挙にいこう:2010/03/04(木) 22:56:12
結局、桐が一番良いわけだ
141名無しさん@そうだ選挙にいこう:2010/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名無しさん@そうだ選挙にいこう:2010/03/04(木) 23:26:46
>>141
マクロでやってみて、上手くいったらVBAコードに変換すれば間違えてた記述が解る
143141:2010/03/05(金) 00:19:36
>>142

それがマクロでやってもフィールド1にデータが全部入ってしまうのです。
VBAにこだわってないので、マクロでもよいんですが、
手動できるものが、同一定義を指定しながらなぜできないのかなと。
144名無しさん@そうだ選挙にいこう:2010/03/05(金) 00:51:34
DoCmd.TransferText acImportDelim, FS, FS, FN, False, ""
ヒントになるか?
145141:2010/03/05(金) 07:25:48
>>144

ありがとうございます。
会社に行って早速試してみます。
146名無しさん@そうだ選挙にいこう:2010/03/05(金) 15:56:57
これ、ADOで引っ張ってきた複数のレコードをフォームのテキストボックスに
代入しようとしたら、一旦、一時テーブルに格納しないといけないの?

できるだけAccessのフォームの機能でやりたいので、レコードの移動を
フォームプロパティの移動ボタンでやりたかったんだが・・・。
147名無しさん@そうだ選挙にいこう:2010/03/05(金) 15:59:21
もしかして、そもそも非連結で作ろうとしてることが間違ってる?
148名無しさん@そうだ選挙にいこう:2010/03/05(金) 16:02:38
>>146
Formオブジェクトなどにrecordsetプロパティがあるから、これにレコードセットを代入するのじゃ。
でもって、フォームに配置してるコントロールのcontrolsourceプロパティを設定しておけば、
テーブル連結フォームと同様に操作できるのじゃ
149名無しさん@そうだ選挙にいこう:2010/03/05(金) 18:32:42
>>148
神よ!うまくいきやした。
ありがとやんした。Accessが便利だと思えるようになりますた。
150名無しさん@そうだ選挙にいこう:2010/03/05(金) 18:51:08
でもこれでも、フィルタ機能が使えない・・・・・orz
151名無しさん@そうだ選挙にいこう:2010/03/05(金) 20:00:28
>>150
フィルタできないとな?普通使う分には、んなことねぇと思うんじゃが。
http://homepage3.nifty.com/pokoa/Access/ADOandForm.htm
ここに答えはないかい?
152名無しさん@そうだ選挙にいこう:2010/03/05(金) 22:53:59
ログインの時のパスワードの解除方法を教えて下さい
153名無しさん@そうだ選挙にいこう:2010/03/06(土) 08:24:56
>>152
Access のバージョンは?
154名無しさん@そうだ選挙にいこう:2010/03/06(土) 13:32:43
VistaSP2&Access2007。フォームにボタン配置しようとしたらAccessが落ちました。
2,3回やっても落ちたので新規DBを作って試してみたらボタンだけじゃなくテキストボックス
でも落ちるようです。ラベルならOK。もしやと思いテキストファイルのエクスポートを試して
見たら落ちました。どうも各種ウィザードのダイアログが開くタイミングで落ちるっぽいです。
クエリウィザードでも落ちたのでたぶん間違いないかと。

Officeを一旦アンインストールしてから再インストールしても同症状でした。
自宅のPCでAccessが使えなくても困ることはあまりないんですが、とても気持ち悪いです。
どこか調べてみるべき点など心当たりはあるでしょうか?
155名無しさん@そうだ選挙にいこう:2010/03/06(土) 14:00:43
>>154
officeにもSP2あるけどまぁ治らん気がする
office入れなおしてだめだったらいい機会だと思ってOSから入れなおす。俺なら。
156名無しさん@そうだ選挙にいこう:2010/03/06(土) 14:06:56
>>154
C:\Program Files\Microsoft Office\Office12\ACCWIZ\UTILITY.ACCDA
を削除してからAccessの修復インストール

結果を報告して
157名無しさん@そうだ選挙にいこう:2010/03/06(土) 15:20:40
>>153
2007です
158154:2010/03/06(土) 15:44:14
レスしていただきありがとうございます。
>>154
office入れ直したときにspを当てる前後でそれぞれ動作確認したんですがどちらでも
Accessは落ちました。
>>156
やってみましたが症状に変化はないようです。

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

自宅PCだし現状では困ってる訳でもないので、暇つぶしがてら色々やってみて直ったら
報告しますね。
159154:2010/03/06(土) 15:45:31
失礼、アンカミス。
上は>>155の間違いでした。
160名無しさん@そうだ選挙にいこう:2010/03/06(土) 16:04:13
>>157
2007のデータベースパスワードなら現在までHackingされていない、総当たり方法しかない
161名無しさん@そうだ選挙にいこう:2010/03/06(土) 16:14:30
>>124

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

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

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

162名無しさん@そうだ選挙にいこう:2010/03/06(土) 16:18:59
関係ないけど、やり方次第でホント短縮できるよね。
初心者だった頃に見様見真似で作った物が2時間ぐらいガリガリ動いてたのを、それを見たプロい人が手直しして
数秒で計算が終わったのを見た時は感動したもんだ…。
163名無しさん@そうだ選挙にいこう:2010/03/06(土) 16:58:26
>>157です
パスワードが解らないんじゃなくて
起動時に出てくるパスワードの入力の設定を
解除したいということです

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

どのパスワードよ?
165名無しさん@そうだ選挙にいこう:2010/03/06(土) 19:48:55
>>140 acImportDelim -> acImportFixed で.
166名無しさん@そうだ選挙にいこう:2010/03/06(土) 19:52:35
間違えました
>>141 acImportDelim -> acImportFixed で.
167名無しさん@そうだ選挙にいこう:2010/03/07(日) 05:44:19
>>165
マナーの悪い奴は鮮人認定されてもしょうがなくね?
俺なにも間違ったこと言ってなくね?
168名無しさん@そうだ選挙にいこう:2010/03/07(日) 10:27:10
>>151
解決したでヤンス!
どうもありがとうございました。

rs.CursorLocation = adUseClient
このおまじないが必要でした。
169名無しさん@そうだ選挙にいこう:2010/03/08(月) 12:58:54
2010のDataMacroに期待したんだが、やはり残高計算は出来ないみたいだね
170名無しさん@そうだ選挙にいこう:2010/03/08(月) 13:21:01
桐でも使ってろ
171名無しさん@そうだ選挙にいこう:2010/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名無しさん@そうだ選挙にいこう:2010/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名無しさん@そうだ選挙にいこう:2010/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名無しさん@そうだ選挙にいこう:2010/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名無しさん@そうだ選挙にいこう:2010/03/08(月) 23:27:49
Me!開始日付とMe.開始日付が普通に混在してる時点でいやになってきた
176名無しさん@そうだ選挙にいこう:2010/03/09(火) 13:22:39
177名無しさん@そうだ選挙にいこう:2010/03/09(火) 17:16:31
ちょいと質問。
小数点以下2桁の項目に整数値と小数値が混ざっているデータの整数値は小数点以降を表示したくないとき、
以下のやり方よりもナイスなやり方ってある?

format([数値項目],iif((([数値項目]-int([数値項目]))*100)>0,"#,##0.##","#,##0"))
178名無しさん@そうだ選挙にいこう:2010/03/09(火) 18:34:33
テキストボックスの書式じゃだめかい?
179名無しさん@そうだ選挙にいこう:2010/03/09(火) 20:22:09
>>175
何が違うんだ?
180名無しさん@そうだ選挙にいこう:2010/03/09(火) 21:02:47
>>177
*100を消す
181177:2010/03/11(木) 10:47:07
>>180
ホントだ、指摘どもです。
182名無しさん@そうだ選挙にいこう:2010/03/12(金) 11:52:18
従業員に使わせるアプリをAccessで作るときは、Ctrl+P とか Ctrl+S とか機能したらマズイんだけど
変なショートカット沢山あるけど、どうしたら良いの?
183名無しさん@そうだ選挙にいこう:2010/03/12(金) 12:24:02
>>182
完全な抑制ができるわけではないけれど、
アクションのないマクロをキーに割り当てって感じ。
http://office.microsoft.com/ja-jp/access/HA102391111041.aspx
もしくは、イベントで管理じゃね?
184名無しさん@そうだ選挙にいこう:2010/03/12(金) 12:47:22
>>183
ああ有難うございます
一つ一つ潰すんですね(^_^;)
185182:2010/03/12(金) 19:11:27
>>184
フォームのKeyPreview=Trueにして、フォームのkeydownイベントとかで
if Shift>2 then KeyCode=0
で、単独押下と{Shift}+キーの操作以外は一気に取り消せるはず。
{Shift}:1 {Ctrl}:2 {Alt}:4 な。
186183:2010/03/12(金) 19:12:50
おっと間違えたw ↑は183だ
187名無しさん@そうだ選挙にいこう:2010/03/13(土) 00:02:55
>>184
そうは言ってもCtrl+CとかXとかVとかだけは使わせてって要望が絶対出るだろうし
一つ一つ潰すしかないだろ
188名無しさん@そうだ選挙にいこう:2010/03/13(土) 00:58:35
>>185
おお、逆転の発想!
189名無しさん@そうだ選挙にいこう:2010/03/13(土) 09:11:03
2010
詳細なテキストサービス を有効にしないとマトモにスクロールしなくなる
有効にすると、対応してない他の大部分のアプリでは不具合続出
どうすりゃ良いのよ?
190名無しさん@そうだ選挙にいこう:2010/03/13(土) 12:59:29
ACCESSのマクロのフィルタ実行で式ビルダから条件式を実行したときと
クエリで条件式を設定して実行したときに
結果が異なることもあるのでしょうか。
191名無しさん@そうだ選挙にいこう:2010/03/15(月) 11:09:44
ええ?!
192名無しさん@そうだ選挙にいこう:2010/03/15(月) 23:29:06
まさかまた並びが違うから結果が違うとかいう戯言ぬかすんじゃ・・・
193名無しさん@そうだ選挙にいこう:2010/03/16(火) 00:45:29
さぁて、Classでも作るべ。
どんなClassが使っておられるの?みなさん
使い甲斐があるのはなんだろうか
どんな感じで使っておられる?
もしかすっとClass使ってないかな
194名無しさん@そうだ選挙にいこう:2010/03/16(火) 06:38:47
1993恋をした〜
あ〜
195名無しさん@そうだ選挙にいこう:2010/03/16(火) 09:55:32
ACCESS97のサンプルについてたらしいcontact.mdbを入手する方法ないですかね。
97は入ってるけどインストールは出来ないです。
196名無しさん@そうだ選挙にいこう:2010/03/16(火) 10:00:32
>>190
フィルタって対象がフォームじゃねーの?
197名無しさん@そうだ選挙にいこう:2010/03/16(火) 16:22:18
>>193
クラスモジュールのこと?
198名無しさん@そうだ選挙にいこう:2010/03/16(火) 18:23:19
>>179
Me のレコードソースが変数含んでると、データ滅茶苦茶に狂うだろ
199名無しさん@そうだ選挙にいこう:2010/03/17(水) 02:58:05
>>197
んだんだ
複雑なことがちとつらくなってきてさ、きちんとコーディングしておくべきかと思って。
200名無しさん@そうだ選挙にいこう:2010/03/17(水) 05:38:53
>>199
自分は使ってない、っていうかむしろこちらが参考にしたい
(フォームモジュールもクラスモジュールっていう突っ込みは置いといて)

よく使うのはチェックボックス全部ONにしたりとか
カレンダー呼び出しとかだけど数行で済むからそのまま書いてるし。
201名無しさん@そうだ選挙にいこう:2010/03/17(水) 16:08:46
教えて下さい。
アクセス欲しくてパソコンショップいったら高すぎてとても手が出せません。
かといってフリーソフトで手に入れたアクセスもどきのデータベースは機能がしょぼくてガッカリでした。
色々とくぐっていたらベータ版という無料でダウンロードできるものがあるらしいことがわかったんですが
これは他のマイクロソフトオフィスもまとめてダウンロードしてしまうものなんでしょうか?
ワードとエクセルはすでにあるし、他のオフィスはいりません。アクセスだけ欲しいのです。
下手にダウンロードしたら今あるワードとエクセルを新しいヴァージョンに上書きしてしまうのでしょうか?
ベータ版はサポートないというのでいじりたくないのです。
それにベータ版は本来の製品と比べると機能とか悪いのでしょうか?
どうか詳しく教えてください
202名無しさん@そうだ選挙にいこう:2010/03/17(水) 16:50:34
ごめんな、俺にもよくわからないんだ
googleとMicrosoftならきっと応えてくれると思うぜ
203名無しさん@そうだ選挙にいこう:2010/03/17(水) 16:57:45
>>201
> 下手にダウンロードしたら今あるワードとエクセルを新しいヴァージョンに上書きしてしまうのでしょうか?

下手にダウンロードしても、上手にダウンロードしても、インストールしなければ何も起こりません
インストール最初にカスタムからアクセスだけ選んでインストールしてください
204名無しさん@そうだ選挙にいこう:2010/03/17(水) 17:18:24
ありがとうございます
205名無しさん@そうだ選挙にいこう:2010/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名無しさん@そうだ選挙にいこう:2010/03/17(水) 22:49:08
>>205
うおお…なるほどこれ一つ作っとけばフォームの使い方統一できる訳か…
確かにコード量減るしモジュール側からあらかた設定できるしこれは参考になるわ・・・
207名無しさん@そうだ選挙にいこう:2010/03/18(木) 07:04:04
ACCESS難しいよ。なにこれ。
妙に回りくどくてわかりづらい。

VBAを使った方が簡単そうに思えるが逃げたら負けかな?
208名無しさん@そうだ選挙にいこう:2010/03/18(木) 12:21:06
>>207
別にいいんじゃね? 細かい制御をしようと思えばVBAが必須となるし。
回り道に思えても基本を抑えたほうが後々何かと楽できるだろうけど、
社内SE的な立場なら、早く作れてなんぼだろうよ。
ぶっちゃけ、利用者は内部的にどのような処理が行われているなんかは気にせんだろう。
気にするのはレスポンスと使い勝手、あと当たり前だけど正しい応答だ。
後任者のために──なんて考える必要はないよ。
まず後任者なんてありえないから。どうしても必要なシステムなら
会社が外注に頼んででも同等のシステムを用意するだろうし。
209名無しさん@そうだ選挙にいこう:2010/03/18(木) 13:32:28
>>207
VBAわかるならVBAでやった方が楽。
ACCESSの機能だけで色々やろうとすると何かもうVBで最初から組んだ方が
楽なんじゃないかと思うことが多々ある。
事務員の方が詳しいかもしれん。
210201:2010/03/18(木) 15:55:15
ベータ版をダウンロードしたんですが、その後どうやってインストールしたらいいのかわかりません。

まず『いますぐダウンロード』のボタンをクリックして、『実行』をクリックしてしまったんです。
それでダウンロード完了したのですが、次に何も表示されませんでした。
探したのですがそれらしいプログラムはどこにも保存されておらず、本日付けの意味不明なデータがたくさん見つかりました。
どうしたらいいのでしょうか?
今、『保存』で改めてダウンロードしなおしてるんですが、『実行』でダウンロードしたものは削除したいのですが・・。
211201:2010/03/18(木) 16:07:12
マイクロソフトのよくある質問を見ても、なんだか『保存』してダウンロードする方法しか説明がなくて
だったらどうして『実行』なんていう選択肢があるのか……てっきり実行選択したら、自動的にインストールまでやってくれるかと思ってクリックしてしまったので、どうしたらいいのかさっぱりです。
ダウンロード先は一時ファイルとしか表示されなかったので、全然わからず『ファイル名を指定して実行』で検索しても出てこなかったので
212名無しさん@そうだ選挙にいこう:2010/03/18(木) 17:39:07
>>211
日時指定で検索して、それらしいファイルをかたっぱなしから削除するしかないんじゃないか。
もはやスレ違いどころか板違いな質問だと思うが。
213名無しさん@そうだ選挙にいこう:2010/03/18(木) 20:57:40
>>208
使う人は気にしないよね。

>>209
やっぱり?

ありがとう!吹っ切れました。VBAで組むことにします!
214名無しさん@そうだ選挙にいこう:2010/03/18(木) 23:48:00
DBには興味があるが仕事につながりそうにない
アクセスってみんなどんな場面で使ってるの?
俺の生半可な知識だとDBのユーザー側エンドで使わない人は全く使わなそう
逆に使う人はSQL勉強した方がいいって言いそう
215名無しさん@そうだ選挙にいこう:2010/03/18(木) 23:57:26
>>214
別に仕事につながらないのなら、無理して使う必要はないんじゃない?
似たようなことはEXCELでもできるだろうし。
ただEXCELだとデータをいじられやすくないか。
フォームを使うにしても、ACCESSより一段ハードルが高いような気がするし。
まぁ、顧客管理とか在庫管理なんていうのが比較的ポピュラーなんじゃないの。
216名無しさん@そうだ選挙にいこう:2010/03/19(金) 00:13:47
まぁそうなんだけど知りたいという単純な興味からです
どうせ今求職中の身なので
217名無しさん@そうだ選挙にいこう:2010/03/19(金) 00:17:11
アクセスを当座で見につけてLAN組んでっていうのを考えると
やっぱり在庫管理も顧客管理もエクセルでやってそうですね
218名無しさん@そうだ選挙にいこう:2010/03/19(金) 00:25:27
>>216
たしかこのスレ内だと思ったが、やはり仕事に活かせるシステムを教えてって質問した人がいたけど、
ニッチなシステムが多いから、使っているところでは重宝するが
それ以外の人にはまったく理解不能なシステムが多いっていう回答があったな。
基本的にはまさにそれ。
大元の情報を自分の部署用にカスタマイズとかが多いんじゃない。
まぁ、単独系のシステムも作ったけどね。
219名無しさん@そうだ選挙にいこう:2010/03/19(金) 00:30:20
やっぱり「使える」というレベルになるには深く勉強しろと
なかなか先が長そうですね
でもやっぱりじわじわ勉強はしてみようかな
ありがとう
220名無しさん@そうだ選挙にいこう:2010/03/19(金) 02:35:02
基幹システムのデータベースにAccessのリンクテーブルで接続して
データを抽出、加工してExcelに貼り付けて帳票を作るというのが多い。
いわゆる帳票の一つで、普段良く使う帳票はシステムで作ってあるけど、
たまにしか必要ないとか、イレギュラーなものはテーブルをよく知っている
ヘルプデスクのDBチームが作ることが多い。
221名無しさん@そうだ選挙にいこう:2010/03/19(金) 09:55:04
そういえば昔いた会社で、ACCESSを基幹システムに繋げて見積システムにしてたな。
拠点同士でレプリケーション機能とか使ってるし、すぐにMDBが2G到達するしで、、、、
せめてMSDEにしろよと思いながら、横から生温かい目で見てたのを思い出した。

ACCESSはさ、中途半端に知ってるエンドユーザがうざいんだよな。
安易にテーブルのデータを手修正したり、更新クエリを多用してるのを見てると、
Excelでやるデータ加工よりも手順が確認しずらく危ない気がしてならない。
222名無しさん@そうだ選挙にいこう:2010/03/19(金) 11:12:35
OS-XP access2003

Error 3197 って出てデータ開けない・・・
新しいデータベース作成してインポートも出来ないです
googleで調べてJETCOMPと言う物を使ったけど無理?でした
入力してたテーブルにある基本データだけでも取り出したいのですが無理でしょうか?
223名無しさん@そうだ選挙にいこう:2010/03/19(金) 11:45:13
224名無しさん@そうだ選挙にいこう:2010/03/19(金) 12:13:27
Access2007、AccessRuntimeでadp→ade作成
クライアントはWindowsXP SP3
サーバーはWindowsServer2003でSQLSERVER2008EE

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

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

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

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

このメモリリークを解消する手立てを探しています。
アドバイスお願いします。
225名無しさん@そうだ選挙にいこう:2010/03/19(金) 12:21:35
>>224
> よくよく調べてみると、1件印刷するたびに1〜2MBの物理メモリを消費しており、

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

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

指定フォルダの容量とは、adeファイルの場所のことでしょうか?
CやDドライブにフォルダを作成して、その中にadeを置いて動かしていますが、
Accessが使用する容量をどこかで設定できるのでしょうか?
227名無しさん@そうだ選挙にいこう:2010/03/19(金) 14:11:25
C:\の空きが少なくて \System32\spool\PRINTERS が溢れるんじゃねえのか?
とりあえず、スプールフォルダを空きの大きい別ドライブに指定しろ
228224:2010/03/19(金) 14:34:26
>>227
クライアント端末は今見れませんが、テスト端末ではCドライブの容量は
それぞれ30GB、70GB以上空いています。

連続で印刷しながら、Cの空き容量とspool\PRINTERS内を
モニタしてみましたが、数KBのファイルが出来ては一瞬で消えていくだけで、
特に溢れている様子はありませんでした。
229名無しさん@そうだ選挙にいこう:2010/03/19(金) 15:00:32
2007ランタイムは「Windows Vista」「Windows XP Service Pack 2」のみじゃなかった?
230名無しさん@そうだ選挙にいこう:2010/03/19(金) 15:12:40
>>222
Error Number 3197 はメモ型かOLE 型のフィールドが壊れたときに出るエラーみたい。
VBA を使ってテーブルを開き、壊れているレコードを特定して削除すれば開けるかも。
http://www.granite.ab.ca/access/corruption/corruptrecords.htm
http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q182867
231名無しさん@そうだ選挙にいこう:2010/03/19(金) 15:49:17
Runtimeでadpってありなん?
パッケージソリューションに乗るの?
232名無しさん@そうだ選挙にいこう:2010/03/19(金) 15:55:49
>>224
まず、リークの原因を突き止めることだと思う。
他のプリンタを使用した場合は?
印刷時のみ発生するのか?
OLEオブジェクト、サブレポートとかがリークしてないか?
233名無しさん@そうだ選挙にいこう:2010/03/19(金) 16:03:25
>>224
レポートじゃなくて、きちんとデータが取得できてるかどうかシミュレーションしてみたら?
全ての環境で同じ状況ってんだから、コード見直すしかねーべな

>>229
まぁ問題ないと思うけど、そうなってるよね
234名無しさん@そうだ選挙にいこう:2010/03/19(金) 16:14:53
>>224
>請求先ごとにレポート「請求書」「控」を
>印刷してクローズ、を繰り返します。

普通は取引先ごとにグループ化して作るものじゃない?
クローズする必要がわからん。
235名無しさん@そうだ選挙にいこう:2010/03/19(金) 16:18:06
adpってSQLServerから非同期っぽくデータをロードするんじゃねかったけか?
ロードが間に合ってないってことがありえるんかな?
236名無しさん@そうだ選挙にいこう:2010/03/19(金) 16:35:58
スプールやめてみたら。処理が追いついてないんだろう。
237234:2010/03/19(金) 16:41:43
>>224
ExcelVBAでセルを色塗りするツールを作ったとき、セルが多すぎると
Excelが落ちるエラーがあった。
一定数色塗りするごとにブックのセーブをかけると落ちなかった。

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

今回のエラーも作業領域不足で、Accessファイルを保存すると
回避できるかもしれないが、Accessの保存はフォームや、レポートの保存で
アプリの保存というのはないんじゃなかったっけか?
だとすると回避策はないかもしれない。
238名無しさん@そうだ選挙にいこう:2010/03/19(金) 16:50:07
そういえばCANONのプリンタってビジネス機でも早いほうのメモリを使うとかなかったっけ。
案外プリンタがメモリを食っているんじゃない?
239名無しさん@そうだ選挙にいこう:2010/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名無しさん@そうだ選挙にいこう:2010/03/20(土) 01:09:14
>>239
ダブルクォーテーション " の場合2つ "" つづけるとエスケープできるけど。
- の前に " をつけて [1"-3月] とかでできないかな?
241240:2010/03/20(土) 01:18:47
>>239
ダブルクォーテーションやシングルクォーテーョンで
囲むとできないかな?
["1-3月"]
['1-3月']
242224:2010/03/20(土) 03:37:54
みなさん、レスありがとうございます。
今まではまり込んで、まだ解決できていません…。
切り分けということで、いろいろな条件で動かしてみました。

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

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

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


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

メモリの増加具合をタスクマネージャでモニタしていて、気付いたのですが、
例えば印刷前のメモリ使用量が30とすると、「[プリンタ名]で[レポート名]を印刷中…」という
メッセージが出た際に60に増加して、印刷が終わると35になり、後は
65→40→70→45…といった感じに増えていきます。
これが100に達すると、レポートやフォーム上からキャプションやテキストが
消えてしまう、という感じです。
243224:2010/03/20(土) 16:13:56
手を変え品を変えやってみましたが、やっぱり解決しません…。
プリンターのプロパティの詳細設定で「プリンタに直接送る」チェックしてもダメでした。
(「スプールを使わない」というのはこれでいいんですよね?)

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

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

試しに、新規accdbファイルを作って白紙のレポートにテキストボックスを数個貼り付けて
OpenClose繰り返してみたところ、白紙なので量は少ないものの、
MSACCESS.EXEの使用メモリがいくらか増えたままになっていました。
請求書の罫線やデータ山盛りの状態だと、その分多いだけで、
これはAccess2007のバグなのかもしれないと思いはじめました…。
244名無しさん@そうだ選挙にいこう:2010/03/20(土) 17:40:50
>>243
1回の作業で1万枚以上印刷しても問題はなかったけどなぁ。VB+mdbの環境だったが。
何かほかの作業をするとボタン等が消えてしまう現象は発生したが、動作的には問題はなかったし。
レコードソースが多段クエリだと、たまに印字されないとかの不具合が発生した気も。
245名無しさん@そうだ選挙にいこう:2010/03/20(土) 18:17:18
>>242
>印刷前にプレビューで開いて設定値を取得・セットし

どんな値を設定してるのかわからんがクエリに値をセットして
レポートのレコードソースにはできないのか?
246名無しさん@そうだ選挙にいこう:2010/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名無しさん@そうだ選挙にいこう:2010/03/20(土) 19:46:54
OSの問題?
Accessの問題?
248名無しさん@そうだ選挙にいこう:2010/03/20(土) 20:08:05
>>247
Accessの問題じゃない? 印刷ってフォーマット時と印刷時イベントがあることから
単純に考えて倍の労力が使われている気が。
249224:2010/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名無しさん@そうだ選挙にいこう:2010/03/20(土) 21:02:25
ビル「Runtime では印刷させません」
251名無しさん@そうだ選挙にいこう:2010/03/21(日) 11:20:31
アクセスがやっと桐に追いついたかなぁって思ったが、マダマダじゃん
252名無しさん@そうだ選挙にいこう:2010/03/21(日) 14:36:03
【 システム環境  】 WindowsXP, Access2007
【 VBAが使えるか 】 いいえ
【 VBAでの回答  】 否
【 検索キーワード 】 リレーションシップ

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

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

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

しかし、リレーションシップの保存後はこうなってしまいます。
ttp://www.dotup.org/uploda/www.dotup.org745188.jpg

そもそもつくりかたがまずいような気もするんですが、どうしたらいいでしょうか?
253名無しさん@そうだ選挙にいこう:2010/03/21(日) 15:43:36
読解力がなくてすまないが、抽出条件でサブ業務ID >=抽出条件で済むんじゃないの?
つうか、業務IDでチャーハン、ラーメン、お昼ご飯だけでよさ気だが。
254253:2010/03/21(日) 15:44:39
<=だたorz
255252:2010/03/21(日) 16:03:26
実際にはグラタンやらハンバーグやら晩御飯やらが順不同で
入力されてるので、単に「お昼ごはんより業務IDが小さい」だけで
その副次業務を抽出することはできないのです。
256252:2010/03/21(日) 17:40:03
つらつら考えてみるに

業務ID 上位業務ID

2    
3    2
4    2
5    
6    4

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

業務ID





のテーブルかクエリーをつくれれば解決なわけです。
こういうのはVBAを使わないと無理でしょうか。
257名無しさん@そうだ選挙にいこう:2010/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→ ……と長々と続くときには
その段数分だけクエリを作らなきゃいけないけどね。

もっといい方法はエロい人に任せよう。
258252:2010/03/21(日) 20:41:26
ありがとうございました。
段数無制限で再帰的につくれる方法があるといいんですが。
259名無しさん@そうだ選挙にいこう:2010/03/22(月) 16:18:27
【 システム環境  】 Windows xp, Access2003
テーブルにあるデータ一列に置換で文字を変換(日々増えて、数百あるものを3種類に集約)
→・その結果を反映させて、それをあらかじめ並べてあるピポットで集計
→・これをExcelにシートを分けて、エクスポートって可能でしょうか?

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

260256:2010/03/22(月) 17:59:52
間口広げます。
VBAでうまい方法があれば教えてください。
261256:2010/03/22(月) 18:11:06
たびたびですみません。
結果はこう出力したいです。

業務ID レベル
2    1
3    2
4    2
6    3
262名無しさん@そうだ選挙にいこう:2010/03/22(月) 22:21:57
>>260
>>261
> 間口広げます。
上から目線かよ

その前に、もう少しわかるように説明してくれ。
何をどうしたいのかよくわからん。
263名無しさん@そうだ選挙にいこう:2010/03/22(月) 22:58:14
>>260
で、>>80との関係は?
264256:2010/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です。

後だしになって申し訳ないですが、ひとつの業務に対する上位業務は複数になる場合
もあります。
265256:2010/03/22(月) 23:05:39
>>263 >>80は別人です。
266259:2010/03/22(月) 23:08:13
自分もアドバイス頂けるとたすかります!
267名無しさん@そうだ選挙にいこう:2010/03/22(月) 23:23:56
>>259
エクスポートではないけんど、コピーしてExcellに貼り付けってできたと思うから、
なんとかかんとか可能な処理じゃね?2003環境ないから責任はとらんぜよ。

>>256
間口広げるのはどうぞご自由になんだが、
こうやってみたけどうまくいかないとかさ、評価や意見を求めるならレスしやすいけど、
ズバリ解答っぽいのを求められてもなぁさらに後だしでしょ。はははは。
268名無しさん@そうだ選挙にいこう:2010/03/22(月) 23:28:56
>>256
よくわからんなぁ。最初の例で言うと要は単品メニューとセットメニューがあるようなものか?
269256:2010/03/22(月) 23:49:34
>>268
そんな感じです。チャーハンのレシピはさまざまな上位グループに従属します。

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

みたいなイメージで。もっときちんと統制掛けないと自分でもわけわかめになりそうですけど
自由度がほしい。
270名無しさん@そうだ選挙にいこう:2010/03/22(月) 23:55:50
もう少しで2010でますね。
64bitにしてみたいけど、アプリ配布先は2007以前+32bitOSが多勢だからどうしようか迷い中だぜ。
runtimeが早めに出てくれたらいいなぁと思う連休最終日。ちょっと鬱。
寝れないのでRibbonUIでも勉強するべ。
271名無しさん@そうだ選挙にいこう:2010/03/23(火) 00:00:46
2010のランタイムはもう出てるじゃん
272名無しさん@そうだ選挙にいこう:2010/03/23(火) 00:08:12
正式にリリースされてないものは、製品の一部としても検収してくれねぇってことよ
273名無しさん@そうだ選挙にいこう:2010/03/23(火) 00:14:23
2010ランタイムは即時に出すって方針で、βでもほぼ同時に出した、製品版でもほぼ同時にでる予定になってる
274名無しさん@そうだ選挙にいこう:2010/03/23(火) 00:24:34
おっほ、そうなのか。
SharePointとの絡みもあるからさほど後にならんだろうと思っていたのだけど、
ほぼ同時なら俺にはありがてぇ話だ。RTMでもほぼ同時になることをお祈りするわ。
275名無しさん@そうだ選挙にいこう:2010/03/23(火) 20:02:22
ACCESS2003を勉強する必要があって、価格.comを調べてみたら
ttp://kakaku.com/item/03206010306/pricehistory/

2年前は3万円代で買えたのに、同じ店で今は7万円前後と金額が約倍に跳ね上がっています。
その理由をご存知の方いらっしゃったら教えて下さい。
よろしくお願いします。
276名無しさん@そうだ選挙にいこう:2010/03/23(火) 20:04:11
もう入荷しないから
277名無しさん@そうだ選挙にいこう:2010/03/23(火) 20:06:54
早速のお返事有難うございます。
そうですか、じゃあこの値段で買うしかないという事ですか・・・
278名無しさん@そうだ選挙にいこう:2010/03/23(火) 20:08:59
別に無理に買ってくれんでも良いよ
279名無しさん@そうだ選挙にいこう:2010/03/23(火) 20:28:34
別に2003に拘んなくても...という俺は2000でも使いこなしてない
280259:2010/03/23(火) 21:58:49
>>267
ありがとうございました。やっぱり置換、ピボットはExcelエキスポートしてからにします。
何かうまく自動化できないもんですかね?
281名無しさん@そうだ選挙にいこう:2010/03/23(火) 22:11:29
そもそも7万あったら桐が買えるんじゃね?
282名無しさん@そうだ選挙にいこう:2010/03/23(火) 22:13:03
桐か・・・/(^o^)\
283名無しさん@そうだ選挙にいこう:2010/03/23(火) 23:29:07
うん、桐が買えちゃうから、その2003は不要。
284名無しさん@そうだ選挙にいこう:2010/03/24(水) 07:26:02
>>259
後出しになってる時点で終わってる。

質問は「こうやったら、こうなる」という例を
自分で説明できるようになってから。
285名無しさん@そうだ選挙にいこう:2010/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名無しさん@そうだ選挙にいこう:2010/03/24(水) 17:01:30
>>285
フォームB閉じるときにForms("フォームA").Requeryで出来ないのかい?
287名無しさん@そうだ選挙にいこう:2010/03/24(水) 17:19:21
単に、フォームAのレコードソースに同じものをセットし直せば良いんジャマイカ
288285:2010/03/24(水) 17:37:45
>>286
どうもです、試してみましたが空白表示のままでした。
(念のため追加の許可TRUE、FALSE両方試したけどダメでしたorz)
>>287
どうもです、レコードソースのセットし直しでもなんか動いてくれなかったので、
フォームBからフォームAのコントロールに直接値をセットしたらOKでした。
 例)Forms(FORMNAME_MAKE).項目名.VALUE = Me.項目名.VALUE ※ フォームBのソースで記述

ありがとうございます!
289名無しさん@そうだ選挙にいこう:2010/03/25(木) 03:04:12
リボンのカスタマイズとか自前のリボン作れるようになったんだけどさ
使いどころがいまひとつピンとこないんよね。頭が固くなっちゃったかなぁ
290名無しさん@そうだ選挙にいこう:2010/03/25(木) 11:27:42
けっきょく桐を買いますた。
291名無しさん@そうだ選挙にいこう:2010/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名無しさん@そうだ選挙にいこう:2010/03/25(木) 18:22:27
そのPCで他に何かの作業をするかどうかは考えないとして、
CPU:前者
メモリ:効果なし
HDD:プラッタ容量次第では感じる
293名無しさん@そうだ選挙にいこう:2010/03/25(木) 19:20:37
OS:xp ACCESS2003です

クエリの並べ替え→昇降順では並び替えられない文字列を、好きなように並べる式ってありますか?
お願いします
294名無しさん@そうだ選挙にいこう:2010/03/25(木) 19:34:45
並び替え用のフィールドをつくる
295名無しさん@そうだ選挙にいこう:2010/03/25(木) 20:38:11
>>291
メモリーを2GBつんでいたのなら4GBにしたところで効果はないだろうな。
でも4GB中2GB程度をRAMディスクにして、そこで作業すれば効果があるかも知れん。
296名無しさん@そうだ選挙にいこう:2010/03/25(木) 20:38:36
おじさんが使いだした頃はAccessでODBC使うとネットワークトラフィックが・・・
とか言われたんだが、今時のギガビットネットワークでも同じなのかな?
297名無しさん@そうだ選挙にいこう:2010/03/25(木) 20:54:08
>>296
仕様自体は変わっていないから通信量は変わらんだろうな。
ただ、相対的に回線使用率は下がっているだろうけど。
298名無しさん@そうだ選挙にいこう:2010/03/25(木) 21:46:45
Me.サブフォーム.Form.Requery と
Me.Sub_サブフォーム.Requery
の違いを教えてください
299名無しさん@そうだ選挙にいこう:2010/03/25(木) 22:01:27
>>298
上はサブフォームのリクエリ
下はメインフォームのコントロールのリクエリ
300名無しさん@そうだ選挙にいこう:2010/03/27(土) 13:50:23
>>299
ありがとうございます
301あぼーん:あぼーん
あぼーん
302名無しさん@そうだ選挙にいこう:2010/03/31(水) 13:01:39
>>224
メモリリークの問題は俺も過去に経験した。結果、未だ解決できていない。
なのでメモリをたくさん搭載したマシンで動かすという力業をやっている。
http://virtual.haru.gs/ge/2009/10/03/access%E3%81%A7%E9%80%A3%E7%B6%9Apdf%E5%8C%96%EF%BC%86%E9%80%A3%E7%B6%9A%E3%83%A1%E3%83%BC%E3%83%AB%E9%80%81%E4%BF%A1%E3%81%9D%E3%81%AE%EF%BC%91/
http://virtual.haru.gs/ge/2009/10/04/access%E3%81%A7%E9%80%A3%E7%B6%9Apdf%E5%8C%96%EF%BC%86%E9%80%A3%E7%B6%9A%E3%83%A1%E3%83%BC%E3%83%AB%E9%80%81%E4%BF%A1%E3%81%9D%E3%81%AE2/

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

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

AccessのPDFアドインを使った場合も、ReportToPDF使った場合もどちらも同じ。
やや後者のほうがメモリ消費量が少ない。Accessのメモリリークの問題は既知の
問題だが未だに解決されてないよ。
303名無しさん@そうだ選挙にいこう:2010/03/31(水) 13:46:45
スレチだが、
>>302リンク先の別記事でGoogle Map API KeyをAccessローカルアプリ上でつこうてるよう
に見受けられるね
304名無しさん@そうだ選挙にいこう:2010/04/02(金) 17:12:37
2010 RTM まだかいなっ♪
305名無しさん@そうだ選挙にいこう:2010/04/02(金) 17:21:29
部門内のお仕事便利化ツールをお勉強がてら作りたいな〜と思っているんですが、
これから覚える開発環境としてはどちらがお勧めですか?
経験があるのはVBAとPHP+MYSQLくらいです。

1.Access2007+ADO+SQLServer2008Express
2.VB.net Webアプリ+SQLServer2008Express
306名無しさん@そうだ選挙にいこう:2010/04/02(金) 18:54:04
>>305
両者を比較するにはスケールというか何かが違いすぎねか?
手っ取り早く始められるってんなら1.でえーじゃろうがなぁ、
ちょっと色がちがうけどSharePointってのも部門内ツールとして面白いよ
307名無しさん@そうだ選挙にいこう:2010/04/03(土) 23:17:59
3 .桐V9 + Oracle10gXE

これが最強だろ
308名無しさん@そうだ選挙にいこう:2010/04/05(月) 16:28:44
人すくねー。つまらんからRibbonXmlでも書いてひつまぶし。くいてー
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
 <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名無しさん@そうだ選挙にいこう:2010/04/10(土) 21:33:59
桐にしとけ
310名無しさん@そうだ選挙にいこう:2010/04/10(土) 21:49:14
質問です。

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

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

これらはどうやったらできるのでしょうか?
311名無しさん@そうだ選挙にいこう:2010/04/10(土) 22:12:55
>>310
http://msdn.microsoft.com/ja-jp/office/aa905530.aspx
ここの内容を先に理解すべきかと思う。
1.>>308のようなRibbonXmlを作成する必要がある
2.リボンに配置した要素のコールバック(get〜)で設定する
3.リボンに配置した要素のコールバック(on〜)で取得する
4.object.Invalidateもしくはobject.InvalidateControlで強制更新し発生するコールバックで更新する。
312名無しさん@そうだ選挙にいこう:2010/04/11(日) 18:42:44
Access 2003でページ設定からの印刷設定が全く保持されないんだけど
これって対処可能なのかな不可能なのかな?

用紙サイズ・給紙方法を毎回変えるのがだるいんだけど Acc2000/Acc2007はともかく2003のはみつからんかった
313名無しさんφ ◆rNiNKtLPbM :2010/04/11(日) 18:58:17
>>312
2007でも当初その問題があったが、バグということで、パッチが出て対処されたよ。

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

あとこういうのがあった。
http://www.nbcom.co.jp/PC-Support/FAQ/acc/tr/acc032002tr002.shtml
http://www.bitpower.co.jp/software/details/smp_printer.asp
http://pinka99.ddo.jp/nanao/work/prtdevmode.html

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

今は、クエリでフィールドを全て一つのフィールドのように見立ててLikeでしています。
ただし結果の表示は遅いです。
315名無しさん@そうだ選挙にいこう:2010/04/12(月) 16:26:16
>>314
20フィールドそれぞれで like検索して orで繋げて試してみたら?
316名無しさん@そうだ選挙にいこう:2010/04/13(火) 15:05:22
tes
317名無しさん@そうだ選挙にいこう:2010/04/14(水) 16:36:35
テーブルのデータをコピーしたいと思います。ただ当DBで他の作業をしたままコピーしたいので
時間よりも処理を軽くしたいと思うのですが、そういうのは可能なんでしょうか?
データのコピー先はLANで接続されたネットワーク越しになります。
318名無しさん@そうだ選挙にいこう:2010/04/14(水) 16:51:16
>>317
MDBファイルを他所へコピーして、そこからテーブルのデータをコピーすれば、
他作業への影響は全く無いんじゃない?
319名無しさん@そうだ選挙にいこう:2010/04/14(水) 19:16:09
test
320名無しさん@そうだ選挙にいこう:2010/04/14(水) 20:50:34
桐ってOracleに接続できるの?
321名無しさん@そうだ選挙にいこう:2010/04/14(水) 23:09:18
桐はDOS時代からオラクル接続が売りの一つ
322名無しさん@そうだ選挙にいこう:2010/04/16(金) 18:34:37
そうだったんですか?初耳だな〜
323名無しさん@そうだ選挙にいこう:2010/04/18(日) 19:40:32
何でこんなに高いんでしょう。
三万じゃなく一万五千くらいなら買うのに
324名無しさん@そうだ選挙にいこう:2010/04/18(日) 19:58:02
googleのなら無料だよ!
325名無しさん@そうだ選挙にいこう:2010/04/18(日) 20:05:39
ライセンス体系は見直した方が良いとは俺も思うな。
326名無しさん@そうだ選挙にいこう:2010/04/18(日) 20:36:18
>>324
それは何でしょうか?フリーソフトか何かですか?
327名無しさん@そうだ選挙にいこう:2010/04/18(日) 21:10:33
>>323
通販でアカデミックかアップグレード版を買うべし
328名無しさんφ ◆rNiNKtLPbM :2010/04/18(日) 23:45:31
>>323
長年、Access使ってきた身としては、特に高いとは感じないな。

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

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

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

329名無しさん@そうだ選挙にいこう:2010/04/19(月) 00:00:17
でもMSだからなぁ。
2000でSR-1が来るまでは辛かったぜ。
金もらってもいいと思うくらいのレベルだったよ。
330名無しさんφ ◆rNiNKtLPbM :2010/04/19(月) 00:10:14
>>329
Access2007でも、終了時に最適化を行うと最適化失敗したあげくに
ファイルが消滅するバグがあったよ・・・・あれは最悪だった。

パッチやSPが出るまでヒヤヒヤものだった。
331名無しさん@そうだ選挙にいこう:2010/04/19(月) 01:01:14
>>327
学生じゃないし、グレードアップも何も前ヴァージョン買ってないので。
ベータ版を使用してますよ。使えるうちにデータ作るつもり
332名無しさん@そうだ選挙にいこう:2010/04/19(月) 22:43:14
>>323
Access2007は22,000円位で実売してるだろ
自分はoffice2010へのアップグレードを考えて
アップグレード版のプロフェッショナル買ったけど
333名無しさん@そうだ選挙にいこう:2010/04/22(木) 23:18:21
access2003の以下の症状で困ってます。

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

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

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

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

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

334名無しさん@そうだ選挙にいこう:2010/04/22(木) 23:48:40
パッチをあてる
335名無しさん@そうだ選挙にいこう:2010/04/23(金) 02:27:42
Access2010 RTM 記念sage
336名無しさん@そうだ選挙にいこう:2010/04/23(金) 04:53:58
backstage ちょっとおもしろいねぇ
配布アプリケーションの設定とかに使えそうな気配
337名無しさん@そうだ選挙にいこう:2010/04/23(金) 13:24:10
64bit版で作成したaccdeは32bit版では作動しねぇの忘れてたぁ。ぐぬぬぬ
32→64も同じだぁ。ぐぬぬ

VBA7へのVerUp!
338名無しさん@そうだ選挙にいこう:2010/04/23(金) 14:45:35
まじで?
32→64は問題なさそうだが、そうもいかないの?
339337:2010/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名無しさん@そうだ選挙にいこう:2010/04/24(土) 19:11:22
高すぎるが、これって待っていれば新しいバージョンどんどんでて
そのうちに安くなる可能性ってある?(二万円くらいならなんとか)
341名無しさん@そうだ選挙にいこう:2010/04/24(土) 21:19:34
>>340
6月に発売される Access 2010 は既にアップグレード版が \11,813, 通常版が \13,986 だよ。
http://kakaku.com/item/K0000107198/
342名無しさん@そうだ選挙にいこう:2010/04/24(土) 22:20:24
ようやく2010のレイアウトに慣れてきたばかりだと言うのに・・・
ところで、何が違うんだ?
343名無しさん@そうだ選挙にいこう:2010/04/25(日) 07:50:48
>>341
おお!サンクス!!
344名無しさん@そうだ選挙にいこう:2010/04/27(火) 08:04:23
長いことjetで使っていたaccessのシステムをMSDEにしようと思っています。
ただデータはサーバー側に置くのは当然として
プログラムは今までどおりクライアントに置いた方がいいのか迷ってます。
サーバーに置いても構わないのならプログラムの修正の時簡単ではいいのですが?
どなたかアドバイスいただけないでしょうか?
345名無しさん@そうだ選挙にいこう:2010/04/27(火) 09:08:26
MSDEってどういう意味で使ってるんだ?
俺が無知なだけなのかもしれないけど。

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

Thinクライアントで、ってこと?
346名無しさん@そうだ選挙にいこう:2010/04/27(火) 15:24:04
>>344
アップサイジングして終了じゃないか。
347名無しさん@そうだ選挙にいこう:2010/04/27(火) 16:31:43
プログラムはADP内じゃないの?
348名無しさん@そうだ選挙にいこう:2010/04/27(火) 18:47:23
Access2002のファイルを2007に変換したいのですが、
[ホスト名]のユーザAdminが排他的に開いています。データベースが使用可能になった時点で、再度実行してください。
と出てしまい、変換できません。

このファイルをアップサイジングしたいのですが、
一度2007形式にしないとダメなようで困ってます…。
349名無しさん@そうだ選挙にいこう:2010/04/27(火) 20:26:09
>>346
> アップサイジングして終了じゃないか。
おお、すっかり忘れていた。こんな便利な機能があったんだ。
どうもありがとうございました。
350名無しさん@そうだ選挙にいこう:2010/04/28(水) 17:21:26
ACCESS2000
すまそ、ACCESSというよりSQLでなんだが、
以下のようなテーブルからコードが"A"と"B"が両方存在する連番を1回で検索したい場合、どんなSQL文を書けばよい?
(以下のテーブルを検索した結果 "00001"だけ返ってきて欲しいのだす)

連番、行、コード (主キー:連番、行)
0001 01 A
0001 02 B
0002 01 A
0003 01 B
0004 01 B
0004 02 C
351名無しさん@そうだ選挙にいこう:2010/04/28(水) 19:24:58
主キーが「連番、行」ってどういう意味?
連番と行をつなげたものを主キーにしてるってこと?
352名無しさん@そうだ選挙にいこう:2010/04/28(水) 19:38:05
>>350
SELECT 連番 FROM T WHERE コード IN ('A', 'B') GROUP BY 連番 HAVING COUNT(*) = 2
または
SELECT t1.連番 FROM T t1, T t2 WHERE t1.連番 = t2.連番 AND t1.コード = 'A' AND t2.コード = 'B'
353名無しさん@そうだ選挙にいこう:2010/04/28(水) 21:38:29
同じ連番内に同じコードが複数存在することはないの?
あるなら>>352でもまずいと思うけど
354名無しさん@そうだ選挙にいこう:2010/04/29(木) 17:09:10
辞書データみたいなテーブルがあるとして
外来語というかカタカナだけで構成された文字列を抜き出すには
どんな抽出条件を書けばいいんでしょう
355名無しさん@そうだ選挙にいこう:2010/04/29(木) 17:13:50
ごめんなさい、途中で送信しちゃった。
like "*[ア-ン]*"
この書き方だとよけいなものも引っ張り出されてきます。
356名無しさん@そうだ選挙にいこう:2010/04/29(木) 17:16:44
ア-ン
357名無しさん@そうだ選挙にいこう:2010/05/01(土) 11:08:17
一般的にGWだ。俺は仕事だ。だけど少々暇だ
てなわけで、2010でデータマクロをいじってみるぜぇ

ときに、データマクロって実際のところ何に使うよ?
ログとったりタイムスタンプっぽくしてみたりか?
非正規化するあたりで、親子関係のテーブルでレコード数とか関連を補うっつー感じかな?

358名無しさん@そうだ選挙にいこう:2010/05/01(土) 11:22:27
>>357
> ときに、データマクロって実際のところ何に使うよ?

主な目的は、Webに上げた時の参照整合性を自分で組む
359名無しさん@そうだ選挙にいこう:2010/05/01(土) 12:09:36
Windows7 Access2003
で開発しています。

自分のパソコンでは正常に動作するのに
ほかのパソコンで実行するとエラーが発生します。

環境はエラーが起きるマシンもWindows7 Access2003です。
確認できる症状としてはDateadd関数で

実行時エラー'5' プロシージャの呼び出し、または引数が不正です。
と表示される。

SQL文にてReplaseで対象文字列の変換をかけているけど、変換が行われない。
(SQLを流すと特にエラーも発生せず、そのまま実行される)
ちなみにInsertとかDelete,Updateは正常に動く。

このような症状です。

エラーが起きるマシンでAccess2003を再インストールしましたが、
症状はなおりませんでした。

参照設定とか確認してみましたが、特に変わったところとかありません。

エラーが起きるマシン以外の他のマシンにて動作確認してみましたが、
正常に動作しました。

何かが壊れているのでしょうか。
360名無しさん@そうだ選挙にいこう:2010/05/01(土) 14:38:19
>>359
Microsoft Data Access Components (MDAC) のバージョン違い。
361357:2010/05/02(日) 01:29:54
>>358
>主な目的は、Webに上げた時の参照整合性を自分で組む

そーなんだろーなぁ。と思いSharePoint2010も用意してみた。
ええなぁと思った。WSSに比べるとだいぶ使いやすくなってんのなぁ。
しかし、コスト的に敷居が高いなぁ。foundationでもaccess使わして欲しいぜ

マクロの役割が向上したということで、どううまく使うかってとこか。
362名無しさん@そうだ選挙にいこう:2010/05/04(火) 19:44:10
すいません、スレの主旨から外れるのですが、
「アクセスでこんなことが可能ですか?」という質問させてください。

(質問)
現在使用中の会計ソフトには、仕訳データをテキストファイルでエクスポートする機能が付いています。
このテキストファイルを取り込んで、次のように総勘定元帳を出力できるでしょうか?

・任意の勘定科目を指定
・任意の部門を指定
・任意の期間を指定

もちろん、仕訳データは「勘定科目」「部門」「期間」といった情報を持っています。

よろしくお願いいたしますm(_ _)m
363名無しさん@そうだ選挙にいこう:2010/05/04(火) 23:15:01
>>362
魔法の道具じゃねぇから、出来る出来ないはYou次第
364名無しさん@そうだ選挙にいこう:2010/05/04(火) 23:32:09
>>362
できる。

以上
365名無しさん@そうだ選挙にいこう:2010/05/05(水) 05:35:51
>>362
Accessにはテキストデータを[テーブル]にインポートする機能がありますので、
会計ソフトの仕訳データを利用することは可能です。(>>364
ただし、インポートしたデータを希望される形で抽出したり印刷したりする仕組みは
ご自身で作り込む必要があります。(>>363
366名無しさん@そうだ選挙にいこう:2010/05/05(水) 08:15:11
>>362
会計だの定型つーか、ありがち想定内の処理は、
桐にしとくと簡単確実
367名無しさん@そうだ選挙にいこう:2010/05/05(水) 13:05:13
access2010いじり倒しましたぁ
アプリケーションパーツとフィールドテンプレートは、ちょろっと便利ですなぁ
ナビゲーションウインドウは画面遷移がすっきりするのですが、利用の際は検証したほうがよさげ
分割フォームは2007での不具合がいくつか解消されている模様
標準になったWebブラウザコントロール、以前のものより使えそう。ぐぐるまっぷ表示でもするべ
コントロールのサイズを規定値として記憶してくれるのはええなぁ
マクロエディタと式ビルダ、IntelliSenseが効くから使いやすくなった
ショートカットメニューバーをRiboonXmlで運用できたらよかったなぁ

GWそろそろ終了のお知らせ
368367:2010/05/05(水) 13:06:52
ナビゲーションフォームでしたね
369名無しさん@そうだ選挙にいこう:2010/05/05(水) 14:19:30
ブラウズツゥーマクロアクションは試したかい
370名無しさん@そうだ選挙にいこう:2010/05/05(水) 17:06:39
BrowseTo試したよ。
ヘルプには、新しいウィンドウを開かずに form1 から form2 に移動する場合に使用します。
となってるけど、普通にForm1閉じてからForm2開く。
通常のフォームだと
Form1:Unload→Deactivate→Close→Form2:Open→Load→Activate→Current
SubFormだと、
Form1:Unload→Close→Form2:Open→Load→Current
なのだけど、
UnloadでCancel=trueとした場合にありゃりゃって感じ
371名無しさん@そうだ選挙にいこう:2010/05/05(水) 21:35:54
色々と報告乙でやんス
非常に参考になった
372名無しさん@そうだ選挙にいこう:2010/05/06(木) 07:46:50
ソフトウェアバージョン:WindowsXPPro,Access2003

VBAにのブレークポイントについてです.
ブレークポイントを設定したのですが,テスト中に中断されません.
ブレークポイントを有効にする方法はありませんでしょうか?

検索の結果,
http://support.microsoft.com/kb/299257/ja
の文書を参考にしようとしましたが,
[ ツール ] メニューの [ スタートアップ ]が見つからず手詰まりになってしまいました.

よろしくお願いします.
373名無しさん@そうだ選挙にいこう:2010/05/06(木) 07:48:36
374372:2010/05/06(木) 18:10:23
自己解決しました
375名無しさん@そうだ選挙にいこう:2010/05/07(金) 22:38:42
2010のパッケージソリューションウィザードがダメな子なのじゃ
セキュリティ設定のレジストリキーをまちがっとるので、設定が有効にならんの
ご利用の方は、修正が来るまでキー追加して使うとよいのじゃ。
ファイルのパッケージ追加できない事象もある。ヒッヒッフー
376名無しさん@そうだ選挙にいこう:2010/05/07(金) 23:04:11
などと意味不明な供述を繰り返しており
動機は未だ不明である
377名無しさん@そうだ選挙にいこう:2010/05/08(土) 17:58:01
Access2003でデータシートフォームを使用しています。
金額を入力させる場所があるのですが、そこの値が変更されたらUpdate分でこのレコードのフラグの値を変える
事をしています。

Update文で変更するのはいいのですが、変更された値を画面上に更新したいのです。
そのままフォーカスを離れるとデータの競合というダイアログが表示されます。


調べたらDoCmd.RunCommand acCmdSaveRecordを使用するといいみたいなことが書いてあったので、
AfterUpdateの中に記述したのですが、同じくデータの競合のダイアログが表示され、その後に
実行時エラー3197
「ほかのユーザが同じデータに対して同時に変更を試みているので、プロセスが停止しました。」
と表示されます。

やりたいことは、金額入力欄の値が変更されたら、このレコード内のフラグを変更して、
その変更されたフラグの値を見て条件書式で色を変更したいのです。
Updateで変更したフラグの値が画面上でリアルタイムに変更されればいいのですが、、、
何かいい方法はないでしょうか。

Private Sub 金額_AfterUpdate()

'手動変更されたらフラグを立てる
'1セット(手動更新された)
Tmp_SQL = "UPDATE ●●テーブル SET 入力チェック=1 WHERE ●●コード=〜・・・・"

DoCmd.RunSQL Tmp_SQL
DoCmd.RunCommand acCmdSaveRecord←ここで落ちる

End Sub
378名無しさん@そうだ選挙にいこう:2010/05/08(土) 18:03:52
フラグ使わずに、金額入力欄のダーティープロパティで出来ないか?
379377:2010/05/08(土) 18:53:05
>>378
すみません、事故解決しました。
本当にありがとうございました。
380名無しさん@そうだ選挙にいこう:2010/05/09(日) 19:41:54
Access2010 βで俺が報告した不具合が治ってねーな
表形式でESCキーアンドゥすると表示位置がズレる
381名無しさん@そうだ選挙にいこう:2010/05/09(日) 21:31:44
Access97/WindowsXP

不一致クエリで二つのフィールドを比較して一致するデータがない名前(間違っている名前)
を抽出してるんですが、ここから更に名前を正しく書き換えたいんです。
クエリだと編集できないのでフォームでも同じような事って出来ないでしょうか?
382名無しさん@そうだ選挙にいこう:2010/05/10(月) 00:31:13
>>381
     *      *
  *  MURIです  +
     n ∧_∧ n
 + (ヨ(* ´∀`)E)
      Y     Y    *
383名無しさん@そうだ選挙にいこう:2010/05/10(月) 12:35:11
Access2003で詳細の部分に編集ロックをかける事はできますでしょうか。
詳細の部分に入っているコントロールに対して一つ一つ編集ロックをかけると手間かかるので
詳細の部分自体に編集ロックをかけられないかと思ったのです。
384名無しさん@そうだ選挙にいこう:2010/05/10(月) 12:40:36
詳細セクションの全てのコントロールをロックしたいの?
385383:2010/05/10(月) 13:07:11
>>384
そうです。
一括でできないのかなと。
386名無しさん@そうだ選挙にいこう:2010/05/10(月) 13:15:51
For each control In Section.acdetail.contorols じゃダメか?
いま出先で記述不正確だが
一括でもAccessの中の人は同じことを行ってる
387383:2010/05/10(月) 13:42:36
>>386
     *      *
  *  できました!  +
     n ∧_∧ n
 + (ヨ(* ´∀`)E)
      Y     Y    *
388350:2010/05/10(月) 14:38:55
>>352-353
どもです、GW明けで何のことを質問したかすっかり忘れてたのを今日思い出したorz
INとHAVINGを使って実現できました、どうもありがとう!
ちなみに同じ連番内に同じコードが複数存在することはあるけど、
連番とコードでGROUP BYしてから INとHAVINGを使ったらいけたよ。

>>351
テーブルのデザインビューで項目「連番」と「行」の2行に主キーを設定した状態だよん。
389名無しさん@そうだ選挙にいこう:2010/05/10(月) 22:06:41
>>382
無理ですか…(´・ω・`)
ありがとうございました
390名無しさん@そうだ選挙にいこう:2010/05/11(火) 14:51:24
391名無しさん@そうだ選挙にいこう:2010/05/13(木) 07:31:19
もぐにしつこい人が沸いてるな。
392名無しさん@そうだ選挙にいこう:2010/05/13(木) 11:38:38
あーうー、ここにきて64にしよか32にしよか迷ってる。
どーすっかなー。
基本的に64版で開発して、そのまま64用パッケージ作って、VitualPC上の32版で32用パッケージ製造か。
2010Runtime使ってもらうことを前提として、、、ん、2003/2007製品版インストール済みに2010Runtime
インストールするとどうなるか未確認だったわ。ちと確認してくる。後で勝手に報告しにくる

>>391
2003でexcelにエクスポートしたいって件かな?
お付き合いしてる人はえらいよなw
解決したっぽいけど、結局どうすんだろな。。まさかのXML書き出してxlsx製造するんだろか
テンプレ用意してODBCで流し込めばいいか。
393名無しさん@そうだ選挙にいこう:2010/05/13(木) 11:53:25
Null、Falseを論争しているやつかと思った。
394名無しさん@そうだ選挙にいこう:2010/05/13(木) 11:57:54
2010 Updated 関数はメモ型フィールドではサポートされていません。orz
395392:2010/05/13(木) 13:14:24
チラ裏言われようが勝手に報告
2007/2003製品版インストール済み環境に2010Runtimeいれっと、
いつもの通りofficeのprofile設定が走るぜ。わかってればなんともないが
ユーザが騒ぐかも知らんからちとやだな。
64で開発して、2010-32/64と2007の配布3本立てでいくわ。
accessインストールしてるユーザすくねぇしよ。腹くくった。

>>393
そっちもなかなかだな

>>394
[F_メモ型] <> Old.[F_メモ型] ではあかんかな。試してないけど。
396392:2010/05/13(木) 13:32:49
>>394
Oldもだめだったね。o....rz
メモ型フィールドのLenか何かを別フィールドで格納しておいて、
そっちでUpdatedを見る感じならだね

2010runtime修復インストールすると、プロダクトキー入力のオプションがでるんだぜ。
397名無しさん@そうだ選挙にいこう:2010/05/13(木) 13:36:57
>>395
とも、
Old.[F_メモ型] は、メモ型であるために使用できません。 orz

つーか、変更前データマクロでは Old. 自体が無理かなぁ。
398名無しさん@そうだ選挙にいこう:2010/05/13(木) 15:41:11
>>397
変更前でOld使うのはもんだいないっしょ。データ型に制限あるっつーことで。
後考えられるのは、メモ型フィールド同士の比較ができるとして、
名前付きデータマクロにパラメータで渡して比較して処理って感じ?
パラメータにメモ型使えるんかな。あーでも、変更前ってとこから外れちゃうな
399名無しさん@そうだ選挙にいこう:2010/05/13(木) 15:58:03
評価版がきてたのね....
400名無しさん@そうだ選挙にいこう:2010/05/13(木) 15:58:23
変更前でも Oldありなんだな、ありがd
実はまだ余り試していない
やはりDBでメモ型は邪道だ
401名無しさん@そうだ選挙にいこう:2010/05/13(木) 16:52:03
邪道だけど、それがACCESSの良いところ。
402391:2010/05/13(木) 18:45:51
>>393
一度閉じたスレ建て直してまで
マジ、こえーよ。

絶対、関わりたくない人種だw
403名無しさん@そうだ選挙にいこう:2010/05/14(金) 07:15:54
知識をひけらかしたいだよ
404名無しさん@そうだ選挙にいこう:2010/05/16(日) 17:05:29
Access2007を使用しています。
アクションクエリを実行時に警告メッセージを出さないようにしたいのですが、上手くいきません。
メッセージの設定という項目で表示を出さないように設定するため、
すべてのアクションを表示を選択して表示させるということまでは調べてわかりました。
しかし、それが選択できない状態になっていて、メッセージの設定が出せません。
セキュリティセンターで、開いているデーターベースファイルを信頼できる場所に設置して開いているのですが…。
全てのアクションを表示を選択可能状態にさせるにはどうしたらよいでしょうか?
405名無しさん@そうだ選挙にいこう:2010/05/16(日) 17:10:43
>>404
> メッセージの設定という項目で表示を出さないように設定するため、
> すべてのアクションを表示を選択して表示させるということまでは調べてわかりました。

どこを調べれば、そんなトンチンカンなことが書いてあるのよ?
406名無しさん@そうだ選挙にいこう:2010/05/16(日) 17:17:37
「Access メッセージの設定」でぐぐるとでてきたのですが・・・。
あと、Accessクエリの本にも載っていました。
407名無しさん@そうだ選挙にいこう:2010/05/16(日) 17:41:19
君はあまりに頭が良すぎるみたいだ
どんなに検索しても、どんな本も、君には無意味だろう
408名無しさん@そうだ選挙にいこう:2010/05/16(日) 17:53:26
>>407
おそらく自分が勘違いしてると思うのですが、その点をご指摘願えないでしょうか・・・。
409名無しさん@そうだ選挙にいこう:2010/05/16(日) 18:02:20
どんな指摘も無意味の気がするが、とりあえず…

> 「Access メッセージの設定」でぐぐるとでてきたのですが・・・。
> あと、Accessクエリの本にも載っていました。

なのか?
そうなのか?
指摘を求める前に、本当にそうなのか? ただ適当に書いただけじゃないのか?
本当にそうなら、それで良いじゃん
410名無しさん@そうだ選挙にいこう:2010/05/16(日) 18:08:21
うーん、>>404の語句の使い方がおかしくて上手くお伝えできなかったのでしょうか・・・。
一応、紹介されていたところをはってみます。
ttp://www.relief.jp/itnote/archives/001879.php
411名無しさん@そうだ選挙にいこう:2010/05/16(日) 18:15:26
>>410
ああ、君が正しかった
レジストリ弄ってサンドボックスモードを解除してみれ
ヘルプで調べて
412名無しさん@そうだ選挙にいこう:2010/05/16(日) 18:17:36
マクロの使い方の話なんだなw
クライアントの設定かと思ったぜ。あーははは
413名無しさん@そうだ選挙にいこう:2010/05/16(日) 18:24:30
言葉足らずですみません。
アドバイスありがとうございます、やってみます。
414名無しさん@そうだ選挙にいこう:2010/05/16(日) 23:06:54
accessを本で勉強しておりますが、DAOが出てきてから疑問が湧き進めません。
DAOのメリットがわからないのどの状況で使えばいいのか分からないのです。
DAOを介して操作するのはなんの為なんでしょう。
最初はaccessが無くてもVisual Basicで作ったソフトから操作するためなのかな?と思っておりましたが、それならランタイムでもいけます。
抽出や入力等はクエリでもVBAでも同じ事が出来ますよね。
DAO使用を前提にVBAを書いて行く理由等を教えていただけませんでしょうか。
415名無しさん@そうだ選挙にいこう:2010/05/16(日) 23:34:46
>>414
> 抽出や入力等はクエリでもVBAでも同じ事が出来ますよね。
抽出や入力等は、もともとAccessで出来るだろ
Accessアプリケーションレベルで出来ないことを、オマケに付いてるVBAで扱いたいが、
データベーステーブルはVBAで扱えるオブジェクトでないから普通には無理
DAOを通せばデータオブジェクトとして扱えるっと

こんな不自由なことしてるから不安定でバグが多い
全て専用で出来てる桐の安定感が気持ち良く感じる
416名無しさん@そうだ選挙にいこう:2010/05/17(月) 00:26:15
>>414
accessって単体で動いているわけじゃないのよ。
実際にはJETとかのDBエンジンが本体で、
accessはDBを扱いやすくするためのお助けツールみたいなもの。

標準の機能でなければ、プログラム的手続きを踏んで接続する必要がある。
つうことじゃないの?
417名無しさん@そうだ選挙にいこう:2010/05/17(月) 03:43:12
>>414
>44
>100
418名無しさん@そうだ選挙にいこう:2010/05/17(月) 20:01:01
返答ありがとうございます。
accessを介さないでデーターベースをいじる方法としてDAOがあると考えてしまえばいいのでしょうか。
(メリットは速さ)
単にVBAではaccessが間に入ってしまう(ある程度は早くなるが)
そういう認識でもいいのでしょうか? 自信ないですが。
419ジョニー:2010/05/17(月) 23:53:03
すみません。accessの初心者なので、当たり前的な質問をさせてもらいます。
accessのデータ型で「テキスト型」のフィールドプロパティのフィールドサイズ
で0を入力するとどんな効果があるのでしょうか?
420名無しさん@そうだ選挙にいこう:2010/05/18(火) 02:08:09
>>419
いくら初心者でも、自分で確認できるものは人に聞くなよ。
ちなみに0を指定していったんテーブルを閉じ再度開くと255となる。
テキスト型はあまりにも短い文字列では(10文字程度)、効率が悪くなる。
421名無しさん@そうだ選挙にいこう:2010/05/18(火) 06:09:20
というか、フィールドサイズ0のテキスト型フィールドを作ることに
いったい何の意味があるのか、そっちの方を聞きたい。
漏れの想像力を超えていて、何も思いつかない。
422名無しさん@そうだ選挙にいこう:2010/05/18(火) 07:54:21
気持ちはわからんでもない。
意味が無いと思われる設定がなぜできるのか?
みたいな感じだろ?
423名無しさん@そうだ選挙にいこう:2010/05/18(火) 09:59:36
2010試用の方に問い合わせですよ。
[テーブルツール]タブ-[フィールド]タブ-[フィールドサイズ]でフィールドサイズの変更ってさ、
0〜255を指定しろよって怒られること多いんだが、俺だけか?
正直、その契機もわからんのである。
424423:2010/05/19(水) 18:35:04
>>423の件、なんとなく原因がわかった、、
64bit版がダメみたいだ。32はすこぶる調子がよい。
別件、64bitはIMEModeプロパティが効かないダメな子になってる。とても面倒だ

実際使って、32bit推奨ということは骨身にしみた
425423:2010/05/19(水) 19:25:40
連続になってて申し訳ない。
気になって追試した結果、>>423 >>424の件は大丈夫かもだ。
OSインストールから始めたクライアントだと問題が見られなかった。
なので、
調子悪かったらクリーンな状態のPCにインストールすることを検討したほうがいいかも
ということに訂正させておくれ。
426sage:2010/05/22(土) 17:56:05
Access2007を使っております。
このたび、設問A/B/C/D/Eに対する回答の集計を
とりたいのですが・・・
まず、
名前 ,A,B,C,D,E
Wさん,2,1,1,2,2
Xさん,2,2,2,1,1
Yさん,3,2,1,3,2
Zさん,2,2,3,3,1

というデータから、
A 1: 0件
A 2: 3件
A 3: 2件
B 1: 1件
B 2: 3件
B 3: 0件
C 1: 2件
C 2: 1件
C 3: 1件
D 1: 1件
D 2: 1件
D 3: 2件
E 1: 2件
E 2: 2件
E 3: 0件
というような、集計結果を作りたいのですが、簡単に作る方法ってないでしょうか?
クエリで全パターンでカウントを取るとかすれば出来るのは解っているのですが、もっと簡単に集計を取れないでしょうか?
427426:2010/05/22(土) 17:57:13
質問がながくてすみません、さらに[sage]使う位置間違えてしまって
あげてしまいましたが、なにとぞご教示ください
428名無しさん@そうだ選挙にいこう:2010/05/22(土) 18:33:48
元のデータがそれだと簡単に集計するのは無理だと思う。

終了〜
429名無しさん@そうだ選挙にいこう:2010/05/22(土) 20:12:14
select 'A' as 回答項目,A as 回答番号 from テーブル
union all
select 'B' as 回答項目,B as 回答番号 from テーブル
union all
・・・

でまず縦持ちにバラす
あとは外部結合とかgroup byでなんとかなるっしょ
430名無しさん@そうだ選挙にいこう:2010/05/22(土) 21:35:08
設問の数+1個のクエリを作って良いなら、設問毎の集計を行うクエリを作って、
最後にユニオンクエリでくっつければいいと思うけど、設問の数が膨大で
もっと簡単に作りたいってことならちょっとわかんないや…。
431名無しさん@そうだ選挙にいこう:2010/05/22(土) 22:57:28
Excelならピボットで簡単。データをバラすのは同じだけど。
432名無しさん@そうだ選挙にいこう:2010/05/22(土) 23:38:36
大体さ、A 1: 0件 って時点で簡単に出すのは無理っしょw
433名無しさん@そうだ選挙にいこう:2010/05/22(土) 23:55:59
もっと簡単にしたいということが、割と難しいことがある
434名無しさん@そうだ選挙にいこう:2010/05/23(日) 02:29:07
>>432
回答項目の数にあわせたダミー的テーブルを作って、それと外部結合
NULLはゼロに置き換える
全然難しくないよ
435426:2010/05/23(日) 05:56:01
>>429-432
なるほど・・・
ユニオンクエリですね
色々とご助言ありがとうございます
うまくいったら報告いれます!
436名無しさん@そうだ選挙にいこう:2010/05/23(日) 07:27:21
>>434
ああ、ダミーテーブルを作ってLeft joinすれば良いけど、それは質問者の簡単の範疇じゃないと判断した。
437名無しさん@そうだ選挙にいこう:2010/05/23(日) 07:34:37
まとめると

@設問をばらばらにする。(union)
A設問を集計する。(group by)
Bleft join用のテーブルを手作りする。
CAとBを結合する。

確かに簡単なやり方ではあるが、質問者には簡単なやり方じゃないと思うな。



438名無しさん@そうだ選挙にいこう:2010/05/23(日) 07:51:05
@とAをまとめると

SELECT Max("A") AS 質問項目, [テーブル1].A as 番号, Count([テーブル1].A) AS カウント
FROM テーブル1
GROUP BY [テーブル1].A;
UNION ALL
SELECT Max("B") AS 質問項目, [テーブル1].B as 番号, Count([テーブル1].B) AS カウント
FROM テーブル1
GROUP BY [テーブル1].B;
UNION ALL
SELECT Max("C") AS 質問項目, [テーブル1].C as 番号, Count([テーブル1].C) AS カウント
FROM テーブル1
GROUP BY [テーブル1].C;
UNION ALL
SELECT Max("D") AS 質問項目, [テーブル1].D as 番号, Count([テーブル1].D) AS カウント
FROM テーブル1
GROUP BY [テーブル1].D;
UNION ALL
SELECT Max("E") AS 質問項目, [テーブル1].E as 番号, Count([テーブル1].E) AS カウント
FROM テーブル1
GROUP BY [テーブル1].E;
439名無しさん@そうだ選挙にいこう:2010/05/23(日) 07:54:29
>>438 を実行すると

質問項目 番号 カウント
A 2 3
A 3 1
B 1 1
B 2 3
C 1 2
C 2 1
C 3 1
D 1 1
D 2 1
D 3 2
E 1 2
E 2 2

欠番が出る。
440426:2010/05/23(日) 08:24:36
>>439

A1
A2
A3
B1
B2
B3


というテーブルを作って、マッチング(選択クエリ)
で何とかしようと思います!
441名無しさん@そうだ選挙にいこう:2010/05/23(日) 08:42:31
>>440
テーブル2にこれを作る

質問項目
A 1
A 2
A 3
B 1
B 2
B 3
C 1
C 2
C 3
D 1
D 2
D 3
E 1
E 2
E 3
442名無しさん@そうだ選挙にいこう:2010/05/23(日) 08:44:10
づつき

SELECT "A "& [テーブル1].A as 質問項目, Count([テーブル1].A) AS カウント
FROM テーブル1
GROUP BY [テーブル1].A;
UNION ALL
SELECT "B "& [テーブル1].B as 質問項目, Count([テーブル1].B) AS カウント
FROM テーブル1
GROUP BY [テーブル1].B;
UNION ALL
SELECT "C "& [テーブル1].C as 質問項目, Count([テーブル1].C) AS カウント
FROM テーブル1
GROUP BY [テーブル1].C;
UNION ALL
SELECT "D "& [テーブル1].D as 質問項目, Count([テーブル1].D) AS カウント
FROM テーブル1
GROUP BY [テーブル1].D;
UNION ALL
SELECT "E "& [テーブル1].E as 質問項目, Count([テーブル1].E) AS カウント
FROM テーブル1
GROUP BY [テーブル1].E;

これで集計する
443名無しさん@そうだ選挙にいこう:2010/05/23(日) 08:44:50
つづき

結果は、

質問項目 カウント
A 2 3
A 3 1
B 1 1
B 2 3
C 1 2
C 2 1
C 3 1
D 1 1
D 2 1
D 3 2
E 1 2
E 2 2
444名無しさん@そうだ選挙にいこう:2010/05/23(日) 08:45:59
つづき

SELECT [テーブル2].質問項目, IIf(IsNull([カウント]),0,[カウント]) AS 件数
FROM テーブル2 LEFT JOIN [テーブル1 クエリ] ON [テーブル2].質問項目 = [テーブル1 クエリ].質問項目;

結合すると

質問項目 件数
A 1 0
A 2 3
A 3 1
B 1 1
B 2 3
B 3 0
省略・・・

445名無しさん@そうだ選挙にいこう:2010/05/23(日) 09:06:15
>>440
いきなりSQLで書くんじゃなくて、>>430みたいなやり方をするなら
回答番号テーブルはそんなに複雑にしなくてもいいんじゃないかな?
↓こんな感じ。

番号
1
2
3

で、各々の設問にばらした集計用のクエリに回答番号テーブルを
外部結合すると、回答数が0の番号もちゃんと「0」と表示されるよ。

各々の設問で集計用のクエリができたら最後にユニオンクエリでまとめる…と。
これならSQLを書くのは最後だけでいいし。

…まあ、どっちでもいいのかな。>>426のわかりやすい方法で。
ファイル作ったから、ほんとはそれを見てもらうのが一番早いんだけど。(笑
446426:2010/05/23(日) 10:12:59
>>445
なるほど、設問テーブルと回答番号テーブルを別々に
作って、集計とると言うのも頭良いですね!

あるいは、

名前 ,A,B,C,D,E
Wさん,2,1,1,2,2
Xさん,2,2,2,1,1
Yさん,3,2,1,3,2
Zさん,2,2,3,3,1

の各項目にタイトルの値A〜Eまでの値を付与できると


名前 , A, B, C, D, E
Wさん,A2,B1,C1,D2,E2
Xさん,A2,B2,C2,D1,E1
Yさん,A3,B2,C1,D3,E2
Zさん,A2,B2,C3,D3,E1

こういう感じに出来るので、
このファイルにあるA1〜E3までのカウントをとると言うやり方
と言うのもありなんですかね?
447名無しさん@そうだ選挙にいこう:2010/05/23(日) 10:20:39
折角動く例を書いてくれている人もいるのにスルーかよ。

酷い奴だな。
448426:2010/05/23(日) 17:59:44
>>441-445
できました!
解りやすくまとめていただいてどうもありがとうございました!

この後、このデータをCSVに落として、定型のExcel文書に差し込んで
集計作業完了です(ここは私の得意分野なのでVBSで一気に差し込んでしまいます)。


SQLだと抽出条件を変えたい場合も"Where="で変えられるので非常に便利ですね
VBSで2次元テーブルでやろうとしたら非常に手間がかかるのと処理時間がかかって
しまって困ってしまっていました

>>447
すみません、スルーしたわけではないのです・・・
449名無しさん@そうだ選挙にいこう:2010/05/23(日) 18:36:39
>>448
アクセスのVBAから出来るじゃん。
450名無しさん@そうだ選挙にいこう:2010/05/24(月) 00:58:55
上司が「お前、Accessを扱えるようになれ」と言って、
何の目的で、誰が使うのかを聞いても答えてくれないのですが、
一から教えてくれるような、「Accessの勉強するならこれ!」って本はありますか?
または、お勧めの出版社だけでも教えていただけると幸いです。

私のほうは、Excelの簡単なマクロなら組めるレベルです。
451名無しさん@そうだ選挙にいこう:2010/05/24(月) 08:52:12
>>450
「アクセス入門」みたいな本だったらだいたいどれも同じだから適当に買ってOK。
一回読んだ開かなくなると思う。
DBに触れるのが初めてならDBの解説にページを割いているものがいいと思う。
452名無しさん@そうだ選挙にいこう:2010/05/24(月) 22:00:06
ACCESSって本体が持ってる機能とマクロだけでそれなりのことができるんだけど、
できる限りVBAでやった方が他への応用が利くので「アクセス入門」が良いのか
どうかのかは何ともいえん。
453名無しさん@そうだ選挙にいこう:2010/05/24(月) 22:57:01
Access本体の機能をある程度理解するのが先だと思う
視覚で追えるリレーションやクエリは、後学のためになる
454名無しさん@そうだ選挙にいこう:2010/05/25(火) 18:27:06
データベースとか正規化に関する本を読んどいたほうがいい気が...
455名無しさん@そうだ選挙にいこう:2010/05/25(火) 18:57:35
正規化とリレーションを理解した上でのテーブル設計、
クエリによる結合の仕方(内部、外部、ユニオン)できればSQLで
での理解ができるようになると、後でVBA上でクエリを扱うようになった場合
有利になるのでがんばって覚えな
456名無しさん@そうだ選挙にいこう:2010/05/26(水) 09:14:51
ACCESS2000(SP3+Office Updateは極力掛けてます)+WINXPなのですが、サブフォームを2つ持つフォームの挙動がおかしくて困ってます。
開こうとするとよくACCESSが不正終了することがあります。
メインフォーム、2つのサブフォームは全てレコードソースに別々のテーブルを設定してます。
同じようなことを経験したことありますか?

いろいろと解決するべく、MDBの最適化、MDBファイルを新しく作ってオブジェクトをインポート、
かなり重労働だけどフォームを作り直してVBAソースをコピペしたりしても改善される様子もなく・・・
457名無しさん@そうだ選挙にいこう:2010/05/26(水) 09:20:58
することがあります。
することがあります。
458名無しさん@そうだ選挙にいこう:2010/05/26(水) 18:19:30
しょぼいマシン使ってるだけ
459名無しさん@そうだ選挙にいこう:2010/05/26(水) 20:25:29
>>456
Openイベントとかで何か処理してるの?
460名無しさん@そうだ選挙にいこう:2010/05/26(水) 22:02:24
>>456
Access2010にしなはれ
461456:2010/05/27(木) 14:43:57
>>458
そんなことは言わずに。

>>459
ありがとうございます。
Openイベントでは各コントロールの条件付き書式やVisible、Enabled、Lockedの設定、
テキストボックスのValueに文字列やNullの設定などをしてます。
今は不正終了は起きていないんですが、あるとき突然起き始めます。

>>460
バージョンを上げるのはひとつの手ですが、予算の関係と、2010はまだ怖くて。。
462名無しさん@そうだ選挙にいこう:2010/05/27(木) 16:26:06
>>456
mdbの大きさは? 
システムが使用する分を加えると2GBになって起動失敗とか。
463名無しさん@そうだ選挙にいこう:2010/05/27(木) 19:47:48
>>456
気休めにOpenからLoadに移せるもの移してみたら?
464名無しさん@そうだ選挙にいこう:2010/05/27(木) 21:41:30
固定長のテキストファイルに、SJISと西ヨーロッパ文字の文字コードが混在しており、
インポート時に上手く区切れません。
何か良い解決方法はありませんでしょうか。
465名無しさん@そうだ選挙にいこう:2010/05/27(木) 21:52:03
>>464
手間だけど、CSVにするプログラムを作って、カンマで区切る。
466名無しさん@そうだ選挙にいこう:2010/05/27(木) 23:43:02
>>461
こんなんしか見つからなかった・・・
ttp://support.microsoft.com/kb/200600/ja

サブフォームの参照テーブルがリンクテーブルならこれも
ttp://support.microsoft.com/kb/261000/ja

後はタスクマネージャのプロセスにMSACCESS.EXEが残った状態で
起動したら不正終了したことはある。( XP + ACCESS2002の時に )
467450:2010/05/28(金) 00:59:00
返事が遅くなりましてすみません。
SQLと、初心者向けのアクセス本を探してみます。

どうやら、設備管理にアクセスを使いたいような雰囲気になってきてます。
468名無しさん@そうだ選挙にいこう:2010/05/30(日) 17:25:33
>>467
やめとけ。まだ早い・
469名無しさん@そうだ選挙にいこう:2010/05/31(月) 00:26:01
BrowseToマクロアクションの Where Condition/Where 条件式 が機能しないのだが…
俺、なにか勘違いしてるかな?
他の人は動いてますか?
470名無しさん@そうだ選挙にいこう:2010/05/31(月) 02:11:45
>>469
うん、きちんと機能してるよ
471468:2010/05/31(月) 08:41:01
どうも、[年月日] > #2010/05/01#  としても全部抽出されちゃう、たぶん何か間違えてるが解らん…
472名無しさん@そうだ選挙にいこう:2010/05/31(月) 10:55:09
他の条件式とor関係
473名無しさん@そうだ選挙にいこう:2010/05/31(月) 11:06:12
えっ、そうなん?
あした試してみる…が、ヘルプには書いてない
474名無しさん@そうだ選挙にいこう:2010/05/31(月) 11:56:50
>>471
その条件式でも問題ないはずなんだが、、、。
BrowseToのWhere条件は遷移先のFilterプロパティに入る値だから、それ確認すればわかるんじゃね?

俺は、
DoCmd.BrowseTo acBrowseToForm, "F_遷移先", , "[年月日]>" & Me.年月日, , acFormEdit
って使って、おそらく同じ罠に引っかかった。ははは
475468=473:2010/05/31(月) 12:12:26
色々試してみたが、フィルタプロパティに設定されるだけみたい、何だよこれ
476名無しさん@そうだ選挙にいこう:2010/05/31(月) 12:13:35
被った、>>474
そうなんね
477474:2010/05/31(月) 12:56:06
俺はフォームフィルタ好きじゃないから、BrowseTo使うときは遷移先の
コントロールソースはクエリにして、その抽出条件に使う値をTempVar
かなんかで渡そうかと思ってる。
478名無しさん@そうだ選挙にいこう:2010/05/31(月) 13:15:44
うん、俺もフォームフィルタは使用者が操作時に使うのが良いと思ってるんで、クエリの抽出条件だなぁ、振出しに戻るっと
479474:2010/05/31(月) 13:21:45
>振出しに戻るっと
えっ、なんか解決してない件あるの?
480名無しさん@そうだ選挙にいこう:2010/05/31(月) 13:42:42
いや、今までクエリの抽出条件つかってたので、BrowseToにすると何か楽チンになるかなぁと思っただけ
481474:2010/05/31(月) 14:20:25
なるほどね
まぁ、Web用に追加された機能と思えるから、なくても困らないって感じかな。
ナビゲーションフォームでは使うことになると思うけど。
サブフォームの使い勝手がよくなるかもしれんね。
サブフォームコントロール:ctrSubformを各自に持つフォームがF_00からF_04まであるとして、
F_00で
 DoCmd.BrowseTo acBrowseToForm, "F_04", "F_00.ctrsubform>F_01.ctrsubform>F_02.ctrsubform>F_03.ctrsubform"
を実行すると勝手にネストしてくれる。順番かえるのもネストの深さを変えるのもできる。
とはいっても実際は深いところからOpenし直してるだけ。誰得なことかもだね。
482名無しさん@そうだ選挙にいこう:2010/06/02(水) 13:15:00
PC1にmdb(リンクテーブル)を置いて、PC2から接続するという環境で
PC2から接続時(PC1にldbファイルができる状態)でLANケーブルを抜く。

この状態でPC2からupdateなどを実行しても、エラーにはならないのですが
(On Error Goto とかでは拾えないって意味です)
どうにかしてエラーを検出する方法ってありませんか?
483名無しさん@そうだ選挙にいこう:2010/06/02(水) 16:31:22
>>482
何で実行してるのかによると思うけど。
ExecuteならdbFailOnErrorオプション付けてないだけとか。
484名無しさん@そうだ選挙にいこう:2010/06/02(水) 17:07:57
>>483
そんなのがあったんですね!ありがとうございます!
試してみたいと思います!

あと
Set RS = OpenRecordset(SQL文)
RS.AddNew
 :
RS.Update
で行った場合も同様のものはないでしょうか・・・?
485483:2010/06/02(水) 18:19:49
>>484
試してないけど、トランザクション切ってみては。
理屈の上では、ロールバックするためにはエラー通知が必須だから、
トランザクション切ったらエラーが発生するようになるかもしれない。

試してないので、結果教えてください。
486名無しさん@そうだ選挙にいこう:2010/06/02(水) 19:14:42
>>485
その前に、「dbFailOnError」の使い方なんですけどどこがいけないのでしょう?
以下のような感じで書いてみたのですが、エラーを取得できずにいます・・・orz
(LANケーブル抜いて登録を実行しても『登録完了』って出てしまうのです)

Sub data_update()
On Error GoTo Err_data_update
Dim DB As DAO.Database
Dim s As String

Set DB = CurrentDb

s = "UPDATE テーブル SET"
s = s & " ID = " & gid & ","
s = s & " 年齢 = " & Me.年齢 & ","
s = s & " データ = '" & Me.データ
DB.Execute (s), dbFailOnError

MsgBox "登録完了", vbInformation, "Test"

Exit_data_update:
DB.Close
Set DB = Nothing
Exit Sub
Err_data_update:
MsgBox Err.Description
Resume Exit_data_update
End Sub
487名無しさん@そうだ選挙にいこう:2010/06/02(水) 21:09:28
>>486
Set DB = CurrentDbのあと追加
DB.TableDefs("テーブル").RefreshLink

リンクテーブルはトランザクション効くんだっけかと思いつつ、
Linkの生存を確かめたらいいじゃない的発想。これで良いかはわからん。
で、そのUpdate文だとキーがない無いように見えるんだが大丈夫なんけ?
488名無しさん@そうだ選挙にいこう:2010/06/03(木) 23:58:29
access2010って2007からほとんど変化が見られないな・・
489486:2010/06/04(金) 12:33:38
>>487
レスが遅くなりました^^;

ちょっと質問なのですが、RefreshLinkと言うのは
フォームのプロパティでレコードソースにクエリを設定していると
華麗にスルーしちゃったりしますか?

初心者すぎて質問がおかしかったらすみません・・・
490名無しさん@そうだ選挙にいこう:2010/06/04(金) 14:39:49
フィールド検索ではなくテーブル検索をVBAで書くとどのようになるんでしょうか?
491487:2010/06/05(土) 05:33:18
>>489
なんで自分で調べないの?なんで自分で確かめないの?
初心者なんて免罪符にもならねぇよ

>>488
あなたが理解可能な範囲ではほとんど変化ねぇってことだろうよ

>>490
質問の意味が分からん

すみません、取り乱しました。
>>489
そもそもの話でなんですが、そこまでコードがあるのならリンク先mdbを直接updateするのもよろしいかと。
>>488
基本的なことは然程変化がないと仰ってるんですね。
>>490
しらね
492名無しさん@そうだ選挙にいこう:2010/06/05(土) 06:35:18
>>491

>>490は全フィールドを対象に検索をかけたいっていうことじゃないの。
493名無しさん@そうだ選挙にいこう:2010/06/05(土) 06:53:38
【 システム環境  】 WindowsXP,SP3   Access2010bate

最近勉強を始めました。
ネットで調べても見つからなかったので質問させていただきます。

【商品マスタテーブル】    【請求テーブル】
・商品ID              ・請求ID
・商品名              ・商品ID
・単価                ・商品名
                    ・単価

という2つのテーブルを関連付けて、
請求テーブルのIDを入力すると、自動的に商品名と単価の欄が表示されるようにしたいのですが、
どのように設定したらよいのでしょうか?
494名無しさん@そうだ選挙にいこう:2010/06/05(土) 08:01:05
DLookup使えば良い。
495名無しさん@そうだ選挙にいこう:2010/06/05(土) 08:11:08
>>493
請求テーブルに商品名と特別な場合がなければ単価もいらないと思うぞ。
・請求ID
・商品名(実態は商品ID。商品マスタテーブルからlookup)
・数量
・etc(受注日とか請求先などなど)

あとはマスタの商品IDと商品名でリレーション。
請求書テーブルの全項目と商品マスタテーブルの単価を使ってクエリを作成。
クエリを元にフォームを作成。ここで抽出用のテキストボックスを追加。
クエリに戻って抽出条件のところで式ビルダを開き(右クリックしてビルドを選択)
フォーム→すべてのフォーム→作ったフォーム名の順で移動し
抽出用に作ったテキストボックス名をダブルクリックすれば上の広いボックスに

Forms![フォーム名]![テキストボックス名]

と入っているはずだからOKを押す。

初心者にはこれで十分なんじゃないか。
つうか初心者用の本を買え。基本的用語がわかっていないから
ネット検索でヒットせんのだろう。

496名無しさん@そうだ選挙にいこう:2010/06/05(土) 08:21:50
親切にありがとうございます!
さっそく試してみます!
497名無しさん@そうだ選挙にいこう:2010/06/05(土) 09:55:58
>495

実務で請求書テーブルに商品名と単価をもたないのは無茶だよ。
商品テーブルの単価を変更したら 過去の請求情報もすべて変ってしまう
なんてことが受け入れられるはずがない。
498名無しさん@そうだ選挙にいこう:2010/06/05(土) 10:13:33
そそ、経理処理は桐でオケ
499名無しさん@そうだ選挙にいこう:2010/06/05(土) 10:42:04
2010は式ビルダでもintellisense効くから超ベンリ
500名無しさん@そうだ選挙にいこう:2010/06/05(土) 11:13:32
商品テーブルに複数の価格を記録しとくか、価格テーブルを持つかして
売上日における価格を適応させるようにすればできるけどな。
消費税もそうすればいつ変更されても大丈夫さ。

でも無理にこうする必要はないけど。
501名無しさん@そうだ選挙にいこう:2010/06/05(土) 12:16:25
2010はインテリセンス効くのか
試してみよう
502名無しさん@そうだ選挙にいこう:2010/06/05(土) 13:38:20
マクロエディタでもインテリセンス使えてウホッっとなった
アプリケーションパーツも結構いけてる機能だと思うぜ
いろんなモジュールをテンプレとして活用してる人には特に。
肝は、インスタンス化したフォームだ
503名無しさん@そうだ選挙にいこう:2010/06/05(土) 14:48:12
2007Runtimeで安定稼働してるフロントエンドを
敢えて2010Runtimeにする意味はなさげかな。
新しい機能が追加されてれば変えようという気にもなるんだけど。
504名無しさん@そうだ選挙にいこう:2010/06/05(土) 15:21:02
んだんだ。安定してんならこのタイミングで更新の必要はなかんべ
runtimeでも2010と2007でも違いがあるからな。
どっちみち2010新機能を使うには2010で開発することになるっぺ
505名無しさん@そうだ選挙にいこう:2010/06/05(土) 15:36:58
2007はXP上だと仮想メモリ上限で動作不安定になる
バグだと思うんだけど、フィックスされる気配がない
506名無しさん@そうだ選挙にいこう:2010/06/05(土) 15:42:06
今はランタイムが無料なのがいいよな。
しかもユーザーがテーブルやらプログラムをいじくれないってのも。
507名無しさん@そうだ選挙にいこう:2010/06/05(土) 15:47:31
>>505
なんだか2010でも持ち越しちゃってるねぇ
Xp+2010Runtimeで印刷プレビューつかうとアプリ終了してもプロセスが残っちゃうのは
確認した
508名無しさん@そうだ選挙にいこう:2010/06/05(土) 15:54:52
>>506
> しかもユーザーがテーブルやらプログラムをいじくれないってのも。

どうやってやるの?
509名無しさん@そうだ選挙にいこう:2010/06/05(土) 16:06:58
http://accesshosting.com/
こーゆーのは国内では出てこないんだろうな、きっと。
追加ユーザアカウント$7.5/月だし、$799/年って結構なお値段だw
510456:2010/06/07(月) 14:26:45
規制されてました申し訳ない。

>>462
今のところ5〜7MBで収まってます、システムを動かしていても50MBを超えることはないっす。
確かにファイルサイズ制限ありますね。

>>463
なるほどそれも手ですね。やってみます、ありがとうございます!

>>466
こんな設定があるとは・・・早速やってみます、どうもありがとうございます!
サブフォームのレコードソースはリンクテーブルではないんです。
511名無しさん@そうだ選挙にいこう:2010/06/08(火) 23:21:23
WinXPSP3、Access2003です。

【T_名簿】
 ID  名前
 1  山田
 2  佐藤
 3  鈴木

【T_販売】
  品名    ID  名前
 ノート     2
 クリップ    3
 消しゴム   1
 定規      2

↑の2つのテーブルがあって、「T_販売」テーブルの「名前」に
Update文で上から「佐藤、鈴木、山田、佐藤」と入れたいんですが、
下記のUpdate文だとエラーになってしまいます。

 DoCmd.RunSQL "update T_販売 set 名前=dlookup('名前','T_名簿','ID=[T_販売].[ID]');"

どこがマズイのでしょうか?
実はもう5時間くらい試行錯誤しており、訳が分からなくなってしまいました・・・。

よろしくお願いいたします。
512名無しさん@そうだ選挙にいこう:2010/06/09(水) 00:30:19
dlookupなんぞ使わんじゃろ
update T_販売 inner join T_名簿 ON T_販売.ID = T_名簿.ID set T_販売.名前 = [T_名簿].[名前];

クエリデザインで作ってSQL文を確認でもしなはれ。基礎知識が不足していると思われる。まぁがんばれ
513511:2010/06/09(水) 01:08:59
>>512
どうもです。
inner joinというのを使って他のテーブルを参照しに行くんですね。
setの後ろで、T_販売.名前のほうはカッコが付かなくて[T_名簿].[名前]はカッコが付くとか、
そのへんもよく分かっておらず、まだまだ勉強不足ですね。

ありがとうございました。
514名無しさん@そうだ選挙にいこう:2010/06/09(水) 01:13:30
この場合は別にカッコはあってもなくてもいい
515名無しさん@そうだ選挙にいこう:2010/06/09(水) 10:16:14
2010発売日に買うって人いる?
予約しようかどうか迷ってるんだけどちょっと待った方がいいかな
516名無しさん@そうだ選挙にいこう:2010/06/09(水) 10:29:25
>>515
試用版使ってろよ、最初から正規に2ヶ月、正規に試用延長6ヶ月まで
517名無しさん@そうだ選挙にいこう:2010/06/10(木) 04:33:30
518彩 ◆DXzVKxB5sE :2010/06/10(木) 12:21:29
>>515
待って何か良いことあるの?
519名無しさん@そうだ選挙にいこう:2010/06/10(木) 14:32:08
access2003を使っています。
where句のところで含み検索したいのですがどうしたら良いのでしょう。
520名無しさん@そうだ選挙にいこう:2010/06/11(金) 00:10:18
WinXP、Access2003で教えてください。

2010/06/10 23:50:00 のようなデータが入っている日付/時刻型の
フィールドが二つ(仮にAとBとします)あるのですが、この二つをが
下記のような場合の演算をどうすれば良いのでしょうか?
(クエリの中の式ビルドで記述したいと考えています)

例)
A  2010/06/10 15:30:00
B  2010/06/10 20:50:00 のとき、

AとBとの時間差の半分の時間をAの時刻に足した時刻の値を求めたい。

データ型などを無視して書くと、 A+(B-A)/2 みたいな感じなのですが、
CDateやTimeSerial関数を使うのか、Datediff関数を使うのかがよく分かりません。。。
また仮に、例えばAがテキスト型のフィールドだった場合はどうなるのでしょうか?


ご教示のほどよろしくお願いいたします。
521名無しさん@そうだ選挙にいこう:2010/06/11(金) 00:20:33
>>520
日付は基本的に小数ありの数値と考えていいから(シリアル値)
普通に演算でokじゃね?
テキスト型だった場合は、たぶん暗黙の型変換がなされると思うが(やったことがない)、
Cdate使用が基本だろうね。
522名無しさん@そうだ選挙にいこう:2010/06/11(金) 22:54:25
>>520
Datediff,Dateadd,CDate を使うのがお行儀が良いと思う。
523名無しさん@そうだ選挙にいこう:2010/06/11(金) 23:55:39
>>522
ちなみにどのように書けるんでしょうか?
524名無しさん@そうだ選挙にいこう:2010/06/12(土) 04:23:07
すいません教えてください。

Linuxに、本の付録のオラクル入れてAccessで接続してみましたが、「select tname from tab」での結果と
Accessでの取得テーブルが一致しません。
Accessでやるべき設定が足りないのでしょうか?
Accessで取得したtabには、テストでInsertしたテーブルが入っていたので接続先は間違っていないと思います。
Accessに何か設定しないとダメなのでしょうか?解決策を教えてください。
525名無しさん@そうだ選挙にいこう:2010/06/12(土) 16:38:22
>>524
それじゃ何の設定やったのかわからん
Access側から見えてるならいいんじゃないの?
526名無しさん@そうだ選挙にいこう:2010/06/12(土) 22:13:37
>>525
Accessでは、sqlでcreateしたTable本体は見れないのに、createした結果は、Accessからでもtabのレコードから確認できるんです。
AccessでTable本体が確認出来ないのは、Accessで何か設定しなきゃいけないのかなと思って。
今のところ特別な事は何もしていません。
527名無しさん@そうだ選挙にいこう:2010/06/12(土) 23:59:01
>>526
リンクテーブルのこと?
ttp://sanryu.net/acc/tips/tips266.htm

ただLinux上にある奴にできるかどうかはわからん
528名無しさん@そうだ選挙にいこう:2010/06/13(日) 01:10:14
>>527
DBとAccessの接続は紹介して頂いた方法で実現しています。

Linux側で、Commitの他にも変更を反映させるコマンドが必要なんですかね?
Accessの問題なのかLinux側の問題なのかわからなかったので、こちらで質問させていただいてます。
529名無しさん@そうだ選挙にいこう:2010/06/13(日) 01:51:59
>>528
うーむ後はテーブル名が全角だったりとか?
ちょっと自分では力及ばない・・・すまんが他の有識者待つかOracleスレで聞いておくれ…
530名無しさん@そうだ選挙にいこう:2010/06/13(日) 02:26:38
>>529
ありがとうございました。
531名無しさん@そうだ選挙にいこう:2010/06/13(日) 06:51:29
勉強する為に、2010bate版使ってます。
請求テーブル 顧客テーブル  社員テーブルがあります。

請求入力フォームでは、顧客、担当社員、商品…と入力していきます。
顧客はリストボックスから選ぶようにしたのですが、数が多くなり探しにくくなってきました。
担当社員もリストボックスにしてます。

質問なんですが、請求フォームで「担当社員」を先に選択すると、
顧客のリストボックスが、その担当社員の顧客しか出ないようにするには、どのように設定したらいいでしょうか?
532彩 ◆ACaxLt6WsjPE :2010/06/13(日) 06:56:43
533名無しさん@そうだ選挙にいこう:2010/06/13(日) 07:01:28
>>532
素晴らしいです。ありがとうございます!
534彩 ◆ACaxLt6WsjPE :2010/06/13(日) 07:09:21
>>524
特別な設定なんて不要だと思います。
Linux側で見れて、Accessで見れないのはcommitしてないから位しか理由は考えられないですね。
もし、sqlplus使っているなら一度終了してから、Access側で再度テーブルを開いてみて下さい。
535彩 ◆ACaxLt6WsjPE :2010/06/13(日) 07:10:40
>>533
検索すれば、大概のものは見つかりますよ。
536彩 ◆ACaxLt6WsjPE :2010/06/13(日) 08:26:17
>>520
両方とも日付時間の時

式1: DateAdd("s",DateDiff("s",[テーブル1]![FROM],[テーブル1]![TO])/2,[テーブル1]![FROM])

537名無しさん@そうだ選挙にいこう:2010/06/13(日) 13:05:44
>>520
桐じゃダメなのか、時間型があってそのまま演算できるが
538名無しさん@そうだ選挙にいこう:2010/06/13(日) 14:33:08
>>534
Commitはしています。

ユーザー名を「system」で行っているのが原因でしょうか?
539彩 ◆ACaxLt6WsjPE :2010/06/13(日) 15:52:22
>>538
普通はsystemでは作らないで、アクセス用のユーザーID作ってアクセス権付けますよ。
そんな事やった事が無いので原因かどうかわかりません。

commitした後に、Accessでテーブル開き直して無いって事はないですよね?
540名無しさん@そうだ選挙にいこう:2010/06/13(日) 16:14:07
>>539
Commit後に開いています。
541彩 ◆ACaxLt6WsjPE :2010/06/13(日) 16:20:58
>>540
sqlplus使ってますか?
それともプログラムでinsert?

542名無しさん@そうだ選挙にいこう:2010/06/13(日) 21:25:55
>>541
sqlplusでInsertしてます。
543彩 ◆ACaxLt6WsjPE :2010/06/13(日) 21:28:35
>>542
じゃあ、プログラム作ってinsertしてみてね。
544名無しさん@そうだ選挙にいこう:2010/06/14(月) 03:33:16
>>543
プログラムでインサートしてみました。
また、sqlからもプログラムからも参照(select)できましたが、
AccessからDBに接続しても、相変わらず、sqlで作成したテーブルがテーブル一覧に表示されません。
545名無しさん@そうだ選挙にいこう:2010/06/14(月) 07:09:09
>>544
やっとあなたの言っている事が分かりました。
それはオラクル側の設定だと思います。
新しいユーザーとスキーマ作って下さい。
546名無しさん@そうだ選挙にいこう:2010/06/14(月) 18:46:31
>>545
表示されるようになりました。
ありがとうございました。
547名無しさん@そうだ選挙にいこう:2010/06/15(火) 02:44:48
windows7のパソコンがword2007とExcel2007しか入ってなく、Accessが無いんです。
office2003のCDでAccess2003をインストールしたら動きますか?

2007と2003の競合でWord, Excelに何らかの不具合が出ることを心配しているのです。
548名無しさん@そうだ選挙にいこう:2010/06/15(火) 04:36:15
excel、word、access、powerpoint…並びがきれいだw
549彩 ◆ACaxLt6WsjPE :2010/06/15(火) 07:38:33
まじですかw
550名無しさん@そうだ選挙にいこう:2010/06/16(水) 19:36:15
会社のシステムから社員名簿をエクセル形式で出力して、今度はそれをアクセスへインポートするんですが、
エクセルの「入社日」の欄が「19950401」のように、ただ数字が並んでいる状態です。

アクセスのデータ形式だと「1995/04/01」にならなくてはいけないのですが、
「19950401」みたいなデータを「1995/04/01」の形に一括変換は可能でしょうか?
551名無しさん@そうだ選挙にいこう:2010/06/16(水) 19:58:24
>>550
どういう構造になっているのかは知らんが
問題のテーブルに直接Excelのデータをインポートするのなら
取り込む前、つまりExcel側でデータを修正する必要があるんじゃないの?
もちろん取り込み時に修正も可能だけど、この程度のことを質問するようではまず無理。
一時テーブル→本テーブルという流れなら、更新クエリ。
552名無しさん@そうだ選挙にいこう:2010/06/16(水) 20:03:46
取り込み前でもあとでもいいんですが、一括変換ができれば楽だな…と思いまして
方法探してみます。ありがとうございます
553彩 ◆ACaxLt6WsjPE :2010/06/16(水) 20:24:40
>>550
EXCELのVBAを作って変換してみたら?
554名無しさんφ ◆rNiNKtLPbM :2010/06/16(水) 20:45:04
>>553
VBAなんて必要ないでしょ。関数とアンパサンドだけでできる。
555彩 ◆ACaxLt6WsjPE :2010/06/16(水) 20:49:37
>>554
それだと別の列になって、また値だけ元の列にコピーしないといけないでしょ?

>一括変換ができれば楽だな…

って書いてあったから、VBAの方がいいのかな〜って思って。
556名無しさん@そうだ選挙にいこう:2010/06/16(水) 21:03:23
>>550
Excel側で日付形式に変換してからアクセスに読ませればいいのに
557名無しさん@そうだ選挙にいこう:2010/06/16(水) 21:36:17
何度もやるならvbaだろうけど、今回きりなら手作業もありかね
558彩 ◆ACaxLt6WsjPE :2010/06/16(水) 21:38:00
>会社のシステムから社員名簿

社員は固定じゃないから何度もやるのかなと思って。
559名無しさん@そうだ選挙にいこう:2010/06/16(水) 21:39:48
すいません、とりあえず現時点までの名簿をエクセルでインポートして、
これからのデータは手入力でと思っています。
エクセルのツールの区切りなんとかで、良い形に変換できました。
ありがとうございました
560彩 ◆ACaxLt6WsjPE :2010/06/16(水) 21:42:45
え、もう終わり?

つまんないのw
561名無しさん@そうだ選挙にいこう:2010/06/16(水) 21:48:21
まぁなんというか、2010の発売日は明日なんだな。
562名無しさん@そうだ選挙にいこう:2010/06/16(水) 21:51:43
>>559
なんだ、これからシステム作成だったのか。
だったら

・入社日をとりあえずそのままでインポート(フィールドはテキスト型)
・更新クエリで入社日に/を挿入(いろいろやり方はあるが、Formatが便利)
・フィールドを日付型に変更

でできたのに。


563彩 ◆ACaxLt6WsjPE :2010/06/16(水) 21:55:16
>>561
買うんですか?
564561:2010/06/16(水) 22:18:12
>>563
2010対応の要求があるので導入が必須なのであります。
買うというかすでにゴリゴリやっておるので仲間が欲しいなと。
565彩 ◆ACaxLt6WsjPE :2010/06/17(木) 06:22:22
>>564
それは大変ですね。
私、Access2010入れてみたけど、全然使いこなしてませんw
まあ、家で使いこなす事なんてあり得ないんですが・・・
566名無しさん@そうだ選挙にいこう:2010/06/17(木) 06:56:39
このコテは何なの
567名無しさん@そうだ選挙にいこう:2010/06/17(木) 09:18:08
エロエロお姉さんなら許す
568名無しさん@そうだ選挙にいこう:2010/06/17(木) 09:21:04
どう見ても自己顕示欲旺盛なおっさん
569名無しさん@そうだ選挙にいこう:2010/06/17(木) 10:50:48
2010製品版発売記念age
570名無しさん@そうだ選挙にいこう:2010/06/17(木) 13:58:08
2010発売記念かきこ
2007/2010の互換性は低いと感じている。
571名無しさん@そうだ選挙にいこう:2010/06/18(金) 15:20:47
すいません、教えてください。

【 システム環境  】 WindowsXP, Access2003(開発)、Access2007ランタイム(実行)
【 VBAが使えるか 】 はい
【 VBAでの回答  】 可
【 検索キーワード 】 Access 2007 Runtime 強制終了

2003で作成したシステムのmdbファイルを2007のランタイムで開こうとすると、
いきなりAccessが強制終了してしまいます。

で、その時に出るメッセージの「修復して再起動」を実行すると、
その時は無事起動できるのですが一度閉じて開き直すとまた同じ症状になってしまいます。

参照設定が怪しいかと思い、2007のランタイムで普通に動く
別のシステムのmdbファイルと同じ設定にしても解消されず・・・


何が原因と思われますか?
572名無しさん@そうだ選挙にいこう:2010/06/18(金) 15:32:43
>>571
開発と実行の環境が違うからとしかいいようがねぇな
2007製品で無事に動くか確認してんのか?
573571:2010/06/18(金) 15:56:20
>>572
ですよね・・・

製品版の2007が手元に無いので
そちらでのチェックはできていません(汗)

今、元ファイルをコピーして参照設定を色々いじっていたら
何故か動くようになりましたが、
もう一つコピーを作って同じ設定にしても動かず・・・

何が何やらさっぱりです。
574名無しさん@そうだ選挙にいこう:2010/06/18(金) 20:15:47
エクセルやテキスト形式のインポートをしようとすると、

「データベースまたはオブジェクトは読み取り専用であるため、
更新できません。」と出てきてインポートできません。
マイクロソフトのサポートオンライン見てもよく分からなくて
ここに来ました。

どなたか解決方法を教えていただけますか?
575名無しさん@そうだ選挙にいこう:2010/06/18(金) 20:49:30
インポートするファイルを開いたままだとそうなる
576名無しさん@そうだ選挙にいこう:2010/06/18(金) 23:19:40
>>575
それが、閉じた状態なのですよ。
ファイルを読み取り専用にもしてませんし・・
577名無しさん@そうだ選挙にいこう:2010/06/19(土) 03:00:08
>>574=576
インポート先のテーブルに手作業でレコードの追加はできますか?
問題の切り分けの手掛かりになるかと思いますのでお試しあれ。
578名無しさん@そうだ選挙にいこう:2010/06/19(土) 09:02:55
>>571
Windows XP SP3 Office 未インストール に 
Access 2007 Runtime を入れて、Access 2003 で作ったmdb動かしてみたけど、
普通に動きます。

形式は、2000です。


579578:2010/06/19(土) 09:46:08
mdbの形式を2002-2003にしてみたけど、やぱり動きます。

何か、特別なdllを参照しているとか?

mdbが壊れているとか?

面倒ですけど、空のmdbを作って、オブジェクトを全部エクスポートしてみたらどうですか?
580578:2010/06/19(土) 09:47:28
>>574
JET4が扱えない拡張子のファイルを読み込むとそのエラーになるみたいですね。
581名無しさん@そうだ選挙にいこう:2010/06/19(土) 13:38:30
>>577
EXCELからのレコードのコピーはできます。
>>580
あるシステムから取ってきたデータなんですが、
普通のEXCELとTEXTなんですよ。
582名無しさん@そうだ選挙にいこう:2010/06/19(土) 14:07:16
>>581
普通じゃないからエラーになっていると思いますよ・・・
583名無しさん@そうだ選挙にいこう:2010/06/19(土) 14:09:05
バージョンとSPくらい書けよアフォウ
584名無しさん@そうだ選挙にいこう:2010/06/19(土) 14:32:11
>>582
すみません。見た目普通のEXCElなので、そのように書きました。
585名無しさん@そうだ選挙にいこう:2010/06/19(土) 15:04:47
>>584
Excelもいろんなバージョンあるんですけどね・・・
Accessも・・・
586名無しさん@そうだ選挙にいこう:2010/06/19(土) 15:09:29
インポートも手動なのかVBAなのかも書いて無いし

釣りですか?
587名無しさん@そうだ選挙にいこう:2010/06/19(土) 15:15:00
584です。
釣りではないです。すみません。
初心者でもあり、新しい職場に入ったばかりなので
色んなことに慣れていなくて、ぼさっとした質問をしてしまいました。

ACCESSは2000です。EXCELのバージョンは確認してなかったです。
それと、インポートは、手動でもVBAでも同じ結果です。
588名無しさん@そうだ選挙にいこう:2010/06/19(土) 16:31:01
>>587
それはまた古いものをお使いですね。

Office 2000 持っているのでちょっとインストールしてみますね。
589588:2010/06/19(土) 17:03:31
Windows XP Pro SP3、Office2000SR-1インストールして実験しました。
Excel2000で作ったファイルと、test.txtファイルをインポートしましたが、エラーは再現出来ませんでした。
さくっと正常にインポートしました。

インポートしたいExcelとTextの情報が不足しているので、これ以上は不明です。
頑張って調べて下さい。
590名無しさん@そうだ選挙にいこう:2010/06/19(土) 17:09:27
>>589
実験して頂いてありがとうございました。
会社でまた色々試してみたいと思います。
591名無しさん@そうだ選挙にいこう:2010/06/19(土) 17:33:13
592名無しさん@そうだ選挙にいこう:2010/06/19(土) 19:01:59
>>591
ありがとうございます。
実は、そこも読んだんですが、恥ずかしながら具体的に何をしたら良いのか
理解できなかったのです。
593名無しさん@そうだ選挙にいこう:2010/06/19(土) 19:07:35
解決までの道のりは遠そうですね・・・
594名無しさん@そうだ選挙にいこう:2010/06/19(土) 19:11:14
新しい暗号化の種類
現在の暗号化標準に引き続き準拠するために、Access 2010 は新しい暗号化の種類を実装しており、Microsoft 以外の製品で Access ファイルを暗号化することもできます

> Microsoft 以外の製品で Access ファイルを暗号化
これどうやるの?
調べても解らない…
595571:2010/06/20(日) 00:40:28
>>578,579
レスありがとうございます。
返信が遅くなってしまってすいません。

今、空のmdbに全てエクスポートして試してみました。
結果、クエリ以外をエクスポートした時点では問題なく動きましたが、
クエリもエクスポートして実行するとまた強制終了してしまいますので、
(もう一度クエリだけ削除すると実行できる)
どうやらここに問題があるようですね。

ただ、クエリ自体はシステム修正前の問題無く動いている状態から
全く何も変更してないのに何故こんなことに・・・
引き続き調査してみます。アドバイスありがとうございます。
596578:2010/06/20(日) 07:41:57
>>595
なんかとっても謎ですね。

仕方が無いので、クエリ作り直してみたらどうですか?
何か壊れているっぽいので・・・
597名無しさん@そうだ選挙にいこう:2010/06/20(日) 07:56:53
>>594
ヘルプにも記載されていませんね。

「サード パーティ製暗号化製品のサポート Access 2010 では、必要に応じてサード パーティの暗号化テクノロジを使用できます。
ここでは、サード パーティ製品の使用については説明しません。」

多分、サードパーティのインストール方法見ろって事でしょうね。
598名無しさん@そうだ選挙にいこう:2010/06/20(日) 19:28:27
初心者なのですが教えてください。
ACCESS2003で次のような加工をしたいのですがどうすればいいかわかりません。

テーブル1:個人ID,氏名,住所
テーブル2:個人ID,氏名,住所,その他要素

という2つのテーブルがあり,テーブル2に入っているデータ(個人)はテーブル2にも入っています。
テーブル1からテーブル2のデータを削除または表示しないことにし,
テーブル2のデータを除いたリストを作りたいのです。

削除クエリを使ったことがないのですが,削除クエリを使えばできますか?
599名無しさん@そうだ選挙にいこう:2010/06/20(日) 20:44:20
>>598
出来ます。
600名無しさん@そうだ選挙にいこう:2010/06/20(日) 21:23:06
>>598
簡単に出来る内容だと思うけど、
何がいいたいのか分からない
601名無しさん@そうだ選挙にいこう:2010/06/20(日) 21:44:16
削除しなくても出来ますよ。

テーブル1
個人ID 氏名 住所
1 山田 一郎 東京都品川区
2 山田 次郎 東京都港区
3 山田 花子 東京都新宿区
4 田中 一郎 東京都江戸川区

テーブル2
個人ID 氏名 住所 その他要素
1 山田 一郎 東京都品川区 長男
2 山田 次郎 東京都港区 二男
3 山田 花子 東京都新宿区 長女

クエリ1
SELECT [テーブル1].個人ID, [テーブル1].氏名, [テーブル1].住所
FROM テーブル1
WHERE ((([テーブル1].個人ID) Not In (select 個人ID from テーブル2)));

結果
個人ID 氏名 住所
4 田中 一郎 東京都江戸川区
602601:2010/06/20(日) 21:46:31
Access2010(x64)で作ったんですけど、

not in (select 個人ID from テーブル2 で、テーブル1とテーブル2の候補が出たんですが、
テーブル2をクリックすると強制終了しました・・・

情けないバグですね。
603名無しさん@そうだ選挙にいこう:2010/06/20(日) 22:30:44
>>601
同じようなこと発生してたけど、インストールし直してから発生してないよ
俺の場合2007アンインストールしたマシンだけトラブルがあった。
なんやかんだでOSから再インストールの必要があるかもね。
604名無しさん@そうだ選挙にいこう:2010/06/20(日) 22:32:41
>>603
2007->2010ベータ->2010RTMです。
OSから再インストールですか・・・
面倒ですね。
605601:2010/06/20(日) 22:59:51
>>423の現象も発生したし、IME関係のプロパティも効かないというのも体験した。
環境によっては塩梅よくインストールされないか正常に機能が作動しないということだと思って割り切った。
606603:2010/06/20(日) 23:02:22
はっは、603だった。ちょっと飲みすぎた。寝ます
607601:2010/06/20(日) 23:41:34
>>606
飲みすぎ君マーク、ぺた
608名無しさん@そうだ選挙にいこう:2010/06/21(月) 00:15:53
2007から日付選択カレンダーをプロパティで設定できるようになったけど、
フォーカスが移ったときにドロップダウンさせる方法を知ってる方おりませんか?
カレンダーを見ながら日付直打ちしたいとか
ミニカレンダーの存在を知らないユーザーもいて・・・2007以前に戻すしかないかな。。
609名無しさん@そうだ選挙にいこう:2010/06/21(月) 00:47:32
>>608
DoCmd.RunCommand acCmdShowDatePicker
でどうだ
610609:2010/06/21(月) 00:56:13
>カレンダーを見ながら日付直打ちしたいとか
カレンダーにフォーカス移っちゃうからできねぇのよ
611608:2010/06/21(月) 01:37:30
>>609
レスありがとうございます。
フォーカス移った瞬間に見事にカレンダー開きました!感動。
瞬間にカレンダーにフォーカス移っちゃうからカレンダー見ながら
日付直打ちは結局のところ無理目な感じですね。
でも、カレンダーでキーボード移動できるからマウス使う必要もなし・・・です!
WEB検索しまくってもどこにも載ってなくて・・まじありがとうございます。
612名無しさん@そうだ選挙にいこう:2010/06/21(月) 07:53:50
>>611
そんなにカレンダー見ながら打ちたいのなら、カレンダーをJPGとかにして、当月の分を表示してみたら?
613601:2010/06/21(月) 08:52:01
ノートPCでも同様の手順で作ってみたら、同じ現象で、Access 2010が落ちました。

今度は、x86を入れなおしてみて実験してみます。
614名無しさん@そうだ選挙にいこう:2010/06/21(月) 14:33:25
よろしくお願いします

★ OS・・・XP、ACCESS・・・2000
★ 質問内容
  ・今日アクセスのファイルを開こうとしたらまったく反応がありません。
  ・特にエラーメッセージも出ないのでどうすればいいかわかりません。
  ・ファイル名を変えてみたり、エクスプローラーから開こうとしてもダメでした。(ファイルは存在してるのですが・・・)
  ・一度アンインストールして、再度インストールしてみましたがやっぱりダメです。
★ 考えられる原因?
  先週CドライブのマイドキュメントをDドライブに移行しました。
  その中に、アクセスのファイルも含まれていました。

素人なので分かりやすく教えてもらえると助かります。
615名無しさん@そうだ選挙にいこう:2010/06/21(月) 14:42:56
マイドキュメントを移行した、って具体的にどうやったの
マイドキュメントそのもののパスをDドライブに変えた?
マイドキュメントの中のファイルをDドライブにカット&ペーストしただけ?

Accessのファイルは1つだけ?
どんな作り方・使い方をしているファイルなの?
素人というけど、そのAccessのファイルは誰が作ったの?
VBAやクエリ、マクロ等を組んでる?
616名無しさん@そうだ選挙にいこう:2010/06/21(月) 14:59:37
あーははは。
>★ 考えられる原因?
>  先週CドライブのマイドキュメントをDドライブに移行しました。
素人というならば、なんにしても元に戻すんだ。作った人に聞くのが最善だ。
617名無しさん@そうだ選挙にいこう:2010/06/21(月) 14:59:39
マイドキュメントの移動はこのサイトを見ました。
http://allabout.co.jp/computer/windows/closeup/CU20060613A/


Accessのファイルは1つだけです。
顧客管理用で使ってます。
例えば、電話番号から名前を引っ張るとか・・・
以前本を買ってそこにあったサンプルを少し手直しした程度です。
確か、クエリとマクロ等組んでます。
でも今はその本もないです・・・orz
618名無しさん@そうだ選挙にいこう:2010/06/21(月) 15:04:11
普通は、バックアップから戻すなんですけど、バックアップなんて取っていなさそうだし。

ここは、もう一度作り直すしかないと思います。
619名無しさん@そうだ選挙にいこう:2010/06/21(月) 15:21:38
新規mdbへのインポートぐらいできるんじゃね?2000にはねぇのか?
access自体が起動しないならどうにもならんけど。
620名無しさん@そうだ選挙にいこう:2010/06/21(月) 15:41:34
>>617
じゃあマイドキュメントをCドライブの元の位置に戻してみて
誰も何もしていなければ、XP標準のマイドキュメントの元のフォルダは
「C:\Documents And Settings\[ユーザー名]\My Documents\」
変更したファイル名も元に戻しておいて
「確かこんな感じだった」とかアホなことしないで、「完璧に元に戻して」

他のAccessが動くパソコンがあれば、USBメモリ等で該当ファイルを移してみて、
それで動くか確認してみて

あと
Shiftキーを押しながらダブルクリックしたら、何か変化ある?
スタート→プログラム→Microsoft Accessを起動したら、Access開く?
「まったく反応がありません」というのは、もうちょっと具体的にどんな状態?
一瞬たりともAccessの画面が開くことがない?タスクバーにすら現れない?
ダブルクリックした後、Ctrl+Alt+Deleteを同時押ししてタスクマネージャを開いて、
アプリケーションタブのリストの中に該当のファイル名はある?
プロセスタブのリストの中に「MSACCESS.EXE」は何個ある?一個もない?
621名無しさん@そうだ選挙にいこう:2010/06/21(月) 17:07:17
やっぱり原因は、引っ越しした事でしょうね。

元に戻せば動く予感がします。
622名無しさん@そうだ選挙にいこう:2010/06/21(月) 18:03:16
戻す前にもコピー取った方がいいよ
623614:2010/06/21(月) 19:51:10
>>615-622
みなさんありがとうございました!
元に戻したら、開くようになりました。
やっぱり移動したのがいけなかったみたいです・・・。
お騒がせしてすみませんでした。

ちなみに「まったく反応がありません」というのは、
Accessの画面は開くのですが、「新規作成」や「ファイルを開く」をクリックして、
どれか指定をしても、その後何もダイヤログが出てこない状態でした。
だから、最初Accessが壊れたとおもって再インストールしました。
624名無しさん@そうだ選挙にいこう:2010/06/21(月) 20:25:17
ACCESSからEXCELにデータをエクスポートするときに、
ACCESS側から書式設定ってできますか?
625601:2010/06/21(月) 21:11:57
Access 2010 (x86)をインストールしてみたけど、同じ症状でした。

SQl Server 2008 R2 とか Visual Studio 2010 とか入っているでOSの再インストールはしたくないので、諦めます。

SP1で直ればいいなっと。
626名無しさん@そうだ選挙にいこう:2010/06/21(月) 21:12:58
>>624
出来ません。
627名無しさん@そうだ選挙にいこう:2010/06/21(月) 21:18:00
>>624
AccessからオートメーションでExcel開けばできそうだが、虚しい
628名無しさん@そうだ選挙にいこう:2010/06/21(月) 21:24:22
一度、エクスポートしてからVBAで開きなおして書式設定は出来ますね。

でも、かなり面倒ですよw
629名無しさん@そうだ選挙にいこう:2010/06/21(月) 21:25:50
私のやり方は、書式設定済みのエクセルを作っておいて、アクセスのVBAからエクセルのセルを更新してます。
630名無しさん@そうだ選挙にいこう:2010/06/22(火) 11:22:01
原本Excelである程度書式作っておいて、残りをVBAで補ってる
631名無しさん@そうだ選挙にいこう:2010/06/22(火) 18:29:39
>>624
出来るよ。昔やった。
エクセルのインスタンスを作って、そのインスタンス経由でエクセルVBAを操作する。
632624:2010/06/22(火) 20:15:02
結構面倒くさそうですけど、出来ることは出来るんですね。
週末に試してみます!
633名無しさん@そうだ選挙にいこう:2010/06/22(火) 20:38:32
おお!
って思ったけど、Excelのシートに最初から書式設定した方が何かと楽か・・・。
634名無しさん@そうだ選挙にいこう:2010/06/22(火) 21:13:53
複雑な書式は、特に
635601:2010/06/22(火) 22:01:55
Officeの入ってないWindows 7 Home Premium(x86)に、Access 2010(x86) インストールしてみました。
ちょっと挙動がおしかしいけど落ちませんでした。
636名無しさん@そうだ選挙にいこう:2010/06/23(水) 00:20:37
クロス集計クエリの結果をレポートにする要件が出たとき、
あきらめてExcelに貼って加工する手を使った
・列見出しの内容が不定
・列数が可変
これをAccessでレポートにしようとすると、不可能ではないけど
めっちゃ面倒だったんだ

皆はどうしてるの?そんな要件あんまりないか?
637名無しさん@そうだ選挙にいこう:2010/06/23(水) 06:53:00
>>636
クエリをエクスポートした後に手動で開いて体裁整えてます。
638名無しさん@そうだ選挙にいこう:2010/06/23(水) 20:19:32
例えば、[納品日]に対して、[あと何日]と表示される列をつくりたいです。
それと、納品日を越えたところについては、「○」などを表示したいのですが、
どのような式を入れたらいいでしょうか?

datediff?とかいろいろ検索してあったのですが、真似しても上手くいかなかったので、
教えていただきたいです。お願いいたします
639名無しさん@そうだ選挙にいこう:2010/06/23(水) 21:01:40
>>638
テーブル1
ID 納品日
1 2010/06/26

クエリ1
SELECT [テーブル1].ID, [テーブル1].納品日, DateDiff("d",Now(),[納品日]) AS 式1
FROM テーブル1;

640名無しさん@そうだ選挙にいこう:2010/06/23(水) 21:25:39
ありがとうございます。
しかし、サブクエリの指定が正しくありませんと出てしまいました。
サブクエリはかっこで囲んで…と出てるのですが、どこを囲んだらいいのでしょう?
自分の入れ方が間違ってるのでしょうか?本当にすいません。
641名無しさん@そうだ選挙にいこう:2010/06/23(水) 22:18:30
>>640
Access2010で作りました。

サブクエリなんて使ってませんが・・・

642名無しさん@そうだ選挙にいこう:2010/06/23(水) 22:20:28
もうちょっとやってみます
ありがとうございました
643名無しさん@そうだ選挙にいこう:2010/06/24(木) 05:23:37
>>642 さん
SQLビューってご存じですか?
(クエリデザイン画面で右クリックしてSQLビュー)
クエリの作り方を説明する際には、このSQLビューで表示される‘SQL句’で
やり取りされる場合が多いので注意が必要です。(SQL句は慣れると便利)

>>639さんが解答してくださったSELECTで始まるSQL句をSQLビュー内にコピペして
再びデザインビューに戻すとあら不思議w
644名無しさん@そうだ選挙にいこう:2010/06/24(木) 06:28:47
そういうことなんですね
すいませんでした。助かりました
645639:2010/06/24(木) 06:47:06
説明が足りませんでしたね。すみません。

もう一つの回答まだでしたね。
646639:2010/06/24(木) 12:55:11
ID 納品日
1 2010/06/22
2 2010/06/24
3 2010/06/25
4 2010/06/26
5 2010/06/28

クエリ1
SELECT [テーブル1].ID, [テーブル1].納品日, DateDiff("d",Now(),[納品日]) AS 式1, IIf(DateDiff("d",Now(),[納品日])<=0,"○","") AS 式2
FROM テーブル1;

結果
ID 納品日 式1 式2
1 2010/06/22 -2 ○
2 2010/06/24 0 ○
3 2010/06/25 1
4 2010/06/26 2
5 2010/06/28 4
647名無しさん@そうだ選挙にいこう:2010/06/24(木) 20:15:16
できました!ありがとうございました!
648624:2010/06/25(金) 13:54:33
区分 名前 数値  | 名前2 数値2  差
----------------------------------------
a   あ1 10 | あ5 50
a   あ2 20 | あ6 50
a   あ3 30 |
a   あ4 40 |
a   計 100 | 計    100 0
----------------------------------------
b   い1 50 | い3 90
b   い2 60 | い4 90
b   い3 70 |
b   計 180 | 180 0
----------------------------------------
c   う1 80 | う3 170
c   う2 90 |
c   計    170 | 170 0
----------------------------------------
全体 合計  450 | 450 0

このような表をアクセスのフォーム上に表示させるのは可能でしょうか?
左右どちらも上詰で、1行が1レコードではないのですが・・・。
やはりエクセルじゃないと厳しいですかね。
649名無しさん@そうだ選挙にいこう:2010/06/25(金) 14:08:50
区分 名前  数値 | 名前2 数値2  差
----------------------------------------
a   あ1   10 |  あ5   50
a   あ2   20 |  あ6   50
a   あ3   30 |
a   あ4   40 |
a   計   100 |  計   100  0
----------------------------------------
b   い1   50 |  い3   90
b   い2   60 |  い4   90 
b   い3   70 |
b   計   180 |  計   180  0
----------------------------------------
c   う1   80 |  う3   170
c   う2   90 |
c   計   170 |  計   170  0
----------------------------------------
全体 合計  450 |  合計  450  0

ずれすぎました。すみません。これでも駄目なら、諦めます・・・
650名無しさん@そうだ選挙にいこう:2010/06/25(金) 15:08:49
サブフォームを駆使すればできなくもなさそうだが、、。
区分の数が動的ならレポートかもな。
651名無しさん@そうだ選挙にいこう:2010/06/26(土) 19:57:18
>>650
レスありがとうございます。
操作に関しては、ACCESSだけで済ませたいので、
一旦左右のテーブルをエクセルの指定したセルにエクスポートして、
更にACCESSに取り込んで、ユニオンクエリで計と合計を作成しようと
思います。
見やすい形でフォームに表示させたいと思いましたが、データビュー?
にするしかないのかな、と。
652名無しさん@そうだ選挙にいこう:2010/06/26(土) 22:58:55
Accessだけで出来ますよ。
653名無しさん@そうだ選挙にいこう:2010/06/27(日) 11:45:38
>>652
そうですか!ヒントだけでも頂けたらうれしいです。
654名無しさん@そうだ選挙にいこう:2010/06/27(日) 15:56:31
>>653
元のデータが書いてないので具体的な事は書けませんが、VBAでゴリゴリ書けば出来ますよ。
655名無しさん@そうだ選挙にいこう:2010/06/27(日) 19:53:51
区分 名前 数値
a   あ1 10
a   あ2 20
a   あ3 30
a   あ4 40
b   い1 50
b   い2 60
b   い3 70
c   う1 80
c   う2 90

区分 名前2 数値2 
a   あ5 50
a   あ6 50
b   い3 90
b   い4 90
c   う3 170

>>654
とりあえず単純にこの2つのテーブルを、区分ごとに上詰めで表示した
状態を作りたいのです。それが出来なくて、苦しみ中・・・
エクセルを利用するのも考えましたが、これも面倒で。
656名無しさん@そうだ選挙にいこう:2010/06/27(日) 21:25:32
>>655
VBAで両方のテーブルを開いて、マッチングしながら新しいテーブルを作れば良いですよ。
657名無しさん@そうだ選挙にいこう:2010/06/27(日) 22:42:15
>>656
なんか出来そうな気がしてきました。やってみます。
658名無しさん@そうだ選挙にいこう:2010/06/28(月) 20:27:22
2010bateで始めて、まだ一か月くらいの初心者です。
VBAは使えません…

質問なんですが、例えば
クエリ1
[請求ID][請求日付][顧客名][商品名]
というものがあるとします。

で、使う人がクエリを開く際、請求日付の期間指定をして抽出したいんです。
[2010/06/01]〜[2010/06/30]というようなイメージです。

こういうのはマクロ?でも簡単に作ることができるのでしょうか?
よければアドバイスをお願い致します
659名無しさん@そうだ選挙にいこう:2010/06/28(月) 20:51:38
>>658

テーブルに無い項目名を書くと、クエリを実行する時に入力ダイアログが表示されます。

SELECT [テーブル2].請求ID, [テーブル2].請求日付, [テーブル2].顧客名, [テーブル2].商品名
FROM テーブル2
WHERE ((([テーブル2].請求日付)>=[期間1] And ([テーブル2].請求日付)<=[期間2]));
660名無しさん@そうだ選挙にいこう:2010/06/28(月) 21:00:20
できました!ありがとうございます!
661名無しさん@そうだ選挙にいこう:2010/06/29(火) 21:03:50
ACCESSのテーブルやクエリの特定レコードに色を付けることって
出来ましたっけ?
662名無しさん@そうだ選挙にいこう:2010/06/29(火) 21:06:37
ACCESSのテーブルやクエリの特定レコードに色を付けることって
出来ましたっけ?
663名無しさん@そうだ選挙にいこう:2010/06/29(火) 21:09:24
二度書きしてしまいました。すみません。
664名無しさん@そうだ選挙にいこう:2010/06/30(水) 21:25:33
まさしく産む機械
665名無しさん@そうだ選挙にいこう:2010/06/30(水) 22:49:51
>>662
もう少し詳しくどういう条件の時に色をつけたいんだ
フォーム上での話でもいいのかい
666名無しさん@そうだ選挙にいこう:2010/07/01(木) 19:36:43
>>665
フォーム上の帳票形式では条件付書式で出来ました。
テーブルやクエリに直接、または、
フォームでもデータシートビューで出来ないか?と思いまして・・・
667名無しさん@そうだ選挙にいこう:2010/07/01(木) 22:03:13
条件自体がちゃんと設定できているなら、現在のフォームの形式を帳票形式から
データシートビューにするだけでできるだろ
確認した?
668名無しさん@そうだ選挙にいこう:2010/07/01(木) 22:32:37
>>667
確認しました。ありがとうございます。
フォームであれば出来るってことですね。
669名無しさん@そうだ選挙にいこう:2010/07/03(土) 12:30:05
Excelっていまでも
最大255列65535行
じゃないのかな
670名無しさん@そうだ選挙にいこう:2010/07/03(土) 13:14:58
いつの時代のひとですか
671名無しさん@そうだ選挙にいこう:2010/07/03(土) 17:15:40
256列×65536行の間違いだろ
672名無しさん@そうだ選挙にいこう:2010/07/05(月) 10:39:18
Excel2007
最大列1万6384
最大行104万8576

2010は知らん
673名無しさん@そうだ選挙にいこう:2010/07/05(月) 21:26:02
Excel2007って確かにワークシートサイズは大きくなったかもしれないけど、
そんなにでかい範囲を1ファイルで扱っている人なんてそんなにいるのかな
普通1万レコード超えたくらいからAccessとかのデータベースの出番を考えるでしょうに
列だってそんなにあったら返って扱いづらくなるだけで
メリットだと捉えている人ってごくわずかだと思うが
674名無しさん@そうだ選挙にいこう:2010/07/05(月) 22:23:09
CSVに代わる意味はあるんじゃないの
675名無しさん@そうだ選挙にいこう:2010/07/05(月) 22:28:48
>>673
科学計算で必要なんだよ
676名無しさん@そうだ選挙にいこう:2010/07/06(火) 12:49:50
Access 2010を購入しました。
インストール後、Access2002で作成したmdbを開くと、MSCAL.OCXがないとエラーが出ます。
どうやらAccess2010ではMSCAL.OCXがサポートされなくなったようです。
どうにかしてMSCAL.OCXを使用する方法はないでしょうか?
677名無しさん@そうだ選挙にいこう:2010/07/06(火) 14:04:07
MSCAL.OCXを別途用意して登録すれば使えるんじゃねーの
678名無しさん@そうだ選挙にいこう:2010/07/06(火) 20:37:08
ACCESSからEXCELの書式設定したりすると、
EXCELが普通に開かなくなったりすることありますか?
ダブルクリックで開こうとすると、EXCELの枠だけが出てきて、
中身が全く表示されない状態です。
その都度、スタートボタンからEXCELを起動しなおさないと
その書式設定したEXCELが開けないんですよ。

ちなみに中身はデスクトップが映っており、EXCEL状態ではありません。
679名無しさん@そうだ選挙にいこう:2010/07/06(火) 22:36:39
>>678
まずはコードを100回見直すがいい。
680名無しさん@そうだ選挙にいこう:2010/07/06(火) 23:12:55
ACCESSからEXCELの書式設定って、Excelを呼び出して編集してどの状態で終わらせているんだ
681名無しさん@そうだ選挙にいこう:2010/07/06(火) 23:57:36
>>678
プロセス殺してないだけじゃないの?
タスクマネージャーでEXCEL.EXEが残っていないか確認してみたら。
682名無し:2010/07/07(水) 07:57:34
ACCESS_2003ではメニューバ−の「オブジェクト」からピクチャをフォーム(リンクさせたフィールドに)→テーブルに挿入ができてました
ACCESS_2007でこの機能をもつのは「ロゴの挿入」になるんですか?
683名無しさん@そうだ選挙にいこう:2010/07/07(水) 11:22:42
>>682
違う
684名無し:2010/07/07(水) 11:47:38
調べて違うのは解りました

テーブルのデザインビュ−のコンテキストメニューから「オブジェクトの挿入」があるのはわかったのですが…

テーブルにフォームのボタンクリックで画像を挿入したいのですが 代用リボンや組み込み関数はありますでしょうか
685名無しさん@そうだ選挙にいこう:2010/07/07(水) 12:35:11
>>684
2007なら添付ファイルフィールドにしとけばいいんじゃね?
でなかったら、OLEオブジェクト型フィールドに連結した連結オブジェクトフレームじゃろうて。
686名無しさん@そうだ選挙にいこう:2010/07/07(水) 14:34:18
Access 2010なんですが、ワンクリックでCSVでエクスポート(保存)する方法はありませんか?
テキストのエクスポートを選んで、手動でファイルの拡張子をcsvにすればいいんですが
出力場所も決め打ちでいいので、今開いているテーブルを一発でCSVファイルに出来ると便利なんですが
687名無しさん@そうだ選挙にいこう:2010/07/07(水) 14:42:06
>>686
2010は解らないが、普通はマクロの登録でできると思うが。
もちろんフォームを作ることが前提。あとはコマンドボタンで
マクロの実行をすればいい。
688名無しさん@そうだ選挙にいこう:2010/07/07(水) 15:50:11
>>686
そのへんの便利機能といえば、エクスポート操作の保存くらいだわな
689名無しさん@そうだ選挙にいこう:2010/07/07(水) 16:57:33
>>686
コード書いてアプリケーションパーツにしてしまえばいいと思うぜ
フォーム一枚でインスタンス化しておけばいい。
便利な機能だから覚えておいて損はねぇぜ。
690名無しさん@そうだ選挙にいこう:2010/07/07(水) 23:14:10
Access2010 コントロールへの値の代入でダイーティーイベントが発生しなくなった、これは色々と都合が良い
691名無しさん@そうだ選挙にいこう:2010/07/08(木) 11:54:20
Shift+F2のズームボックス経由でもダーティーイベント発生しなくなった
692名無しさん@そうだ選挙にいこう:2010/07/08(木) 12:28:08
あ、いやデータシートフォーム限定か?
693名無しさん@そうだ選挙にいこう:2010/07/08(木) 18:37:05
Access 2003 です。
あいまい検索で詰まってしまいました。

INSERT INTO wrkテーブル SELECT * FROM tblテーブル WHERE tblテーブル.品番 LIKE '*探したい品番*'

上記のSQLをクエリのSQLビューで流すと正常に抽出してInsertするのですが、VBA上で実行させると0件で出てきてしまいます。
VBAではADO接続で、ExecuteでSQL文を流しています。

なんででしょうか
orz
694名無しさん@そうだ選挙にいこう:2010/07/08(木) 19:32:51
実際のSQLの部分を含めたコードを提示されたほうが回答がつきやすいのでは?
695名無しさん@そうだ選挙にいこう:2010/07/08(木) 20:43:53
>>693
ADOだったら、ワイルドカードは"*"じゃなくて"%"じゃなかったっけ?
とりあえず試してみたら?
696名無しさん@そうだ選挙に行こう:2010/07/10(土) 08:12:49
>LIKE '*探したい品番*'

まさか、この条件のまま検索しているとか・・w
697名無しさん@そうだ選挙に行こう:2010/07/10(土) 16:04:22
レポートで請求書作ったんですが、A4の紙一枚に一件だと下がスカスカになってしまうので、
A4の紙に、上下一件ずつ出るようにしたいんですが、ググってもやり方がイマイチわからなくてできません。
簡単にできる方法があればおしえてください
698名無しさん@そうだ選挙に行こう:2010/07/10(土) 17:40:32
A5で作って、A4 1枚に2ページ分印刷できるプリンタで印刷。
699名無しさん@そうだ選挙に行こう:2010/07/10(土) 18:25:26
プリンタの設定でいけますかね?
ありがとうございます
700名無しさん@そうだ選挙に行こう:2010/07/11(日) 00:50:52
Access2003とExcel2003を使用した時の質問

AccessからVBA使って
Excelファイル開いてさらに編集するような自動処理で
Accessから開いたExcelファイルへのクリック、キー入力等の
入力を無効化する方法ってある?

Accessから自動処理かけてる最中に
開いたExcelファイルへの手動入力等が行われてしまう事で
正常に動かなくなってしまうのを避けたい

・・・正直自動処理掛かってる最中PC触んなきゃいんじゃね?って
思ったりするけど、作ったプログラムを実際に使用するのは
プログラムのこと判んないような人なので
VBAで入力制御できると助かる
701名無しさん@そうだ選挙に行こう:2010/07/11(日) 00:52:56
visible = False
702名無しさん@そうだ選挙に行こう:2010/07/11(日) 02:47:38
>>701
サンクス。だいぶ初歩的なことだったなスマン。
クリックイベントを弄るとか明後日の事考えてたorz
703名無しさん@そうだ選挙に行こう:2010/07/11(日) 06:21:34
ACCESSの作成するSQLで [ ] が付くけど、
これってどういう意味なんでしょうか?

[ ] を付けないSQL構文をベタ打ちしていたのですが、
何かの拍子にクエリ実行時に応答がなくなるようになりました。
ACCESSのGUI機能で、テーブルから条件を抽出するようにすると
問題なかったので、自動生成されたSQL構文を見ると[ ]がついていました。
704703:2010/07/11(日) 06:29:59
SELECT * FROM TEST WHERE (FLUG=1)
のようなSQL文が自動生成されたSQLでは
SELECT TEST.* FROM TEST WHERE (([TEST].[FLUG])=1)
のようになっています。
クエリの応答がなくなる条件を調べるため
SELECT TEST.* FROM TEST WHERE ((TEST.FLUG)=1)や
SELECT * FROM TEST WHERE ((TEST.FLUG)=1)
とすると応答がなくなりました。
SELECT TEST.* FROM TEST WHERE (([TEST].[FLUG])=1)
SELECT * FROM TEST WHERE (([TEST].[FLUG])=1)
では、すぐに結果が取得できました。
[ ] に何か意味があるようです。ADO等でJET DB Driver経由で
MDBを参照する際にも、上記の応答がないクエリを参照すると
例外が発生しますが、[ ] を付けるだけで動作するようになりました。
705名無しさん@そうだ選挙に行こう:2010/07/11(日) 18:50:53
確かフィールドやテーブル名ってことを明確にする役割だったような
706名無しさん@そうだ選挙に行こう:2010/07/11(日) 19:12:14
>>703
実際にクエリを処理するのはJetなどの各種データベースエンジン。
ドライバは、Accessで発行したSQL句をDBエンジンが解釈できるように
翻訳して渡す。

問題はDBエンジンやドライバ毎に個性(癖・バグ・仕様)があるので
SQL句がDBエンジンに解釈不能な形で渡ってしまう可能性がある事。
(特に英語圏以外では…)
フィールド名やテーブル名を[ ]を使って明示する事で、こういった問題を
減らすことができる。

※古いバージョンのAccessなんかだと、特定の漢字を使うとエラーに
なったりした経験あり。その場合でも、[ ]を付ければ回避できた。
707名無しさん@そうだ選挙にいこう:2010/07/12(月) 06:49:00
access2010ライセンスを購入して
vlscみたら2003のプロダクトキーが無い…
電話したら教えてくれるのですか?
708名無しさん@そうだ選挙にいこう:2010/07/13(火) 00:08:46
>>707
2010発表以降に新規購入のOfficeから、VLSCでは2003系のVL Keyは表示されなくなっている。
Volume License Call CenterにTELして手続きすれば、VL Keyをメールで発行してもらえる。
受付は平日の日中のみ(昼休み不可)。
709名無しさん@そうだ選挙にいこう:2010/07/13(火) 17:32:37
mdbが壊れやすいって言うのは周知の事実らしいのですが
それをMicrosoftなどが公式に発表しているサイトとか知りませんか?
(2ちゃんやフォーラムじゃ根拠にならないといわれたもので・・・)
710名無しさん@そうだ選挙にいこう:2010/07/13(火) 17:39:32
http://support.microsoft.com/kb/303528/JA/

×壊れやすい
○能力以上のことさせると壊れる可能性がある

こんなのどんなシステムにも言えることだけど、
Accessは馬鹿が無茶しやすい環境が整ってるから事例が多いだけ
711名無しさん@そうだ選挙にいこう:2010/07/13(火) 18:46:34
>>710
ありがとうございます
今から読ませて頂きます
712名無しさん@そうだ選挙にいこう:2010/07/13(火) 19:19:20
2010のaccdb、パスワード掛けて閉じるときに最適化にしてると、閉じるときにパスワード聞かれて、なに入力してもダメ
713名無しさん@そうだ選挙にいこう:2010/07/13(火) 21:43:36
>>712
まったく問題なくできてるよ
2007からupgrade install ならやり直してみ
それでもだめならOSから再インストール
まぁ環境すら書いてねぇから、何言っても無理かも知れんが。
714名無しさん@そうだ選挙にいこう:2010/07/13(火) 23:14:39
>>713
アリがトン
空accdbに全部インポートしたら一応は治ったが、特定のaccdbじゃなく次々と同じ症状になるから何かある筈、再発する予感

環境は、Win7 と WinVista最新SP
WindowsLiveSyncでaccdbを共有して使ってる、自宅と職場の共有なので勿論同時使用ではない、通勤時間以上のインターバルがある
715名無しさん@そうだ選挙にいこう:2010/07/13(火) 23:41:31
思い起こせばDropBoxで同期してた時は起こらなかった、WindowsLiveSync同期が怪しい…
716名無しさん@そうだ選挙にいこう:2010/07/13(火) 23:43:55
>>714
WindowsLiveSyncが原因かもな。
暗号化は、二種類あるから違う方試してみれ。
717名無しさん@そうだ選挙にいこう:2010/07/13(火) 23:47:40
>>716
アリがトン
来週試してみる

DropBoxの丸ごと同期と違って、LiveSyncは律儀にレコード毎同期してるのかな…
718名無しさん@そうだ選挙にいこう:2010/07/14(水) 00:01:56
それはない
719名無しさん@そうだ選挙にいこう:2010/07/14(水) 12:51:07
Accessってテーブルとフォームあわせて500までしか使えないの?
友人がどっかに載ってたって言うんだけど俺には見つけられなかった
720名無しさん@そうだ選挙にいこう:2010/07/14(水) 13:19:37
ファイル→情報

2010の新しい方の暗号化だと、暗号化解除ができない、既に暗号化されてるのに「データベースパスワードの解読」のボタンがでないで「パスワードを使用して暗号化」のボタン
従来の暗号化だと、既に暗号化されてれば、「データベースパスワードの解読」のボタン

俺だけ?
2010持ってる方、見てみてくださいませ
721名無しさん@そうだ選挙にいこう:2010/07/14(水) 14:27:57
>>720
まったく問題なく
722名無しさん@そうだ選挙にいこう:2010/07/14(水) 14:36:45
>>719
access 仕様 でぐぐれ
723名無しさん@そうだ選挙にいこう:2010/07/14(水) 15:17:32
>>721
あら、俺のはパスワードの解除が出来ない…
724名無しさん@そうだ選挙にいこう:2010/07/14(水) 16:08:42
>>722
それはすでにググったんだぜイケメン!
でもどこにもあわせて500なんてのは見当たらなかった
725名無しさん@そうだ選挙にいこう:2010/07/14(水) 20:30:10
Accessでユーザ毎にアクセスコントロールする時って、やっぱりテーブルにパスワード保存して
暗号化したりとかするもんなんでしょうか?それとも標準で何か機能を持ってますか?
726707:2010/07/15(木) 05:40:08
>>708
遅くなりましたがレスありがとうございます。
TELしてみます。
727名無しさん@そうだ選挙にいこう:2010/07/15(木) 12:59:37
>>725
2003以前の形式であれば、その機能は存在する。
728名無しさん@そうだ選挙にいこう:2010/07/18(日) 11:55:38
Table と Form だけで 1000超えてるmdb動かしてるけど、問題ない。(Access2K)
729名無しさん@そうだ選挙にいこう:2010/07/18(日) 12:04:16
追記 MDEは限界あるようだ。上記システムはオブジェクトが多すぎてMDEに変換できない。
730名無しさん@そうだ選挙にいこう:2010/07/18(日) 21:05:07
メニュー画面考えて2日たった
丸いコマンドボタンとか欲しいよな
731名無しさん@そうだ選挙にいこう:2010/07/19(月) 02:45:08
>>730
access2010にしとけ
732名無しさん@そうだ選挙にいこう:2010/07/19(月) 08:58:22
2010使ってるんだけど、ボタンって標準でつくると明るめのきれいなブルーになりますよね。
あのグラデーションな感じでシルバーにしたいんですが、うまくいきません。
テーマとか色選んでも希望のものにならないんです。
なにか方法があるのでしょうか?
733名無しさん@そうだ選挙にいこう:2010/07/19(月) 09:49:20
>>732
ここのCommandButtonのとろこに様々な効果がある
ms-help://MS.MSACCESS.DEV.14.1041/MSACCESS.DEV/content/HV10295280.htm
734名無しさん@そうだ選挙にいこう:2010/07/19(月) 09:59:47
>>732
テーマの使用:はい になっていることは当然として、
プロパティシートで細かく調整できないプロパティがあってな、
ShadeとかTintはVBAで設定してやらにゃならん時があるかもなだな。
コマンドボタンプロパティは40以上増えてるから、よーくにらめっこ
しておいたほうがよいよ。
735名無しさん@そうだ選挙にいこう:2010/07/19(月) 10:41:42
そうんですか。割と複雑なんですね〜ありがとうございます
736名無しさん@そうだ選挙にいこう:2010/07/20(火) 17:11:13
http://blogs.msdn.com/b/access/archive/2010/07/19/northwind-2010-web-database-is-now-available.aspx

northwind2010がやっと来たね。データマクロを多用しているので読み応えがありそうです。
VBAがすげーすくねぇ。64bit版でGettingStartのVideoが見れないのはSilverLightの仕様です。
737名無しさん@そうだ選挙にいこう:2010/07/20(火) 17:45:46
>>736
デザインビューが見れないんだが
738736:2010/07/20(火) 18:09:03
>>737
Webクエリ/Webマクロ以外のWeb用のオブジェクトにデザインビューは無い。
739名無しさん@そうだ選挙にいこう:2010/07/20(火) 18:13:09
うん、VBAが全然ないねぇ、クラウド時代は全部マクロでええのかな

マクロで PreviousControl に SetFocus って工夫すれば出来る?
多用してるから、不可能ならマクロに移行できない
740名無しさん@そうだ選挙にいこう:2010/07/20(火) 18:25:17
>>739
Webデータベースはだめだけど、そうでなければ可能だね。
<?xml version="1.0" encoding="UTF-16" standalone="no"?>
<UserInterfaceMacros xmlns="http://schemas.microsoft.com/office/accessservices/2009/11/application">
<UserInterfaceMacro For="cmd01" Event="OnClick">
<Statements>
<Action Name="MessageBox">
<Argument Name="Message">=[screen].[PreviousControl].[Name]</Argument>
</Action>
</Statements>
</UserInterfaceMacro>
</UserInterfaceMacros>
741736:2010/07/20(火) 18:30:01
>>740は、ちゃんと試してないから訂正
Webデータベースはだめ”かも”だけど、そうでなければ可能だね。
742名無しさん@そうだ選挙にいこう:2010/07/20(火) 18:42:49
>>740
意味が解らん…orz
タイムアップ
今夜見るので、お時間があれば解りやすく解説付けといて下さいませ
743740=736:2010/07/20(火) 19:36:47
>>742
おぅっふ。
マクロエディタ上でコマンドのコピペドラッグがかなり自由にできるようになったんだけど、
コピーした時クリップボードに入るのがそのxmlね。だから、それコピッてマクロエディタ上
に張り付ければいいって寸法。これ便利ね。
PreviousControlをいかように使うのか考えてなかったから、cmd01クリック時
の埋め込みマクロとしてある。MsgBoxにコントロール名が表示できたからSetFocusも
できるんじゃね?ということ。SharePoint環境が今ないのでWebデータベースで作動す
るかは判らない。
<?xml version="1.0" encoding="UTF-16" standalone="no"?>
<UserInterfaceMacros xmlns="http://schemas.microsoft.com/office/accessservices/2009/11/application">
<UserInterfaceMacro For="cmd01" Event="OnClick">
<Statements>
<Action Name="SetLocalVar">
<Argument Name="Name">tmpCtrName</Argument>
<Argument Name="Expression">[screen].[PreviousControl].[Name]</Argument>
</Action>
<Action Name="GoToControl">
<Argument Name="ControlName">=[LocalVars]![tmpCtrName]</Argument>
</Action>
<Action Name="MessageBox">
<Argument Name="Message">=[LocalVars]![tmpCtrName]</Argument>
</Action>
</Statements>
</UserInterfaceMacro>
</UserInterfaceMacros>
式ビルダでScreen.PreviousControlを参照できないから推奨されない方法かもだね。
744名無しさん@そうだ選挙にいこう:2010/07/20(火) 19:40:42
セットフォーカスは難しい希ガス。
745742:2010/07/20(火) 19:57:20
>>743
出来ました
ローカルでは動作しますね、オイラには十分です
どうも有難うございます
746名無しさん@そうだ選挙にいこう:2010/07/22(木) 11:11:09
Access2007の条件付書式は3つまでみたいですが、2010では3つ以上出来る様になっていますか?
調べてもよくわからなかったもので。
orz
747名無しさん@そうだ選挙にいこう:2010/07/22(木) 11:19:23
Dsum()までデータマクロでやるんかよ、参照整合性もデータマクロだし、もう大変・・
748名無しさん@そうだ選挙にいこう:2010/07/22(木) 11:20:35
>>746
なってます
749名無しさん@そうだ選挙にいこう:2010/07/22(木) 12:11:50
>>747
SharePointに発行する必要があるんならお気の毒様としか言いようがない。
実際にSharePointでaccess serviceを使う場合、クライアントとWebオブジェクトを用途に合わせ織り交ぜて
製造する必要があるわな。Dsumなんかは、テーブルイベントで加減算させてどっかに格納しておくっつー
感じじゃねぇの
750746:2010/07/22(木) 15:32:03
>>748
トンクス
やっと改善されたのですね。
751名無しさん@そうだ選挙にいこう:2010/07/23(金) 02:02:11
Northwind 2010 webデータベースでもリレーションシップは張ってあるんだな
access service上でどこまで動作するのかわからんけど。
752712,720:2010/07/25(日) 11:19:21
空accdbにインポートしてしばらくは治ってたが、再発orz
ピボットグラフを弄り回った後に暗号化がおかしくなってる印象、グラフの系列の設定部分
753名無しさん@そうだ選挙にいこう:2010/07/25(日) 11:59:00
Access2007使ってるけど、インポートすると以上にファイルサイズが大きくなる
以前使っていたAccess2000の時はそんなことなかったし、やり方も変えてないのに
これは仕様(既知のバグ)ですか?
754名無しさん@そうだ選挙にいこう:2010/07/25(日) 18:32:22
>>752
アップグレードインストールなら、OSも再インストールで問題切り分けがおすすめ

>>753
君が言うのだから、仕様(既知のバグ)ということでいいんじゃないかな
755名無しさん@そうだ選挙にいこう:2010/07/25(日) 20:14:30
SQL ServerがNGじゃない環境で、Accessで開発するメリットってありますかね?
「VisualStudioがあるなら、ASP.netで組んだ方が検証も楽だしおススメ」
みたいなことがAccessの本に書いてあったのですが。
756名無しさん@そうだ選挙にいこう:2010/07/27(火) 17:04:06
暑さのせいでネタ枯れ
757名無しさん@そうだ選挙にいこう:2010/07/27(火) 18:26:33
2010
マクロでキーボードイベントのKeyAsciiとかKeyCode使った制御できますか?
758名無しさん@そうだ選挙にいこう:2010/07/27(火) 18:34:42
うむ、なにをどう制御したいのかわからんが、思う存分制御するがいい。
759名無しさん@そうだ選挙にいこう:2010/07/27(火) 18:42:31
KeyAsciiとKeyCode使えますか?
760名無しさん@そうだ選挙にいこう:2010/07/28(水) 00:33:38
そんなことより、こんなゴミ糞と格闘するのは時間の無駄。
早くオープンオフィスなりファイルメーカーに移行するべし。
761名無しさん@そうだ選挙にいこう:2010/07/28(水) 13:30:04
フォームやレポートでプロパティに「コード保持」があるじゃないですか?
「いいえ」にすれば軽くなるとは書かれているのですが
何故軽くなるのか、何故「はい」が必要なのかなどググッてもさっぱり分かりませんでした。

結局のところ、このプロパティにはどの様な意味があるのか
どなたかご教授して頂けないでしょうか?
762名無しさん@そうだ選挙にいこう:2010/07/28(水) 14:03:51
>>761
> 何故軽くなるのか
コードがなくなるから、コードを読み込まない分だけ起動が早くなる

> 何故「はい」が必要なのか
コードが必要なフォーム/レポートでは、コードを保持しないといけないから

> このプロパティにはどの様な意味があるのか
コードが必要ないフォーム/レポートの起動を早くすることができる
不要なコードを一括で削除できるから、ファイルサイズも小さくできる
763名無しさん@そうだ選挙にいこう:2010/07/28(水) 14:36:46
レイアウトビュー使ってて初めて気づいたHasModuleプロパティ
764名無しさん@そうだ選挙にいこう:2010/07/28(水) 16:14:07
>>762
なるほど!
要するにコードが書かれているフォーム/レポートは必ず「はい」にしないとダメで
「いいえ」にした時点でコードが全て削除されてしまうってことですか

うっかり必要なフォーム/レポートでやってしまったら怖いですね
ありがとうございました
765名無しさん@そうだ選挙にいこう:2010/07/28(水) 23:14:37
【 システム環境 】 WindowsXP, Access2003
【 VBAが使えるか 】 いいえ?(Excelでちょっとやった程度)
【 VBAでの回答 】 可

仕事で工数管理のデータベースを作ることになって先週からACCESSの勉強を始めました。

大体の部分は出来たのですが、累計工数のピボットグラフで困っています。
横軸が日付で、縦軸が工数の折れ線グラフで製品納期の日付の部分に
縦線を入れたいのですがうまく入れられません。というか正直、入れ方が分かりません。

ピボットグラフの折れ線グラフに縦線を入れる方法を教えてください。
また、その位置をフォームで入力した値によって変更できるようにもしたいです。

初心者なので説明不足ですがよろしくお願いします。
766名無しさん@そうだ選挙にいこう:2010/07/28(水) 23:23:26
ピボットでは無理じゃないかな
OLE挿入でMicrosoftGraphってのがあるから、それでやってみれ
767765:2010/07/29(木) 18:11:44
>>766
MicrosoftGraphでやったところ
下記のような表で納期部分を棒グラフにしたらそれっぽくはなりました。
ただ棒グラフなので線が太いです…
他に垂直線を出す方法はありませんでしょうか。

日 | 累計| 納期
1/1 | 100 |
1/2 | 200 |
1/3 | 300 |
1/4 | 400 |
1/5 | 500 |
1/6 | 600 | 800 ←適当な値
768名無しさん@そうだ選挙にいこう:2010/07/29(木) 18:47:29
>>767
MicrosoftGraph
表示→ツールバー→図形描画→直線
769765:2010/07/29(木) 23:46:44
>>768
その機能で引いた直線は
別のフォームで日付を入力した場合にVBAで位置を修正できるようにできますか?
出来れば、その方法も教えていただけると助かります。
770名無しさん@そうだ選挙にいこう:2010/07/30(金) 00:14:53
多分できない
771名無しさん@そうだ選挙にいこう:2010/07/30(金) 02:02:50
○。・。○。・。○。・。○。・。○。・。○。・。○。・。○。・。○
このレスをみたあなたは・・・3日から7日に
ラッキーなことが起きるでしょう。片思いの人と両思いになったり
成績や順位が上ったりetc...でもこのレスをコピペして別々のスレに
5個貼り付けてください。貼り付けなかったら今あなたが1番起きて
ほしくないことが起きてしまうでしょう。
コピペするかしないかはあなた次第...
○。・。○。・。○。・。○。・。○。・。○。・。○。・。○。・。○
772712,720:2010/08/02(月) 14:07:06
2010の新しい暗号化方式、問題でまくり
従来の暗号化方式に戻したら、すべて解決しました
773名無しさん@そうだ選挙にいこう:2010/08/05(木) 07:17:23
age
774名無しさん@そうだ選挙にいこう:2010/08/10(火) 14:54:52
【 システム環境  】 WindowsXP, Access2007
【 VBAが使えるか 】 はい
【 VBAでの回答  】 可
【 検索キーワード 】 複数値フィールド 保存済みのインポート再実行

テーブルのバックアップ・レストアで
DoCmd.TransferSpreadsheet
DoCmd.RunSQL "INSERT INTO
等を使っていますが
Access2007の新機能、複数値フィールドがあると上手くいきません
何かいい方法はありますか?
775名無しさん@そうだ選挙にいこう:2010/08/10(火) 15:36:10
>>774
いい方法というのはなんだろうかというのは置いといて。
複数値/添付ファイル型の場合処理が異なるから、その辺理解してコーディングしないとな。

該当するフィールドから情報を取り出すには、レコードセットとして扱うことになるんで、
DAOなり使って読み出し書き込みしないとならんのですよ
776名無しさん@そうだ選挙にいこう:2010/08/10(火) 16:01:25
>>774
ありがとうございます
ウィザードでエクスポートを実行時、その設定が保存出来るので
DoCmd.RunSavedImportExport "ファイル名"
を使うと簡単なのですが、APIのフォルダ参照を使いたいので
C:\Documents and Settings\おれおれ\デスクトップ\バックアップxls 等だと
「おれおれ」さんじゃなく「あどみん」さんは使えない
引数がフルパスじゃなくファイル名だけなんですよね
「おれおれ\デスクトップ」をvbaから設定出来ればいいのですが
777名無しさん@そうだ選挙にいこう:2010/08/10(火) 18:02:12
ImportExportSpecification.XML をVBAから書き換えろ
778名無しさん@そうだ選挙にいこう:2010/08/10(火) 19:41:36
いきならフォームから新規行が消えてレコード追加不能になってオカシイナぁと
2010試用版期限切れたら読み取り専用になってたwww
779名無しさん@そうだ選挙にいこう:2010/08/11(水) 20:36:04
10年くらい前にAccessでデータベースを作って以来久々なのでかなり劣化しています。

社内で、レストランのレシピをデータベース化したいと考えています

@レシピデータを一度でも入力しておけば、検索でレシピデータを閲覧できる
A閲覧したレシピデータをA4サイズの紙にプリントアウトできる。

どのような感じで作っていけばいいと思いますか?
特に聞きたいのは
@入力したデータをデータベース起動時、編集不可で閲覧できるか
780名無しさん@そうだ選挙にいこう:2010/08/11(水) 21:39:01
>>779
漠然としてる件は置いといて、
下の@は、フォームプロパティの設定で問題なく要件を満たせる。もしくはレポートビュー。
781名無しさん@そうだ選挙にいこう:2010/08/13(金) 22:40:51
官公庁提出用書類は最近PDFの雛形が増えてるけど、Accessで管理するのは難しいですか?
PDF定型書式に入力して印刷して提出を沢山行う場合、Accessでデータ管理したいのですが

AdobeのAcitonScriptとADBCでAccessデータベースに繋いだりしてみたのですが、非常に煩雑で
だったら始めから全部Accessでやれば良いじゃんって考えに至って…

PDF定型書式の入力・印刷をAccessで行っている方は居りますか?
定型PDFからのレポートとフォーム作成のコツなどありましたら教えてください
782名無しさん@そうだ選挙にいこう:2010/08/14(土) 00:23:03
>>781
情報の管理自体は特段に難しいことじゃないと思えるけど、
PDFの生成っつーか、ひな形PDFにアノテーションな感じで情報乗っけるんでしょ?
その場合、PDF書いてくれる中の人にどうやって情報渡すかっつーことかな。
783名無しさん@そうだ選挙にいこう:2010/08/14(土) 08:00:39
ああ、adobeはガチガチですねぇ、全部adobe製品でやりなさいってこと、adobeの高価なLiveCycleなんたら買うとスマートにできるよ
784名無しさん@そうだ選挙にいこう:2010/08/14(土) 12:51:08
http://blogs.msdn.com/b/access/archive/2010/06/07/access-2010-and-sql-azure.aspx
AccessでSQL Azureを使うってことか。。。

胸が熱く ならないな
785名無しさん@そうだ選挙にいこう:2010/08/24(火) 15:11:34
ちょっと想定外の使い方すると壊れるなぁ
データシートフォームでキーボードイベントとエンターイベントとWinAPI組み合わせてIME制御してたら、あっというまにaccdb壊れた
786名無しさん@そうだ選挙にいこう:2010/08/25(水) 13:06:15
コントロールレイアウトはコードで操作できないのですか。
787名無しさん@そうだ選挙にいこう:2010/08/26(木) 12:59:39
Access2010
必要があってクライアントの設定[データシート上でIME制御する]をONでIMEは自分で制御なんだが、データシート以外でも全てのフォームでIME自動制御しなくなるorz
788名無しさん@そうだ選挙にいこう:2010/08/26(木) 15:06:18
>>787
なんかこれ表示が逆っぽくね?
789名無しさん@そうだ選挙にいこう:2010/08/26(木) 15:40:45
ん、これはおかしいかもぞ。
[データシート上でIMEを制御する]をONにした場合、コントロールやテーブルフィールドの
[IME入力モード]を使用不可にしても、使用できてしまう動きをしておるよ
790名無しさん@そうだ選挙にいこう:2010/08/26(木) 16:03:53
前からそんな感じじゃなかったっけ?
IMEの制御をする/しない という感じに脳内変換してたんだけど。
791名無しさん@そうだ選挙にいこう:2010/08/26(木) 23:31:00
データシートでも自分でコード書いてIME制御しないと、桐のような操作感は実現できないよね。
Access2010では無理なん?
792名無しさん@そうだ選挙にいこう:2010/08/27(金) 04:04:51
【 システム環境  】 WindowsXP, Access2007
【 VBAが使えるか 】 はい(初心者レベルです)
【 VBAでの回答  】 可
【 検索キーワード 】 重複

ID  人名 読み アイテム名
AAA BBB CCC アイテム1
AAA BBB CCC アイテム2
AAA BBB CCC アイテム3
AAA BBB CCC アイテム4

フォーム上にて、一覧名簿から個人が複数所持しているアイテムをフィルタしてアイテムを所持している人名を抽出したいのですが、
個人にアイテムのデータを持たせるとアイテムごとにレコードが増えててしまい、一覧名簿が上記のように同じ人名がアイテムの数だけ何個も表示されてしまいます。
人名を重複させず、アイテムで人名を抽出する方法を教えていただけないでしょうか?
※2007の機能で、アイテムを複数の値を持った状態からVBAで抽出しようと試みた所、
  実行エラー'3831':「WHERE 句や HAVING 句では、複数値を持つフィールド'アイテム名'を使用することはできません。」と表示されてしまい抽出出来ません。
  どうかご教示お願いします。
793名無しさん@そうだ選挙にいこう:2010/08/27(金) 10:09:30
俺、アクセスを習得して就職するんだ……
ネクタイもかってあったりして
794名無しさん@そうだ選挙にいこう:2010/08/28(土) 16:24:57
Access2000です。

インポート→オプションで、他のmdbから
「インポート/エクスポートの定義」をインポートすることができるけど
これをVBAでやる方法ないですかね?

システムテーブルのMSysIMEXSpecsとMSysIMEXColumnsからクエリつくって
インポートするしかないのかな。
でもそれだと主キー調整しなきゃいけないみたいでちと面倒。
795名無しさん@そうだ選挙にいこう:2010/08/29(日) 01:11:06
>>794
ようわからんが、TransferDatabaseでインポートとじゃいかんの?
796名無しさん@そうだ選挙にいこう:2010/08/29(日) 05:44:06
2010の、開いてるタブを多段表示にする事は出来ませんか?
一々矢印をクリックして左右にスクロールするのは面倒臭いです
797名無しさん@そうだ選挙にいこう:2010/08/29(日) 08:22:02
>>796
Ctrl+F6で我慢
798名無しさん@そうだ選挙にいこう:2010/09/01(水) 20:41:39
殆ど全部をVBAで書くのが面倒くさくてかなわん
アクションクエリを実行させれば出来るようなものは、全部クエリ対応
これって素人的発想ですか?質問自体が愚問ですかね・・
799名無しさん@そうだ選挙にいこう:2010/09/01(水) 20:45:17
>>798
ある程度理解してくると、今度はそれが面倒になってくるのですよ。
VBEからクエリのデザインビューを開いてとか、クエリがいっぱいになって
どのクエリが何をやっているのかわからなくなったり。
800名無しさん@そうだ選挙にいこう:2010/09/01(水) 20:56:06
>>799
たしかに摘要みたいな所に番号とか振ってないと
訳わかんなくなりますもんね。
では、クエリの代わりにほぼSQLで対応っていうのも、
同じく素人発想ですかね。
がちがちのVBAだと、IFとLOOPを見てるだけでウンザリなんです。
801名無しさん@そうだ選挙にいこう:2010/09/01(水) 21:03:52
>>800
普通にsqlは使うよ。なるべく使いまわせるようにConstしたりして。
抽出だと抽出条件が変わるだけで後は一緒だからね。
あとその人の書き方の癖もあるだろうけど、自分の場合は
ConstとDimは混ぜないから視認性がいいね。
802名無しさん@そうだ選挙にいこう:2010/09/01(水) 22:04:55
>>801
ありがとうございます。
定数を使うのは浮かばなかったです。
そのままダラダラ書くところでした。
これで、めんどくさいVBAからある程度開放されそうです。
803名無しさん@そうだ選挙にいこう:2010/09/01(水) 22:13:17
>>802
定数化はsql以外にもできるだけしたほうがいいよ。
同じ「1」でもまったく違う意味合いのときがあるでしょ。
定数に修正が生じたときも、宣言部で値を変えるだけでいいし、
別の意味合いの「1」には影響を及ばないしね。
804名無しさん@そうだ選挙にいこう:2010/09/06(月) 23:39:17
定数って解らん…
何で変数じゃダメなん?
805名無しさん@そうだ選挙にいこう:2010/09/07(火) 00:16:33
>>804
値が変わるから(またはその可能性があるから)変数を使うわけじゃん。
変わらないのなら定数。
でVBも多分同じだと思うが、変数は開放されるまでメモリを消費する。
定数はコンパイル時に宣言された数値に置換する。

違ったらどうしようw
806名無しさん@そうだ選挙にいこう:2010/09/07(火) 00:32:37
あー、805じゃどうして使うかの説明にはならんかな。
>>804の名前が田中一郎だとする。これが定数。
が、あいにくクラスにはタナカイチロウが5人いるわけだ。
フルネームで呼んでも5人が反応してしまうから、それぞれにあだ名つける。これが定数化。
つまり人間側の都合だよ。

807名無しさん@そうだ選挙にいこう:2010/09/07(火) 00:47:19
在日の場合複数の通名を切り替えて使えるから便利。公的証明書も取れる。
つまり特権階級だよ。
808名無しさん@そうだ選挙にいこう:2010/09/07(火) 08:57:00
enumとは違うん?
809名無しさん@そうだ選挙にいこう:2010/09/07(火) 09:41:34
>>806
aha!
810名無しさん@そうだ選挙にいこう:2010/09/07(火) 13:37:46
>>808
似たようなものだが、VBでは整数が確か扱えない。
また、何の関連性もなれば余計混乱を招く元になる。
使い分けられれば、さらに可読性の高いコードになるんじゃない。
811名無しさん@そうだ選挙にいこう:2010/09/07(火) 13:39:00
>>810
×VBでは整数が確か扱えない
○VBでは整数しか扱えない
812名無しさん@そうだ選挙にいこう:2010/09/08(水) 15:04:19
帳票(表形式)フォームで入力中に [ESC]でUnDoするとスクロールしちゃってフォーカスが表示範囲外になるのは
対応方法はありますか?
813名無しさん@そうだ選挙にいこう:2010/09/08(水) 17:06:28
vbaとaccessを0から学んで自分でソフトを作れるレベルになるまでに、早くてどれくらいかかりますか?
814名無しさん@そうだ選挙にいこう:2010/09/08(水) 22:13:52
>>812
フォーカスが表示範囲外ってのがわからんのだが、Undoイベントで処理すりゃいいんじゃねぇの?

>>813
素養に影響されるだろうから、そんなことわからんだろうよ。
815812:2010/09/08(水) 22:54:45
表形式で入力中に誤入力に気付いて、ESCキーで入力を戻すと勝手にスクロールしちゃってフォーカスを失います
実際には画面上に表示されてないレコードにフォーカスがあります
非常に使いにくいです

画面上に新規行が見えるスクロール位置でESC操作をすると頻繁に生じます
816名無しさん@そうだ選挙にいこう:2010/09/09(木) 00:09:35
Access2010使用しています。

「ID」「comment」「time」の三つのフィールドをもつ「T_test」というテーブルをつくりました。
「comment」を入力した際に自動的に「time」にその時刻が入力されるようにしたいと思っているのですが、
うまくいかず弱り果てております。

「デザインビュー」→「データマクロの作成」→「更新後処理」を選び、
以下のように記述しましたが、うまくいきません。
どのあたりが間違っているのでしょうか?

------------------------------------------------
If Updated([comment]) Then

 レコードの編集
  別名
   フィールドとの設定
    名前 T_test.Time
     値 =Now()
 レコードの編集の最後

If文の最後
------------------------------------------------
817名無しさん@そうだ選挙にいこう:2010/09/09(木) 00:19:37
>>816
フィールドの規定値でいいじゃん。
T_testのtimeフィールドの規定値にNow。
つーか、timeなんてフィールド名をく使えるね。
俺は怖くて使えない。
818名無しさん@そうだ選挙にいこう:2010/09/09(木) 00:31:19
>>817
フィールドの規定値にNowをいれると以下のような不具合が生じるのです。
なんとかならないでしょうか。

------------------------------------------------------
ID=1のデータを入力すると、次のレコード(ID=2)が新規で出現する。
そのタイミングで、ID=2の「time」に現在時間が入力されてしまう。

つまり
ID=2の「time」には、ID=1を入力した時間が入力され、
ID=3の「time」には、ID=2を入力した時間で入力される
といった具合に、一つずつずれていってしまうようです。
(なぜそんな仕様になっているのかは不可解ですが)
-----------------------------------------------------


実際には「Time」というフィールド名は使っておりません。
さすがに怖いですので。
819813:2010/09/09(木) 00:38:55
そうですよね。自分、何から手をつけていけば良いのか分からないので、どなたか、vba+accessでソフト作れる程度になるまでの、アウトラインを提示していただけませんか?
例えば、まずコレ読んで、次アレ作って必要ならソレ習得して〜みたいな感じで。

820名無しさん@そうだ選挙にいこう:2010/09/09(木) 00:52:09
>>818
いや、レコード確定時の時間が入るわけだから
次のレコードにフォーカスが移る寸前の時間が入るのは当たり前だが。
わりー、マクロは自信ないし2010は持っていないからほかの人の回答を待ってくれ。

>>819
とりあえずAccessの初心者本を何でもいいから買う。
そして最低限コミュニケーションできるだけの知識(要は用語)を身につける。
ネットで検索するにしてもヘルプを見るにしてもこれが最低条件。
VBは関数辞典みたいなのと応用プログラムとか実践編とかがあれば十分。
初心者的なのはいらない。
821820:2010/09/09(木) 01:00:53
>>818
よく読んでいなかったorz
822名無しさん@そうだ選挙にいこう:2010/09/09(木) 01:26:21
>>821
いえいえ、レスいただきありがとうございます。

同じ症状に悩んでいる方いそうなんですが・・・。
823813:2010/09/09(木) 01:47:51
>>820
ありがとう。また躓いたら質問に来ます!
824名無しさん@そうだ選挙にいこう:2010/09/09(木) 02:46:15
>>822
VBAでの回答なら簡単なのだが。
825名無しさん@そうだ選挙にいこう:2010/09/09(木) 09:15:29
>>816
[変更前]でやったら?
826名無しさん@そうだ選挙にいこう:2010/09/09(木) 10:47:29
>>824
VBAならどのように組めばいいでしょうか?
また組んだプログラムをどこに登録すればよいでしょうか?
827名無しさん@そうだ選挙にいこう:2010/09/09(木) 10:48:57
>>825
ありがとうございます。
しかしながら[変更前]では難しそうです。
828825:2010/09/09(木) 11:02:53
変更前データマクロ

If Updated("[comment]") Then
   フィールドの設定
    名前 Time
     値 =Now()
If文の最後
829名無しさん@そうだ選挙にいこう:2010/09/09(木) 11:33:59
>>828
できました!!「難しそう」などといって申し訳ございませんでした。

さらにもう一歩進んで、
[ID](主キー)が更新されたとき     =[入力日時]に時刻入力
[ID]以外のフィールドが更新されたとき=[最終更新日時] に時刻入力
としたいのですが、
下記マクロ中の(******)の部分に、
「[ID]以外のフィールド」を指定するには、どのように記載するとよいのでしょうか?

--変更前データマクロ-------------------
If Updated("[ID]") Then
   フィールドの設定
    名前 入力日時
     値 =Now()
If文の最後

If Updated(******) Then
   フィールドの設定
    名前 最終更新日
     値 =Now()
If文の最後
------------------------------------
830名無しさん@そうだ選挙にいこう:2010/09/09(木) 11:39:29
ACCESSか.net(VisualStudio)か、というのはどういう基準で判断したら良いのでしょうか?
831825:2010/09/09(木) 12:08:48
>>829

> [ID](主キー)が更新されたとき     =[入力日時]に時刻入力
> [ID]以外のフィールドが更新されたとき=[最終更新日時] に時刻入力

[ID]も含めて、どこでも更新されたときに [最終更新日時] に時刻入力 で良いと思うが…
拘るなら、必要なケースのみ「更新後処理」で戻したら?

って、もうタイムアップ帰宅時間
832名無しさん@そうだ選挙にいこう:2010/09/09(木) 13:10:45
>>831
>[ID]も含めて、どこでも更新されたときに [最終更新日時] に時刻入力 で良いと思うが…
たびたびありがとうございます。
たしかにそうでした。IDだけ変更するということは普通はありえないわけですし。

「いずれかのフィールドが更新されたとき」を表したい場合は、
以下の***になにをいれればいいのでしょうか?
ご存じの方がいらしたらご教授くださいませ。

If Updated("[***]") then
833名無しさん@そうだ選挙にいこう:2010/09/09(木) 13:14:18
>>832

If Updated(******) Then   ←削除
   フィールドの設定
    名前 最終更新日
     値 =Now()
If文の最後                ←削除
834名無しさん@そうだ選挙にいこう:2010/09/09(木) 13:51:57
>>833
Ifはいらないのですね・・・。
これで問題解決しました。
みなさまありがとうございました。
835名無しさん@そうだ選挙にいこう:2010/09/09(木) 16:22:01
IsInsert 知ってれば悩むこともなかったろうに。
836名無しさん@そうだ選挙にいこう:2010/09/10(金) 15:29:55
Access2002を使用しています

フォームでコントロールにフォーカスを移動した際
なぜか内容が見えなくなってしまうコントロールが一箇所だけあります
そこはSelstartで文末に自動で飛ぶようにしてあるコントロールなんですが
特定の複数の別のコントロールからフォーカスを移動すると
内容がきえてしまいます
矢印キーの左を押すと出てくるのですがきわめて使いづらいです
何が原因でしょうか?
837名無しさん@そうだ選挙にいこう:2010/09/10(金) 22:14:14
Access2010をつかってます。
マクロでWhere条件によるフィルター実行をかけました。
ワイルドカードで部分一致するレコードを抽出するんです。
フォームは表形式で、抽出自体は上手くいったんですが
なぜか勝手にレコードの順番がバラバラになってしまうんです。
なぜ主キー通りの順番に抽出されないんでしょう?
838名無しさん@そうだ選挙にいこう:2010/09/10(金) 22:53:10
>>815
各コントロールの更新後処理で、
Docmd.Runcommand acSaveRecord
を実行しておけば、ESCでUndoしないし、別のレコードにもフォーカス移動しない。
839名無しさん@そうだ選挙にいこう:2010/09/10(金) 23:10:06
>>837
なぜ と言っても、君が順番を指定してないからなんだが、アクセス君はエスパーでないから君の希望を予測しての動作はしないよ
主キー通りの順番 にしたければ、そのように並び替えを指示しないと
840名無しさん@そうだ選挙にいこう:2010/09/10(金) 23:21:54
で、つぎにくるのは「テーブルでは主キー順に並んでいるのに…」だろうな。
841名無しさん@そうだ選挙にいこう:2010/09/11(土) 06:44:40
order by ascとかでもダメなもん?
842名無しさん@そうだ選挙にいこう:2010/09/11(土) 06:45:22
id
843名無しさん@そうだ選挙にいこう:2010/09/11(土) 07:47:28
質問です。
エクセルの表をアクセスにインポートし、リレーショナルで正規化・最適化して
いろいろ調整して3日かけて完成するとします。
この間、エクセルの表が3000件とか増えた場合、この分を取り込むにはどうしたらいいですか?

完成した奴をデータだけクリアして、ひな形にしても
だから何?って感じでなにも進まない

追加した分、インポートしてみても、当然正規化した後のテーブルとは何のつながりもないし
それをリレーショナル掛けて同じ形式で2重にテーブル作った後に、それぞれくっつけようとすると
まともにさらに3日かかってしまいイタチごっこに・・・・

まさか3日分の作業手順を「記録」かけて、一気に?
844名無しさん@そうだ選挙にいこう:2010/09/11(土) 08:02:02
がんばれよ
845名無しさん@そうだ選挙にいこう:2010/09/11(土) 12:44:07
>>838
> 各コントロールの更新後処理で、
> Docmd.Runcommand acSaveRecord

実は別の理由で既にそれを行っているんだが…
テキストボックス入力に間違いに気づいてESC押すとスクロールしちゃってカレントレコードが画面表示外に移動しちゃうのよ
レコード数が多い表形式フォームでスクロールした後に頻繁に生じる、特に新規行が見えるスクロール位置でのESC
データシートでは起こらない
Accessは表形式フォームはダメじゃないかと思える
846名無しさん@そうだ選挙にいこう:2010/09/11(土) 15:26:27
>>843
>エクセルの表をアクセスにインポートし、リレーショナルで正規化・最適化して
>いろいろ調整して3日かけて完成するとします

大抵はここを自動化するプロセスから始めるんだけどね。
比較的簡単なのはExcelのデータを一時テーブルにそのままインポートして
その後、正規化したテーブルにデータを分解していくとこか。
847名無しさん@そうだ選挙にいこう:2010/09/11(土) 19:29:01
>>846

要は設計中の更新分を後で取り込む芸当は無理難題ってことでFA?
848名無しさん@そうだ選挙にいこう:2010/09/11(土) 20:22:41
>>847
excelのデータの形式というか様式がAccessのテーブルにそのまま取り込めるようなら
とりあえず取り込んでおけばいい。
重複とか出るのならクエリをかまして重複をなくしたり、一時テーブルにデータ取得日を設定しているのなら
それを条件にデータを抽出。
もしくはすでにあるデータと外部結合させれば追加分のデータが取れるだろう。

結論を言えば、スキルによるとしか言いようがない。
実務では製作中にデータが増えるなんて、ごく当たり前のことだし。
849名無しさん@そうだ選挙にいこう:2010/09/11(土) 20:50:56
>>848

よくわかってないようだな・・・・
テーブル分けしてない元のエクセルのデータをどうやってそのまま取り込めるというんだ?
どうやってマスター増えた分のIDの整合性取るというんだ?
850名無しさん@そうだ選挙にいこう:2010/09/11(土) 21:07:32
最悪、元の形にデータを戻して比較するっていう手もあると思うけど。
851名無しさん@そうだ選挙にいこう:2010/09/11(土) 21:11:48
まあ、主キーにID使ってる時点で…
必要なら完全移行後にID作れば?
852名無しさん@そうだ選挙にいこう:2010/09/11(土) 21:21:40
>>851
こいつわかってんのか?
主キー関係なく、テーブルはマスターファイルのID値で引っ張るだろ
お前、マスターテーブル別に作ってあるのに、各テーブルの商品名に、マスターID値じゃなく商品名書いてんのか?

それDBじゃなくテーブル分けてるだけじゃん
853名無しさん@そうだ選挙にいこう:2010/09/11(土) 21:30:40
>>852
あえて商品コードとか商品名を直書きとかする場合はあるなぁ。
商品コード変更とか商品名変更とかはよくあることだから。
854名無しさん@そうだ選挙にいこう:2010/09/11(土) 21:34:37
ここまで具体的な回答なし。
みんな口だけ。

>3日分の作業手順を「記録」かけて、一気に?
これでおk。
別に設計中にデータそのものをいじる作業は全くない。
インポートからレポート・フォームまで全部記録して
完成したら最新のエクセルファイルを用意して一気に「再生」で終わり。

855名無しさん@そうだ選挙にいこう:2010/09/11(土) 21:37:20
>>853

馬鹿じゃねーの?
商品コード変更とか商品名変更なんてマスターテーブルだけで出来るだろ
なんで他のテーブルに商品名直書きする必要がある?
アホなDBだこと
856名無しさん@そうだ選挙にいこう:2010/09/11(土) 21:40:05
>>855
過去の分が変わっちゃうじゃん。場合によっては商品コードを使いまわすことだってありうるんだよ。

>>854
そう、それ聞きたかったんだけど、マクロの記録見たいのが装備されたの?
857名無しさん@そうだ選挙にいこう:2010/09/11(土) 21:45:19
>>856
馬鹿じゃねーの?
マスター変更履歴処理とか知らんのか
お前、結婚して苗字変わったとか、異動して部署配置変わったとかの処理したことねーの?
そういうの全部直書きかよwwww情けねー奴
858名無しさん@そうだ選挙にいこう:2010/09/11(土) 22:09:40
エクセルから移行するならキーはテキストだろ常考、完了後にIDれば良いじゃん、俺はテキストのままにしとくが
859名無しさん@そうだ選挙にいこう:2010/09/11(土) 22:28:15
>>858
全然意味不明
完了後にIDるって何のメリットがあるんだ?
それが10分で100件マスター増えるようなDBでも対応できるのか?
860名無しさん@そうだ選挙にいこう:2010/09/11(土) 22:30:20
>>858
っていうかお前エクセルの何を移行するか自体把握してないだろ?
861名無しさん@そうだ選挙にいこう:2010/09/11(土) 22:33:54
何時でもエクセルに戻しやすいようにキーをテキストのままにしている俺、先々MSaccessがポシャッても俺のデータは永遠だ
862名無しさん@そうだ選挙にいこう:2010/09/12(日) 00:20:30
>>845
ちょっと間違えてたので訂正
× Docmd.Runcommand acSaveRecord
○ DoCmd.RunCommand acCmdSaveRecord

>レコード数が多い表形式フォームでスクロールした後に頻繁に生じる
ちゃんと手入力する可能性のある全てのコントロールの更新後処理に入ってる?
スクロールした後ESCでフォーカスが飛ぶんだから、どこかの記述が抜けてるんじゃないかな。

もしくは、DoCmd.RunCommand acCmdSaveRecordの前に
既にレコードが移動してしまっている原因があるとか?

とにかく、ステップインで1行ずつ、どこで別のレコードに移動しているのか
原因を探るしかないような気が。
863名無しさん@そうだ選挙にいこう:2010/09/12(日) 01:39:20
>>861
お前はクエリで元のエクセルそっくりに出力させられることすら知らんかったのか?
つーかエクセルからのインポートウィザードで、最後親切にそれやってくれるだろ
864名無しさん@そうだ選挙にいこう:2010/09/12(日) 08:30:25
テキストボックス入力中にESCキーで戻すとスクロールするのは大昔から治ってないよ、少なくともアクセス2000の時からはズーット。
DoCmd.RunCommand acCmdSaveRecord の有無も無関係で起こります。1つのテキストボックス編集を途中で戻すだけで起こりますから。
どうにもなりません。
865名無しさん@そうだ選挙にいこう:2010/09/12(日) 08:30:40
なんか一人変なのがいるな
866名無しさん@そうだ選挙にいこう:2010/09/12(日) 12:06:32
アクセスはバカバカしいのに気付いた
867名無しさん@そうだ選挙にいこう:2010/09/12(日) 14:17:00
帳票フォームで何百行も表示するのは向いてないです。エクセルを使ってね。
868名無しさん@そうだ選挙にいこう:2010/09/14(火) 05:24:59
>843
> いろいろ調整して3日かけて完成するとします。
> この間、エクセルの表が3000件とか増えた場合、この分を取り込むにはどうしたらいいですか?

今週末の三連休で完成させるといいよ。
869名無しさん@そうだ選挙にいこう:2010/09/14(火) 12:59:35
Access2010です

1.テキストボックスAAA のBeforeUpdateイベントで、AAA.Undo って効きませんか? 何か変

2.フォームのBeforeUpdateイベントで、Me.Undo は効きましたが、Me.UndoしてもフォームのAfterUpdateイベントは発生してしまいますか?
フォームのAfterUpdateイベントで更新日時を書き込んでいますが、Me.Undo した時も更新日時が書きこまれてしまいます
870969:2010/09/14(火) 13:23:24
自己解決しますた
871名無しさん@そうだ選挙にいこう:2010/09/16(木) 11:17:09
>>862
> とにかく、ステップインで1行ずつ、どこで別のレコードに移動しているのか
> 原因を探るしかないような気が。

別のレコードには移動しませんです
フォーカス持つレコード・コントロールは維持されてますが、画面自体がスクロールしてフォーカス部分が表示領域外に移動してしまいます
872名無しさん@そうだ選挙にいこう:2010/09/17(金) 08:45:06
>>864,>>871
うーむ。
864も踏まえると、該当コントロールのキーイベントか何かで
ESCキーを無効にするしかないのかな。
873名無しさん@そうだ選挙にいこう:2010/09/17(金) 18:52:46
それだと、入力中に間違い気づいたときESC出来ない…
874名無しさん@そうだ選挙にいこう:2010/09/20(月) 20:55:41
レポートを作成しているのですが、
詳細セクターにおいて、他の隣のコントロールソース次第で条件分岐して、書式を変更することは可能なのでしょうか?
単位の表示形式を条件により変えたいのです。aのときは##回、bのときは##時間
875名無しさん@そうだ選挙にいこう:2010/09/20(月) 23:31:48
formatだかprintだかでできるんじゃないの
876名無しさん@そうだ選挙にいこう:2010/09/21(火) 00:09:02
>>875
標準機能では無理ですかやはり
VBAで、ifとかselect caseですね。
877名無しさん@そうだ選挙にいこう:2010/09/22(水) 08:25:03
標準機能だろ
「やっぱり」?
878名無しさん@そうだ選挙にいこう:2010/09/22(水) 09:33:58
access2002を使っています

フォーム上でCtrl+fの"検索と置換"を用いてレコードの検索を
行っているのですが,なぜか結果が表示されなくなってしまいました.
左下には"指定した文字列が見つかりました"と表示されているのですが,
検索したレコードに飛ぶことができません.以前はできていました.
また,違うコントロールで同様に検索したところ,検索したレコードに
飛ぶことができました.よってある特定のコントロールでのみ
検索ができないようです.なにか検索結果が表示されなくなるような
属性などがあるのでしょうか?
よろしくお願いします.
879名無しさん@そうだ選挙にいこう:2010/09/22(水) 23:04:43
>>876
標準機能も何も普通に関数ifで出来るよ
詳細セクターで他ボックス内のフィールドを条件に使えばよろし
880873:2010/09/23(木) 11:00:41
フッターで単位ごとに集計とるにはどうすればいいですか?
881名無しさん@そうだ選挙にいこう:2010/09/23(木) 13:47:04
あれっ、873は俺なんだが…、君はレス番号ズレてないかい?

ところで、Tint と Shade で何故に別々に存在するんだ、解りにくいよ
両方100に戻さないと色戻らないし
882名無しさん@そうだ選挙にいこう:2010/09/28(火) 19:16:55
初歩的質問で恐縮なのですが教えてください。
「インデックスが有効範囲にありません」というエラーはACCESSでも
存在するものですか?
883名無しさん@そうだ選挙にいこう:2010/09/28(火) 20:01:51
>>882
あったと思う。つうか「インデックスが有効範囲にありません access」でググッたら
出てくるじゃないか。
884名無しさん@そうだ選挙にいこう:2010/09/28(火) 21:14:29
>>883
ありがとう。
数分前にはうまく行っていた作業が、クエリもプログラムも変更してないのに
いきなりそのエラーが出て困ってたとこでした。
885名無しさん@そうだ選挙にいこう:2010/09/29(水) 13:45:21
Access2010です
テーブルでメモ型フィールドを作成しました。
テーブルに直接データを入力しても途中までしか保存されません。

同じ文字列をtxtに張り付けてサイズを見たところ476バイトでした。
改行を1行減らしたところ478バイトまで保存されました。

情報をお持ちの方がいらっしゃったらアドバイスをお願いします。
886名無しさん@そうだ選挙にいこう:2010/09/29(水) 14:22:51
>>885
環境ぐらい書きなよ。
OS 64/32 他バージョンと共存させてるとかさぁ
新規accdbでなるんかえ?別環境で試してみたか?

さっくり試すと仕様通りに入るからさ、原因を探せるようにしてみれ。
887名無しさん@そうだ選挙にいこう:2010/09/29(水) 14:30:32
>>886
申し訳ないです。

いろいろ確認したところ、自己解決しました。
原因はフィールドの書式に設定されていた "@" でした。
もともとExcelからインポートしたテーブルで、テキスト型からメモ型へ変更したフィールドでした。
書式に "@" が残っているとテキスト型と認識してしまうようです。

新規テーブルでも "@" を追加したら同じ現象になりました。

お騒がせしました。
888885:2010/09/29(水) 14:33:54
すみません追加です。
別PC Access2003でも同じだったので以前からの仕様かもしれません。

もしかしたらヘルプなどに載ってるのかもしれませんが探しきれませんでした。
889名無しさん@そうだ選挙にいこう:2010/09/29(水) 23:29:00
知らんけど、書式上の話だから、表示が切れてるだけで、
保存・格納は全部されてる可能性はないの?
Len(DLookup(....))
とかでテーブル直で確認すれば分かると思うけど。
890名無しさん@そうだ選挙にいこう:2010/10/02(土) 23:23:57
即決800円 PowerPoint 2007 テキスト
http://page18.auctions.yahoo.co.jp/jp/auction/w55306077

即決1500円!Microsoft Excel〔2000/2002対応〕セミナーテキストVBA入門編
http://page4.auctions.yahoo.co.jp/jp/auction/d111686977

即決1500円!Microsoft Access セミナー テキストVBA活用編[2000/2002対応]
http://page2.auctions.yahoo.co.jp/jp/auction/b115978835

即決600円! Accessマスター演習問題集
http://page18.auctions.yahoo.co.jp/jp/auction/w55306313 

即決1300円!ウイネットAccess2007クイックマスターfor windows新品
http://page10.auctions.yahoo.co.jp/jp/auction/m81963045
891名無しさん@そうだ選挙にいこう:2010/10/03(日) 10:10:42
VBAの質問なんですけど
DSum("[test_aa]", "test_tbl", "[日付] = #2010/1/1# ")
なら、動作するんですが
Dim test_hizuke As Date
DSum("[test_aa]", "test_tbl", "[日付] = test_hizuke ")
は異常になります(#test_hizuke# 'test_hizuke'も)
教えてください
892名無しさん@そうだ選挙にいこう:2010/10/03(日) 11:10:41
これでダメか? 試してないが

DSum("[test_aa]", "test_tbl", "[日付] =#" & CStr(test_hizuke) & "#")
893名無しさん@そうだ選挙にいこう:2010/10/03(日) 20:29:16
894名無しさん@そうだ選挙にいこう:2010/10/03(日) 21:07:00
結局、Excel と桐の組み合わせが最強
895名無しさん@そうだ選挙にいこう:2010/10/04(月) 22:53:37
250万行×8行くらいのデータを
アクセスをデータベース本体として使って
計算をエクセルでやろうと思うんですが、重いですかね?
896名無しさん@そうだ選挙にいこう:2010/10/04(月) 22:58:58
最近のパソコンなら屁でもない
つーか重いの重くないのはデータ量より処理による
897名無しさん@そうだ選挙にいこう:2010/10/04(月) 23:29:46
DatasheetBorderLineStyle って設定できるの、なにも変化しないんだけど
898名無しさん@そうだ選挙にいこう:2010/10/05(火) 12:11:25
>>895
バックエンドでやるなら、Accessじゃなくてもいいんじゃないか。
フリーのDBだってあるんだし。
899名無しさん@そうだ選挙にいこう:2010/10/05(火) 13:16:03
ACCESS2003で作成したDBをOSがVISTAのPC上で動かそうとして
ACCESS2007ランタイムを入れました。そしてACCESS2003で作成したDBを実行すると
セキュリティ警告がでます。
「警告:コンテンツの発行元が信頼できるかどうか確認することができません・・・」と表示され、
そこで「開く」のボタンがあるので押しても画面は変わりますが開きません。
どうも、ACCESS2007があれば、セキュリティセンターで信頼できる場所をDBに
登録すれば動作するようなのですが、今のところ当方はACCESS2003しか
所有していません。結局、ACCESS2003で作成したDBはACCESS2007ランタイムでは
動かせないということでしょうか?(VISTAのPCのレジストリをいじる方法があるようですが、
配布するPCごとにそれはやるのは大変なのでそれは行ないたくありません。)
900名無しさん@そうだ選挙にいこう:2010/10/05(火) 15:24:41
>>899
2007持ってないのに配布先で2007Runtime使うのはライセンス的な問題があるような気がする。サポートに確認して。
2007製品版で動作確認取らないっつーのもちと問題があるんじゃね?

まぁ2007Runtimeでも、mdbを開けるわけで。起動時の設定をしてないってことはないよな。

セキュリティの設定は、一台ずつちまちまやるか、レジストリ書き込むコード仕込んで最低一度は実行するとか
office2007インストールされていれば、Runtimeでもセキュリティーセンターを開くことできるし、
2007製品版のパッケージソリューションウィザードつかうとかさ、やり方はいろいろあるさ。

まぁ、がんばれ
901名無しさん@そうだ選挙にいこう:2010/10/05(火) 15:38:05
>>900
>2007持ってないのに配布先で2007Runtime使うのはライセンス的な問題があるような気がする。サポートに確認して。
>2007製品版で動作確認取らないっつーのもちと問題があるんじゃね?
あーそうなんですか、サーセン。ライセンスについて確認します。
動作確認についてもそうなんですけど、やっぱり2007買うかな〜

>まぁ、がんばれ
ありがとうございます。

902名無しさん@そうだ選挙にいこう:2010/10/05(火) 16:13:53
Access2000とかの頃は開発者ライセンス持ってないとランタイムの配布駄目だったけど、
今はどしどし配布できるようになってた気がする。
903名無しさん@そうだ選挙にいこう:2010/10/05(火) 16:28:52
Form1 から ダイアログForm2 を開いて、ダイアログForm2 上の2つのテキストボックスに Form1.name と From1.ActiveControl.Name を表示したいです
どのようにすれば出来ますか?
904名無しさん@そうだ選挙にいこう:2010/10/05(火) 16:35:57
>>903
遷移後フォーム上で遷移元のForm.nameとActiveControl.Nameを取りたいってことか?
905名無しさん@そうだ選挙にいこう:2010/10/05(火) 16:55:52
遷移元
Private Sub コマンド0_Click()
 DoCmd.OpenForm "formDialog", , , , , acDialog, Me.Name
End Sub

ダイアログ
Private Sub Form_Open(Cancel As Integer)
 Me.txt01 = Me.OpenArgs
 Me.txt02 = Forms(Me.OpenArgs).ActiveControl.Name
End Sub

これでいいか?まぁこれだとコマンドボタン名が取れるだけだがなぁ
906903:2010/10/05(火) 17:12:20
ドモアリガト ミスターロボット
907名無しさん@そうだ選挙にいこう:2010/10/06(水) 13:32:38
【 システム環境  】 Windows XP, Access 2000
【 VBAが使えるか 】 いいえ
【 VBAでの回答  】 できれば否
【 検索キーワード 】 access 入力規則 フィールド名 データ型 組み合わせ

フィールド名:得意先コード / データ型:数値型
フィールド名:商品コード / データ型:数値型

としてテーブルを作ってます。

入力規則として「商品コードは1 or 2 or3」といったものは設定できてます。
これに加えて、
「得意先コードが100の場合、商品コードは1 or 2のみ受け付ける」、
といったようなことがしたいのですが、どのように設定すればいいのかわかりません。

おわかりのかた、ご教示いただけないでしょうか?
908名無しさん@そうだ選挙にいこう:2010/10/06(水) 14:14:30
テーブルでやりたければ、Access2010にする
フォームで良いのなら、更新前イベントで
909名無しさん@そうだ選挙にいこう:2010/10/06(水) 14:28:02
>>907
フォーム上だったら、更新前処理で入力チェックしたほうが簡単なような気が。

910名無しさん@そうだ選挙にいこう:2010/10/06(水) 23:20:54
Access2003で質問があります。

COMアドインの追加、削除をしたいのですが、COMアドインを操作するダイアログは
どうやって表示するのでしょうか。Access2007ですと、
[Officeボタン]-[Accessのオプション]-[アドイン]選択-[管理]「COMアドイン」選択-[設定]
にあたる画面です。

メニューの[ツール]-[アドイン]や[オプション]などそれっぽいところを探してみたのですが
見つけられず、ヘルプやGoogleで「COMアドイン」などで検索してみても探しきれませんでした。

どうぞよろしくお願いします。
911名無しさん@そうだ選挙にいこう:2010/10/06(水) 23:28:52
>>910
ツール→アドインでアドインマネージャーを起動する。
912名無しさん@そうだ選挙にいこう:2010/10/07(木) 00:17:01
>>911
返信有難うございます。
自分が勘違いしてしまっている可能性もあるので、念のため確認させてください。

Access2007のアドインマネージャは通常のアドインとCOMアドインは別管理になっていて、
アドインマネージャで管理可能なものは拡張子が accda、.accde、mda、mdeのアドインだけでした。
Access2003のアドインマネージャでも拡張子mda、mdeのファイル選択を要求されたので、
COMアドイン(拡張子exe、dll)は別管理だと考えていました。

試しにAccess2003アドインマネージャで対象のCOMアドインを選択してみたのですが、
データベースの形式を認識できません、というエラーになってしまいました。
913名無しさん@そうだ選挙にいこう:2010/10/07(木) 00:54:34
>>912
わりー
ツール→ユーザー設定でコマンドタブ選択→分類(左側のボックス)からツール穂選択↓
コマンド(右側のボックス)からCOMアドインをツールバーまたはメニューにドラッグ

これでダイアログが表示できるようになる。


914名無しさん@そうだ選挙にいこう:2010/10/07(木) 01:46:24
>>913
無事、COMアドイン管理画面を表示することが出来ました。
これは少なくとも、自力ではまず到達不可能でした。。。
有難うございました。
915907:2010/10/07(木) 08:13:20
>>908, >>909
ありがとうございます。
更新前処理というのがあるんですね。

入力はフォームからしてます。
(事後報告で申し訳ないです)

まだ具体的にやり方まではわかりませんが、調べてみて
わからなければまたよろしくお願いします。

助かりました、ありがとうございます。
916名無しさん@そうだ選挙にいこう:2010/10/07(木) 12:08:35
ACCESS2002でシステムを社内で作って使っていたのですが、担当者が退社してしまいました。
その後、現在動いているACCESS2002のMDBファイルを改良しないといけなくなりました。
しかし、そのMDBファイルで例えばマクロの中身を見ようとすると
「○○○(←マクロ名)を読み取る権限がありません。
このオブジェクトを読み取るには、このオブジェクトの[構造の読み取り]権限が必要です。」
と表示されて見ることができません。
モジュールの中身は見ることができます。
クエリー、フォーム等のデザインは「読み取り専用」で開くことはできますが、読み取り専用なので
修正して保存することができません。
この「権限」というものはこの制限をかけられたMDBファイルを何かすると変更できるものなのでしょうか?
それとも、制限がかかってないMDBというのを探してそれを修正していくしかないのでしょうか?
よろしくお願い致します。
917名無しさん@そうだ選挙にいこう:2010/10/07(木) 12:12:33
>>916
ユーザーレベル権限はPCに設定されています、MDBを別のPCにコピーして開いてね
918907:2010/10/07(木) 12:14:39
>>907です。
初めてのVBA、調べながらなので今までかかってしまいましたが
なんとか思うとおりに出来ました。

Private Sub 商品コード_BeforeUpdate(Cancel As Integer)
If Me.得意先コード.Value = 100 Then
Select Case 商品コード
Case Is = 1, 2
Case Else
MsgBox "商品コードが違ってます"
End Select
End If

If Me.得意先コード.Value = 101 Then
Select Case 商品コード
Case Is = 2, 3
Case Else
MsgBox "商品コードが違ってます"
End Select
End If

End Sub

Case Is = 2. 3 の条件に一致したらスルーする、
If Me.得意先コード.Value = XXX Then を得意先コードの分だけ書くという
鈍臭いコードですが、希望のとおり動いたのでご報告まで。

もっとスマートな方法があればまたご教示ください。
ありがとうございました。
919名無しさん@そうだ選挙にいこう:2010/10/07(木) 12:39:58
>>917
素早いご回答ありがとうございます。
「別のPCにコピー」は例えばMDBファイルをファイルとしてUSBメモリなどにコピーして
他のPCで動かしてみればいいのでしょうか?
この方法で他のPC2台でやってみたのですが、同じなのですが、その人の開発用PCで
実行しないと駄目なのでしょうか?
920名無しさん@そうだ選挙にいこう:2010/10/07(木) 12:42:08
>>918
select〜caseが逆だろう。得意先コードがcase文。

Private Sub 商品コード_BeforeUpdate(Cancel As Integer)
Select Case Me!得意先コード
Case 100
If Not (Me!商品コード >= 1 And Me.商品コード.Value <= 2) Then
MsgBox "商品コードが違ってます"
Cancel = True
End If
Case 101
If Not (Me!商品コード >= 2 And Me.商品コード.Value <= 3) Then
MsgBox "商品コードが違ってます"
Cancel = True
End If
Case Else
If Not (Me!商品コード >= 1 And Me.商品コード.Value <= 3) Then
MsgBox "商品コードが違ってます"
Cancel = True
End If
End Select

End Sub
921920:2010/10/07(木) 12:46:21
間違えた

Me!〜かMe.〜.Valueのどちらかに統一してコードを読んでくれ。
922名無しさん@そうだ選挙にいこう:2010/10/07(木) 12:47:13
> ACCESS2002でシステムを社内で作って使っていた
とは関係ない自宅のPCとか

あと、当該PC内でファイル *.mdw を検索して、削除( *.mdw.org にリネーム)するとか
923名無しさん@そうだ選挙にいこう:2010/10/07(木) 13:07:42
>>922
あまり詳しく書くと特定されるかと思って(w)書かなかったのですが、
開発した人が東京本社の人で、その人が作って私がいる田舎の工場に送って動かしていたんです。

>あと、当該PC内でファイル *.mdw を検索して、削除( *.mdw.org にリネーム)するとか
すみません、この「当該PC」とは開発者が開発に使っていたPCということでしょうか?


924名無しさん@そうだ選挙にいこう:2010/10/07(木) 13:14:05
> 当該PC
普段そのMDBを動かしてるPC
925名無しさん@そうだ選挙にいこう:2010/10/07(木) 13:24:48
>>924

>普段そのMDBを動かしてるPC
そうですね(汗)

↓この場所にあったので
C:\Documents and Settings\user name\Application Data\Microsoft\Access\System.MDW
System.MDW をSystem.mdw.org に変更してみました。そして該当MBDファイルを開いて見ましたが
制限はかかったままでした。 
その後System.MDWがあったフォルダを見るとSystem.MDWがまた出来上がっちゃっていました。
難しですね〜
(長々とすみません)

926名無しさん@そうだ選挙にいこう:2010/10/07(木) 13:27:11
ありゃあ、じゃあ Shiftキーを押したままmdbを立ち上げてみて
927名無しさん@そうだ選挙にいこう:2010/10/07(木) 13:35:31
>>926
それでもだめでした。
(罠が仕掛けていったのかw)

因みにSystem.MDWは自動的にできたていたので、最初System.MDW をSystem.mdw.org にしたのは
ほっておいていいでしょうか?
928名無しさん@そうだ選挙にいこう:2010/10/07(木) 13:44:18
>>927
追伸:最初System.MDW をSystem.mdw.orgのままでも
他のACCESSのファイルの試しに動かしてみても問題ないようです。
929名無しさん@そうだ選挙にいこう:2010/10/07(木) 14:33:53
>>927
もしユーザーグループレベル権限が設定されてる場合は、戻さないと
自動的にできたのは、ユーザーグループレベル権限無設定の設定ファイルだから、無設定ならそのままでOK
930名無しさん@そうだ選挙にいこう:2010/10/07(木) 15:02:11
>>929
無設定で使ってました。
サンクスです。
931名無しさん@そうだ選挙にいこう:2010/10/07(木) 15:26:58
そのマクロを他のmdbにインポートできないの?
932名無しさん@そうだ選挙にいこう:2010/10/07(木) 15:34:10
>>931
ご回答ありがとうございます。

今、やってみましたが、テーブルとクエリは出来ましたが、その他は「構造の読み取り権限がないので、インポートできません」というようなメッセージが出て
駄目でした。
933名無しさん@そうだ選挙にいこう:2010/10/07(木) 16:30:13
> 「構造の読み取り権限がないので、インポートできません」

どうみても他にも、*.mdw ファイルがある筈だと思う
934名無しさん@そうだ選挙にいこう:2010/10/07(木) 17:49:02
>>933
これってその○○.mdwによってかけられている制限なんでしょうか?
それなら工場出荷時に戻したPCにACCESSをインストして
この制限をかけるための○○.mdwは無いはずですから
制限なしで開くはずという理屈になるのでしょうか?
アホなこと言ってたらすみせん。
(今*.mdwでもう一度検索かけてみてます)
935名無しさん@そうだ選挙にいこう:2010/10/07(木) 18:36:32
>>934
ヘルプの「ユーザー レベルのセキュリティを削除する」するはできないの?
936907:2010/10/07(木) 19:04:31
>>907です。
>>920->>921
ありがとうございます。
落ち着いて考えたら理解できました。

>>907では単純な例として「商品コードは1 or 2のみ受け付ける」と
書きましたが、
「商品コードは 101〜105 と、201〜204 と、301と403」といった場合、

If Not ((Me!商品コード >= 101 And Me!商品コード <= 105) Or (Me!商品コード >= 201 And Me!商品コード <= 204) Or (Me!商品コード = 301) Or (Me!商品コード = 403))

という書き方しかないのでしょうか?

動いてるのですが、書き方が長いような気がしてるだけです。
937名無しさん@そうだ選挙にいこう:2010/10/07(木) 19:37:16
>>935
↓この様にACCESS2007で開いて変換を行う方法でいいんでしょうか?
http://office.microsoft.com/ja-jp/access-help/HA010166227.aspx#BM4

ACCESS2007が入っているPCで開いて「変換」ボタンを押してみましたが、

現在のユーザーアカウントはこのデータベースを変換または有効にする権限はありません。
データベースを変換または有効にするには次のいずれかの操作を行って下さい。
*このデータベースにアクセスする時に使うユーザーアカウントを定義しているワークグループに参加します。
      ・
      ・
      ・
と表示されました。
938名無しさん@そうだ選挙にいこう:2010/10/07(木) 19:54:21
>>936
>If Not ((Me!商品コード >= 101 And Me!商品コード <= 105) Or (Me!商品コード >= 201 And Me!商品コード <= 204) Or (Me!商品コード = 301) Or (Me!商品コード = 403))

この程度では長いとは感じないなぁ。せいぜい

If Not ((Me!商品コード >= 101 And Me!商品コード <= 105) _
Or (Me!商品コード >= 201 And Me!商品コード <= 204) _
Or (Me!商品コード = 301) Or (Me!商品コード = 403))

って改行するぐらいか。もっと条件ががあるのならcase文をネストする。

Select Case Me.得意先コード.Value
Case 100
Select Case Me.商品コード.Value
Case 101 To 105
Case 201 To 204
Case 301, 403
Case Else
MsgBox "商品コードが違ってます"
Cancel = True
End Select
939名無しさん@そうだ選挙にいこう:2010/10/07(木) 21:20:02
>>916
関係ない話で悪いけどその前任者って相当ひどい辞め方か辞めさせられ方したんじゃない?
「てめーらなんかには使わせねーよ」って考えが透けて見える
940名無しさん@そうだ選挙にいこう:2010/10/07(木) 22:20:54
>>939
ガ〜ン
エアウルフのシステムみたいに開発者が1年間以上使用しないと
攻撃始めるようになってたりして

これ、作り直したた方がいいかも知れませんね。

解決法考えて下さった方々ありがとうございました。m(。。)m
941907:2010/10/08(金) 11:35:55
>>938

ありがとうございます。
改行できるんですね。

case文をネストすれば僕にとって直感的になったので、
この書き方にしてみます。
942名無しさん@そうだ選挙にいこう:2010/10/09(土) 19:51:52
誰かが作ったAccess2007形式のaccdbに対して、
ADOX.Catalog / ADOX.Table を用いて[test_1]という名前のテーブルを追加するプログラムをC#で書きました。

処理実行した後、accdbをダブルクリックで開くと、
壊れています⇒修復(最適化)
となってしまうのですが、

ADOX.Catalogを用いてテーブル一覧を見ると、[test_1]というテーブルは
リストアップされました。

ADOXでは見れるのに、accdbをダブルクリック(Access2007で開く)と
壊れてますって出るのは変わりません。

そこで、
Dao(Microsoft.Office.Interop.Access.Dao)を使って、
DBEngine.compactDatabaseを行い、最適化したのですが、
やはりダブルクリックでは開けませんでした。
しかし、ダブルクリックした後の自動修復後は見れるようになります。

DBEngine.compactDatabase以外の方法とかないんですかね?
accdbのファイルサイズは40Mあるのですが、ファイルが大きすぎるのがいけないのかな〜
と思いました。
⇒ADOXで新規にaccdb開いたものに対しては、テーブル追加後もうまく良く。
943名無しさん@そうだ選挙にいこう:2010/10/09(土) 19:53:42
誰かが作ったAccess2007形式のaccdbに対して、
ADOX.Catalog / ADOX.Table を用いて[test_1]という名前のテーブルを追加するプログラムをC#で書きました。

処理実行した後、accdbをダブルクリックで開くと、
壊れています⇒修復(最適化)
となってしまうのですが、

ADOX.Catalogを用いてテーブル一覧を見ると、[test_1]というテーブルは
リストアップされました。

ADOXでは見れるのに、accdbをダブルクリック(Access2007で開く)と
壊れてますって出るのはなぜだ!

そこで、
Dao(Microsoft.Office.Interop.Access.Dao)を使って、
DBEngine.compactDatabaseを行い、最適化したのですが、
やはりダブルクリックでは開けませんでした。
しかし、ダブルクリックした後の自動修復後は見れるようになります。

実験で、
ADOXで新規にaccdbを作成し、それにテーブル追加したのですが、
その場合はダブルクリックでエラーになることなく見れました。

DBEngine.compactDatabase以外の方法とかないんですかね?
accdbのファイルサイズは40Mあるのですが、ファイルが大きすぎるのがいけないのでしょうか
944名無しさん@そうだ選挙にいこう:2010/10/09(土) 19:54:31
>>942, >>943 連投スイマセン
945名無しさん@そうだ選挙にいこう:2010/10/09(土) 20:11:35
>>944
PCを再起動させても同様の現象が発生するの?
わかる範囲で答えると、40MBが大きすぎるということはない。
5〜600MB超になってから心配することじゃないか。
946944:2010/10/09(土) 20:27:10
>>945
再起動してみました。再現しますね。
ファイルサイズ、ありがとうございました!
947名無しさん@そうだ選挙にいこう:2010/10/09(土) 20:40:53
>>946
あとはタイミングぐらいかな。たとえばファイルを立ち上げたままADOで操作すると、
Teblesでは存在するのに、Accessのテーブルに表示されないしADOでも操作できなかった記憶がある。
なにか更新作業をした記憶があるのだが、すぐには思えだせないなぁ。
最適化ではないことは確かなのだが。
948名無しさん@そうだ選挙にいこう:2010/10/09(土) 21:23:12
>>942
リソースの開放し忘れとか?
リソース持ったままプロセスが落ちると、タイミングによってはダーティフラグが立ったままになるけど。
接続は正常に閉じられてる?
949名無しさん@そうだ選挙にいこう:2010/10/10(日) 09:57:43
表形式フォームで絞り込みを掛けた状態にSQL Updateを掛けれますか?
SQL文のテーブル名の所に、Me.Recordset をいれるとエラーになります。

やりたいこと、
表形式フォームで何回か絞り込みを掛けた状態での、YesNoフィールド[Check]を全部一気にTrue にしたい。
SQLで遣りたいです。
950名無しさん@そうだ選挙にいこう:2010/10/10(日) 13:15:40
>>949
どういう風にやっているのかは知らんが、フィルターを使っているのなら
Me.Filterで抽出部の式をとって、あとは普通にUPDATEすればいいんじないの。
951名無しさん@そうだ選挙にいこう:2010/10/10(日) 13:35:34
有難うございます。

抽出部の前のテーブル名は、どうしたら良いのでしょうか?
Me.Recordsource を入れるので良さそうですが、なんか旨くいきません。
Me.Recordsource の中に SELECT や ORDERBY が入っちゃってます。
952名無しさん@そうだ選挙にいこう:2010/10/10(日) 14:13:52
>>951
ソースはクエリが元か? とにかくSQL的には
UPDATE テーブル名 SET フィールド名 = " & True & " WHERE " & Me.Filter
でいけるはず。
レコードソースがすでに抽出されている状態なら、WHERE以降を直書きの上
ANDで条件をつなぐ。
UPDATE テーブル名 SET フィールド名 = " & True & " WHERE 条件 AND 条件 AND " & Me.Filter
953名無しさん@そうだ選挙にいこう:2010/10/10(日) 14:34:55
有難うございます。

> WHERE以降を直書き
それで出来ました。
が、直書きがなんとも不自由で、コマンドボタンに割り当てられない…
954953:2010/10/10(日) 14:39:01
有難うございます。

直書きでも固定文字列ですので、大丈夫ですね。
解決しました。
955名無しさん@そうだ選挙にいこう:2010/10/12(火) 13:33:24
Access2007で質問です。
以下のコードで、フォームのヘッダーの名前をprintしているですが、ヘッダーが無い場合
はエラーになってしまいます。ヘッダーが存在するか確認するには、どうすればいいでしょ
うか。
If not hoge is nothing や IsError等でもエラーになってしまいました。

Set ctn = db.Containers!Forms
For Each doc In ctn.Documents
  FormName = doc.Name
  Debug.Print FormName & ".Section(acHeader).Name = " & Forms(FormName).Section(acHeader).Name
Next Doc
956名無しさん@そうだ選挙にいこう:2010/10/12(火) 18:00:11
>>955
On Error Resume Nextで逃げちゃえば?
であとは

Dim MySec As Section

Set MySec = Me.Section(acHeader)

If Not MySec Is Nothing Then
Debug.Print Me.Section(acHeader).Name
End If

こんな感じとか。
957955:2010/10/12(火) 22:25:41
>>956
なるほど、ありがとうございます。
958名無しさん@そうだ選挙にいこう:2010/10/14(木) 16:47:15
Access2010で2つ質問があります。

Access2003のように、マクロから作ったショートカットメニューをマウス操作でカスタマイズすることはできないのでしょうか?


マクロでshortcutmenubarを作りたいのですが、
○○に等しい
○○に等しくない
○○で始まる
○○で終わる
こういった2010標準?の機能はマクロ名でいうとどれになるのでしょうか?
959名無しさん@そうだ選挙にいこう:2010/10/14(木) 17:51:17
>>958
1.
UIがないからできないんじゃね?
2.
ショートカットのサブマクロで、メニューコマンドの実行:コマンド:フィルタメニュー が一番近い形かな。
もしくは、CommandBars.FindControl(ID:=hogehoge).Executeをプロシージャ実行で呼び出すとか。
コーディングしてCommandBarを作るってのも。
960名無しさん@そうだ選挙にいこう:2010/10/15(金) 12:45:49
>959
ありがとう!
コーディング挑戦してみます
961名無しさん@そうだ選挙にいこう:2010/10/15(金) 13:45:42
今までACCESS2002で作成し、Office-Xp Developer でパッケージ化して
OSがXP SP1のパソコンに配布してインストールして使用していたシステムがあります。
それをVISTAのPCで使用したいのですが、XPのPCにインストールしていたものでは

「Office システム ファイル アップデートをこのシステムにインストールできません。
Windows NT 4.0 Service Pack 6 以降が必要です。 」
というエラーが出てインストールできません。

それで調べたら、今は「Access2007runtime」というものが無料で使用できるからVISTAで使用するには
それを使うか、または、Access2007のシステムをそのPCにインストールし、そこで使用したいシステムの
MDBファイルか、MDEファイルで運用するしかない・・・という結論に達しましたが、この考えはこれで
正解でしょうか?

続きまして、Access2007システム(ランタイムではなく本物)がインストされているPCでそのMDBファイル
の動作テストをしたのですが
   Dim ○○ As DAO.Database
→ Set ○○ = DAO.CreateDatabase(Nd, dbLangJapanese, dbEncrypt)
のところで「実行時エラー3001 引数が無効です」というエラーが出て動きません。

VISTAのPCで動かすのが目的なのですが、まず、VISTAはAccess2007を使うしかないのか、
そうだった場合、このDAO関係のエラー(?)のようなものを克服する方法がありますでしょうか。
(DAOでない方法に書き換えないといけないのでしょうか?)

よろしくお願い致します。

962名無しさん@そうだ選挙にいこう:2010/10/15(金) 14:19:49
帳票フォームで下記コードで行コピーしようとしましたが、矢印部分で【フィールドを更新できません】黄色文字でエラー表示
どこが間違ってますか?

------------------------
Dim rs As Recordset , avarRecords As Variant, i As Integer

Set rs = Me.Recordset
avarRecords = rs.GetRows(1)
With rs
.AddNew
For i = 1 To .Fields.Count - 1
.Fields(i) = avarRecords(i, 0)  ← 【フィールドを更新できません】
Next i
.Update
End With
963962:2010/10/15(金) 14:24:12
訂正
× For i = 1 To .Fields.Count - 1
○ For i = 0 To .Fields.Count - 1

やはり、同じ個所で同じエラーがでます
964名無しさん@そうだ選挙にいこう:2010/10/15(金) 15:29:42
>>962
なんとなく言わんとすることはわかったが、せめて環境とかバージョンとか書いておくれよ。
965962:2010/10/15(金) 15:54:32
Access2010、VISTA です
966名無しさん@そうだ選挙にいこう:2010/10/15(金) 17:07:25
>>962
とりあえず動くコードではあるのだけれども、
3164 フィールドを更新できません。
ってのがでるってんだから、更新不可のフィールドが含まれてるんじゃねぇの?

>訂正
>× For i = 1 To .Fields.Count - 1
>○ For i = 0 To .Fields.Count - 1  

.Update で 3022エラーがでてるんかと思ってしまった。
967962:2010/10/15(金) 17:23:39
>>966
> とりあえず動くコードではあるのだけれども、

有難うございます、助かります
計算項目とオートナンバーを順に削除してみます
968962:2010/10/15(金) 17:57:23
結果報告

オートナンバーあってもOK
Meに計算テキストボックスあってもOK

レコードソースのクエリに計算フィールドがあると上記エラー
Meにクエリの計算フィールドを含んでても含んでいなくても同様に上記エラー

仕様が解りましたので、解決です
969名無しさん@そうだ選挙にいこう:2010/10/15(金) 18:18:23
>>961
自己レスですが、

>   Dim ○○ As DAO.Database
>→ Set ○○ = DAO.CreateDatabase(Nd, dbLangJapanese, dbEncrypt)
>のところで「実行時エラー3001 引数が無効です」というエラーが出て動きません。
この「引数が無効です」の引数とはdbEncryptのようです。
「dbEncrypt」って暗号化の指定でしたっけ?ACCESS2007では無効なんですかね・・・


970名無しさん@そうだ選挙にいこう:2010/10/15(金) 18:21:17
>>961
2007Runtimeで使用できるファイル形式は、一応、accdb/accde/accdr/accdcの4つってことらしいわ。
mdbでも作動した記憶あるから、もしかするとライセンス的な話か、サポート外ってことかもな
でもって、いまだに、
サポートされているオペレーティング システム : Windows Vista; Windows XP Service Pack 2 な。

お仕事でされてるんなら、サポートに聞いた方がいいでないの?2007からJetの後継ACEなんだぜ。
971名無しさん@そうだ選挙にいこう:2010/10/15(金) 18:35:59
>>961
前半については、インストールパッケージを Vista 用に作り直すことで回避できます。
但し、Access 2002 は Vista で正式にサポートされていないので、不具合がなければ Access 2003 以降の Runtime を使用したほうが良いかもしれません。
パッケージを作り直す場合は、以下の方法を参照してください。

Windows XP SP2 または Windows Server 2003 を実行しているコンピュータに
Access 2002 ランタイム展開パッケージをインストールすると、エラー メッセージが表示されることがある
http://support.microsoft.com/kb/837150

Vista の場合は、上に書いてある
DBMSADSN.DLL 以外に、
DBNMPNTW.DLL
SQLOLEDB.DLL
MSXML.DLL
の行も削除する必要があるようです。

US の Google で「Access 2002 Runtime Vista」を検索すれば、いくつか情報が見つかりました。

後半は、Access 2007 で暗号化の仕組みが変わったことが原因です。
2行目で dbVersion30 を追加して、古いバージョンを使用することを指定すれば通ります。
Set p_db = DAO.CreateDatabase(Nd, dbLangJapanese, dbEncrypt + dbVersion30)

ちなみに Access 2007 では暗号化の際には、以下の様にパスワードの指定が必須になりました。
Set p_db = DAO.CreateDatabase(Nd, dbLangJapanese & ";pwd=password", dbEncrypt)
972名無しさん@そうだ選挙にいこう:2010/10/15(金) 18:40:06
>>970
ご回答ありがとうございます。
仕事で使うので、正式サポートされていないMDBとかMDBは駄目ですね。
Access2007形式に変換して、必要なところは手直しして使うことにします。

>2007からJetの後継ACEなんだぜ。
とうとう Jetとオサラバなんですか。
ネットごしで使っても速くなってればいいな〜
973971:2010/10/15(金) 18:41:22
>>971
訂正です。
× dbVersion30
○ dbVersion40
すいません。
974名無しさん@そうだ選挙にいこう:2010/10/15(金) 18:56:11
>>971
ご回答ありがとうございます。
DBMSADSN.DLL を消して作成する方法でVISTAのPCでやってみたのですが、
駄目だったので諦めていました。
VISTAはこれだけじゃ駄目なのですね。
ちょっとトライしてみます。


>後半は、Access 2007 で暗号化の仕組みが変わったことが原因です。
>2行目で dbVersion30 を追加して、古いバージョンを使用することを指定すれば通ります。
>Set p_db = DAO.CreateDatabase(Nd, dbLangJapanese, dbEncrypt + dbVersion30)
これでうまく動きました。

ここらへんのことは自分で検索しても全然見つけられませんでした。

>但し、Access 2002 は Vista で正式にサポートされていないので、不具合がなければ Access 2003 以降の Runtime を使用したほうが良いかもしれません。
当方Access 2002(xp)の ディベロッパーしか所有してないので、やっぱりAccess2007Runtimeで使うことになりそうです。

ありがとうございました。m(。。)m


975名無しさん@そうだ選挙にいこう:2010/10/15(金) 18:59:07
>>973
あれ?dbVersion30で動きました(汗)
976971:2010/10/15(金) 19:08:33
>>975
dbVersion30 だと Access 95 形式のデータベースが作成されちゃうので。
Access 2002 からの移植なら dbVersion40 のほうを使ってくださいな。
977名無しさん@そうだ選挙にいこう:2010/10/15(金) 19:11:41
>>976
わかりました。
重ね重ねありがとうございます。
978名無しさん@そうだ選挙にいこう:2010/10/15(金) 21:50:16
すみません。961、977ですが、XP、SP3とACCESS2007の環境で成功して喜んでいたのですが、
VISTAと「Access2007runtime」の環境に持って行ったら次の表示がでました。

「セキュリティに影響を及ぼす可能性のある問題点が検出されました。
警告:このコンテンツの発行元が信頼できるかどうかを確認することが出来ません。」
と表示され、それでも「開く」を選択してみても何も開いてきません。

XP、SP3とACCESS2007の環境でセキュリティセンターで「信頼できる場所」として登録しておいて保存したaccdb
データ形式のものをVISTAの同じパスのフォルダにおけば開くものと思っていました。
妙なことにXPで使用していた旧形式のMDEファイルも同じ警告がでますが、「開く」を選択すると開いてきます。
(DAO.CreateDatabase(Nd, dbLangJapanese, dbEncrypt) のところでエラーがでて使えませんが)

何故、修正したファイルが開かないかわかりますでしょうか?

979名無しさん@そうだ選挙にいこう:2010/10/15(金) 22:37:32
>>978
Vistaなマシンに信頼できる場所のレジストリ登録がないからじゃないの?
あー、でも開く押下で実行されるか。。
AutoExecとか起動時の設定をしてなさそうだし、起動時になにやらエラーで止まっちゃってるとか?
980名無しさん@そうだ選挙にいこう:2010/10/15(金) 22:54:08
>>979
ご回答ありがとうございます。
レジストリ登録ってRegeditで編集しないといけなんでしょうか?

試しに単純テーブルだけのaccdbファイルをxpとACCESS2007の環境で作って
そのVISTA、Access 2007 Runtime環境のPCに持って行きましたが、同じく開けませんでした。
私Access 2007 Runtimeの使い方が根本的に間違ってる(何か足りない)んですかね。

981979:2010/10/16(土) 00:27:00
正 AutoExecとか起動時の設定をしてないことなさそうだし、
誤 AutoExecとか起動時の設定をしてなさそうだし、

2007ランタイムについては、以下
http://office.microsoft.com/ja-jp/access-help/HA010218864.aspx

別にRegeditでなくてもよいのだけれども、適切なレジストリが登録されていればセキュリティに関する通知は
出ない。その他起因することがありそうだけど、製品版でセキュリティセンターの設定を見てもらえればと思う。
982名無しさん@そうだ選挙にいこう:2010/10/16(土) 00:31:02
>>981
リンク先の
>Access 2007 データベースをパッケージ化して署名する
ここらへんの知識無くてやってました。
明日またトライしてみます。
ありがとうございました。
983名無しさん@そうだ選挙にいこう:2010/10/16(土) 14:38:04
>>981
その後、「最初に開くフォーム等の設定をしてない」とそうなることを知りその設定をして、
開いて入力作業などできるようになりました。

しかし、今度は保存のタイミングで
「実行時エラーが発生した為、このアプリケーションの実行は中断しました。
アプリケーションを続行できません。システムはシャットダウンされます。OK」
という表示がでて、OKするとアプリが終了してしまうという現象がでます。
どこのステップ起きているのか調べる為
MsgBox Err.Number, vbExclamation, "Err"の文を

MsgBox Err.Number, vbExclamation
Set ○○ = DAO.CreateDatabase(Nd, dbLangJapanese, dbEncrypt+dbVersion40)
MsgBox Err.Number, vbExclamation
と言うふうに置いたのですが、
「0」が1回返ってきた後に先程の「実行時エラーが発生した為・・・」が
表示されます。この為、
Set ○○ = DAO.CreateDatabase(Nd, dbLangJapanese, dbEncrypt+dbVersion40) でこけて
いるんだと思われます。



984名無しさん@そうだ選挙にいこう:2010/10/16(土) 14:39:37
>>983の続きです。
試しにCreateDatabaseを使った単純なaccdbファイルを作ってみましたが、ACCESS2007、XPSP3環境では動きましたが
VISTA,2007Runtimeの環境では、データベース名を入力後に「実行時エラーが発生した為・・・」
という同じ表示がでます。
Private Sub コマンド0_Click()
Dim db As DAO.Database
Dim dbname As String

'作成したデータベース名を入力
dbname = InputBox("データベース名を入力して下さい")

Set db = CreateDatabase("C:\" & dbname & ".mdb", dbLangJapanese)

db.Close
Set db = Nothing
End Sub

これらのエラーの原因は何でしようか?
質問ばかりですみません。
985名無しさん@そうだ選挙にいこう:2010/10/16(土) 16:08:02
>>984
自己レスですけど、テストプログラムは保存場所を
Set db = CreateDatabase("C:\Users\ユーザー名\Documents\" & dbname & ".mdb", dbLangJapanese)
の様にしたらうまくいきましたので、これはVISTAのセキュリティでC:\のような変なところにプログラムから保存
できなくなっているのですね。

で、問題の業務プログラムなんですけど、元は私が作ったのではないのでわからなかったのですが
保存のタイミングで"C:\Program Files\"にある特定のフォルダに何らかの
管理ファイルを記録するようになっていました。
それでコケている様です。
OSがVISTAで例えば"C:\Program Files\TEST"というフォルダにACCESS2007のランタイムで動かしている
accdbから保存するにはどうしたらいいのでしょうか?
VISTAのPC自体あまり使った事ないので、ちんぷんかんです。
986名無しさん@そうだ選挙にいこう
次スレ建てておいた。
Access総合相談所 24
http://hibari.2ch.net/test/read.cgi/bsoft/1287268291/