ACCESS総合相談所 その7

このエントリーをはてなブックマークに追加
1名無しさん@そうだ選挙にいこう
質問される方へ
・OS、ACCESSのバージョンを明記してください
・質問内容は具体的に書いてください
 テーブル/フォームの構成、クエリの内容など差し支えない
 範囲で公開すると、早く回答が得られるかもしれません
・事前にヘルプ等で調べられる範囲は調べてください

回答される方へ
・わかる人は回答されるよう協力お願いいたします
・煽り、叩きの類は個々人の判断におまかせします(なるべく穏便に)

前スレッド - ACCESS総合相談所 その6
http://pc2.2ch.net/test/read.cgi/bsoft/1037856185/

過去スレッドリンクは>>2
2名無しさん@そうだ選挙にいこう:03/01/31 16:07
・歴代スレッド
- html化済み -
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
>>1乙!
>>1
おつです
5名無しさん@そうだ選挙にいこう:03/01/31 21:18
まぁ相談ってほどでもないんだけど。
サブフォームを含むそこそこ複雑なフォームを開く時
最適化後の一回だけ異常に待たされます。(数十秒)。
何か作り方が悪いんでしょうか?
6名無しさん@そうだ選挙にいこう:03/01/31 22:08
>>1
乙。
>>5
デカくなったらそんなもん。
7名無しさん@そうだ選挙にいこう:03/02/01 18:51
age(゚д゚)!
8名無しさん@そうだ選挙にいこう :03/02/01 20:25
OFFICE2000の英語版の中から不要なワード、エクセルを
無視してアクセスだけインストールする方法ありますか?

>>8
英語版って選択インストール出来ないの?
そっちの方が不思議だが。
10名無しさん@そうだ選挙にいこう :03/02/01 21:14
>>9
8ですがバンコクのMBKで買ってきたoffice2000なんですが
wizardに従っていくと全てインストールされてしまい
選択インストール出来ないみたいです。
>>10
不便だね。
んじゃ無理なんじゃない。
12名無しさん@そうだ選挙にいこう:03/02/02 09:18
Acces2000で、入試の成績処理しています。
メインレポートにサブレポートを貼り付ける時なのですが、サブレポートのレコ
ード数に合わせて、詳細領域の長さが自動的に伸びて表示してくれて、これは大
変便利です。ところが、レコード数が多くてメインレポートの詳細領域の最大長
に収まり切れない場合、改頁する設定にしても、改頁するのはサブレポートのレ
コードだけで、メインレポートの詳細領域のコントロール(罫線・ラベルなど)は
改頁しないようです。これはAccessの仕様なのでしょうか?それとも解決策があ
るのでしょうか?ご存じの方がおられましたが教えていただければ幸いです。

どこを縦読みすりゃ良いのですか。
段落のない長文は読む気氏ねー。
14名無しさん@そうだ選挙にいこう:03/02/02 11:37
期間別の販売状況を行に[商品]、列に[販売金額]として
クロス集計クエリーを作りたいのですが、期間を指定する
パラメーターがうまく機能しません。

'[販売日]'を有効なフィールド名、または式として認識できません。

と出てきてしまうのですがなぜでしょうか?
>>14
もっと詳しく、実例あげないと誰も分からないと思われ。
「販売日」なんて出てきてないじゃん。
1614:03/02/02 12:54
>>15
スマソ。直前に「長文は読む気氏ねー」なんてあったので。
でもちょっと端折りすぎました。

えーと、まず商品マスターなるテーブルから「商品ID」「商品分類」
「販売金額」「販売日」と4つのフィールドを取り出して、
Between[販売日1]and[販売日2]という条件で抽出する
パラメータークエリを作りました。
で、そのクエリをもとにして、行に[商品分類]A,B,C,D,,,と取り
列に[販売金額]\1000,\2000,\3000,,,,となるように、
クロス集計クエリを作りました。
集計は[商品ID]をカウントしたものを表示するようにしています。
[販売日]で抽出しようとしなければすんなりできます。
でもそれだと過去の分も全部集計されてしまうので、
ある一定期間で販売した物だけ集計したいと
思ったのですがうまくいかなかったわけです。
1714:03/02/02 12:56
あ、すいません、使ってるのは97です。
1814:03/02/02 12:58
あぁ、、すいませんじゃなくて、すみませんだ。
段落のない長文は読む気氏ねー。
20名無しさん@そうだ選挙にいこう:03/02/02 13:22
>>19
段落があっても読んでくれて、なおかつ親切な人もいるよ。
そういう人で成立しているスレなんだから。
21名無しさん@そうだ選挙にいこう:03/02/02 13:23

「段落がなくても読んでくれて」の間違い。スマソ。
22名無しさん@そうだ選挙にいこう:03/02/02 13:24
>>19はネタじゃないのかと。
23名無しさん@そうだ選挙にいこう:03/02/02 14:28
>>16
分かった、簡単ジャン
24名無しさん@そうだ選挙にいこう:03/02/02 14:36
>>12 サブレポートの自動拡張に任せると手が掛からなくて楽ではあるが、ざっくりとしたアバウトなものしかできない。細かな部分まできっちり作るなら、ページ番号、行番号をレコードに持たせて、[リンク親フィールド]、[リンク子フィールド]で関連付けるしかない。

今酔っ払ってるので、間違ってたらゴメン。m(_ _)m
酔ってる酔ってないに関わらず、改行はしてくれ。
26名無しさん:03/02/02 15:49
>>25

別に気にならんぞ。ぞぬ2私用。
漏れも気にならんけど、一人でも気になるなら
やめた方がいいな。
2814:03/02/02 17:30
えーっと、俺の質問には誰か答えてくれないのかな、、、?
詳細は>>16にあるので誰かヨロシコ。
>>28
んな初歩的なこと質問すな
横着して質問しないでACCESSを1から勉強汁
日付データの取り扱いについてな
30名無しさん@そうだ選挙にいこう:03/02/02 20:56
>>28
演算子とパラメータの間にスペース空けろ
>>28
書籍の1冊くらい買えよ。
嫌なら退職願だしとけ。二度と社会にもどってくんな。
32教えてください:03/02/02 22:52
ACCESS2002を買おうと思っています。
2002はライセンス認証が必要で、3台までしかインストールできないと聞きました。
私は4台にインストールしたいのですが、やはり4台めは無理でしょうか。
2000にはそういう制限はないと思うのですが、もう店には2002しか売ってないので
どうしたものか悩んでいます。
4台にインストールする方法などありましたら、是非教えて下さい。
よろしくお願いします。
>>32
うそーとか思ってヨドバシドットコム見に行ったけど、
普通にAccess2000売ってんじゃん。子供みたいな事言うけど時間返せ。
>>32
いつのまにかライセンス規定変更になったの?
アクティベーションで認証できる台数は"同時に使用しない"ことを条件に
2台目までで、3台目からはライセンス違反になると理解していたが。
3台目の認証で弾かれるかどうかは知らないけどね。
3514:03/02/03 16:14
いやー、できた。できましたよ、質問の件。
アクセスのガイド本は5〜6冊持ってんだけど、どれにも
書いてなかったんで本屋で違うの立ち読みしてたら書いてあった。
「クロス集計クエリのパラメーターはデータ型を指定しなくてはならない。」
って事だったんすね。それやったらバッチリできた。
まあ何にも教えてもらってないけど取り敢えず皆さんどうもでした。
>35
37名無しさん@そうだ選挙にいこう:03/02/03 23:17
>>32
ライセンスはPCの台数分必要。
http://www.microsoft.com/japan/info/license/

特別な場合のみ、1ライセンスで2台までインストールはOK。

>◆ Select 4.X / 5.0 / 6.0、Enterprise Agreement、
>Open LicenseSelect 4.X / 5.0 / 6.0、Enterprise Agreement、
>Open Licenseでは Officeファミリー製品などの一部のアプリケーション製品について、
>業務関連での使用に限りソフトウェアを2台目の携帯型コンピュータ上で使用することが
>できます(「2つ目のコピー」)。携帯型コンピュータでの使用とは、ソフトウェアが
>コンピュータのハードディスクにインストールされた場合、そのコンピュータを使用する人が
>特定の1人に限られている時に、その人が使用する別の携帯型コンピュータ1台に
>インストールし使用することができるとするものです。

業務に使用する為に、ランタイムが必要なのなら、デベロッパーを買えば
(認められた範囲で)ランタイムの配布はOKになるから、Accessで作ったアプリケーションが
何台ででも使用できる。

そうではない場合は、
回線切って首つって死ね。
すいません、お聞きしたいことがあるのですが。
表形式フォームのIDの項目をダブルクリックすると、単票形式フォームが開いてその項目に対応したレコードを表示させたいのですが、どうすればいいでしょうか?

表形式フォームのIDの項目ダブルクリック→単票形式フォーム開く。

までは行ったのですが、IDの値を拾ってきて、単票形式のIDに対応するやり方が解りません。
VBAの初歩的な質問かもしれませんが、よろしくお願いします。
すいません質問です。

表形式のテキストBOX(内容は数値)をダブルクリック→単票形式の別フォームが開きIDが対応したレコードを表示

というのはどうすればいいでしょうか?
ダブルクリックした後、フォームを開くことは出来たのですが、IDが対応しません(一番はじめのレコードが表示される)

VBAの初歩かもしれませんが、当方VBA自体が良く分かっていないと思います。
もうしわけありませんがどなたかご教授願えないでしょうか?
ごめんなさい、書き込みされてないと思って同じ内容を二回書いてしまいました。
申し訳ありません。
41名無しさん@そうだ選挙にいこう:03/02/04 13:28
DAOでつまずいています。
まず、クエリのSQLビューから
SELECT * FROM tblテスト WHERE (更新日付>#2002/01/15#) ORDER BY 更新日付;
を実行すると、更新日付(日付型(yyyy/mm/dd))が「2002/01/15」以降の5件が抽出されます。

で、コード上で同様にSELECT文でレコードセットをオープンしているのですが、
------
strSQL = "SELECT * FROM tblテスト WHERE (更新日付>#2002/01/15#) ORDER BY 更新日付"
Set rs = db.OpenRecordset(strSQL)
lngTest = rs.RecordCount
------
とすると、lngTestになぜか「1」が入ります。
どうやら最初の一件しか取得できていないようです。
これは何がいけないのでしょうか。

よろしくお願いします。
>>41
まずはヘルプで RecordCountプロパティについて調べるべし。
Recordsetをオープンした直後はレコード総数を取得することはできません。
最終レコードまでアクセスし終えた時点で初めて総数がわかります。
最終レコードに到達する手段として"MoveLast を使え"とヒントまで
明記されています。 

いじょ
4341:03/02/04 15:15
>>42
なんとそんな仕様っすか。
Access歴浅くてADOしか使ってなかったので、ハマってしまいました。
申し訳ないっす。

>>38-40
テーブルに接続したフォームから、テーブルに接続したフォームを開くってUI的に必要っすか?
レコード選択して、コントロールに展開するなら、親子(サブ)フォーム使うとか、
なんだったらリストボックスでもできると思いますが、どうですか。
VBA以前の問題では。
>>38-40
単票形式フォームが参照するテーブルは表形式フォームのテーブルと同じ?
それとも別のテーブル? まぁ、いいや・・・

・表形式フォーム名をAとし、単票形式フォーム名をBとする
・フォームBが参照するフォームAの項目名はid

フォームBのRecordsourceとなるクエリーを作成
 select * from table_name where id = Forms!A!id;
このtable_nameはフォームAのRecodesourceのテーブルと同じものを指す
これをQueryBとする

QueryBをRecordsourceとする単票形式フォームBを作成

VBAでゴリゴリやらなくても、こういう構造で期待する動作になると
思うけどどうでしょ?
>>43
ちょっと補足。
開くRecordsetのタイプがテーブルタイプである場合と、それ以外の
ダイナセット、スナップショット etc.である場合とでは RecordCount
プロパティに対する値の反映のされ方が違います。
4641:03/02/04 15:52
>>41です。何度もすみません。
考えたら、
WHERE句使ってレコードセット取得→レコード数がゼロなら処理終了、
みたいな処理はいったんSQLのCountをかけないといけない訳ですか。

ゼロ件の時にMoveLastかけるとエラー出ますよね。
>>46
開いた Recordset内にレコードが一つでもあればRecordCountの値は1になり
まったく無ければ0になります。(オープン直後)
だから、オープン直後にレコードが有るか無いか判定してから、MoveLastを
実行すればいいのではないですか?
・rs.RecordCountが0か?
・rs.EOF=Trueか?
など。

# 他にレコード有無を判定するメソッド、プロパティってありましたっけ?
# だいぶAccessから遠ざかってるんで忘れちゃった
4841:03/02/04 16:17
>>47
なるほど!
勉強になります。
ありがとうございますた。
49名無しさん@そうだ選挙にいこう:03/02/04 19:04
>>38
DoCmd.OpenForm "frm単票形式", acNormal, "", "[ID]=[Forms]![frm表形式]![frm表形式上のID]", , acNormal

※但し[ID]は単票形式フォームのレコードソースに存在する項目

マクロ-フォームを開く
で、Where条件式を指定する方法でもOK
50名無しさん@そうだ選挙にいこう:03/02/04 19:13
51名無しさん@そうだ選挙にいこう:03/02/04 22:23
[Forms]![フォームの名前]![テキストボックスの名前]と[フォームの名前]![Form]![テキストボックスの名前]ではどう違うのでしょうか?
>>51
後者の[Form]!は必要か?
53名無しさん@そうだ選挙にいこう:03/02/04 23:47
>>51
前者は値を参照できるが後者は参照できない。
どこに書いたか知らんけど。

[Forms]![フォーム名]![コントロール名]とは、
「フォームオブジェクト(のコレクション)」の中の「フォーム名」という
名前のフォームの中の「コントロール名」という名のコントロールを指定しますよ
という意味。順番が違ったら意味を成さない。
5451:03/02/05 00:31
サブフォームの値をメインフォームで表示させようとすると前者だと表示されないのです
じゃあ、そういう使い分けでしょ。
分かってんじゃん。
56名無しさん@そうだ選挙にいこう:03/02/05 09:27
>>54
[Forms]![メインフォーム名]![サブフォーム名]![サブフォーム上のコントロール名]
57名無しさん@そうだ選挙にいこう:03/02/05 09:47
Access2000 で、CSVファイルをインポートしてオートナンバの主キーを追加する、
という作業を
DoCmd.transfertext acImportDelim, "インポート定義", "TBL_IMPORT", "C:\hoge\moge.csv", _
      True, "", 50932
とやろうとしたら、手動のときには出来た属性の追加が出来ないのです。
 どなたか、解決策をご存知でしたら教えてください。
5838:03/02/05 12:00
返事が遅くなって申し訳ありません。
みなさんのお陰で解決いたさました。ありがとうございました
59名無しさん@そうだ選挙にいこう:03/02/05 16:25
使った事無いのに、仕事先で、「アクセスを業務上で使えるレベルまで
勉強してきて、2日以内に」なんて言われてパニックです。
業務上使っている方、仕事で使う機能項目を重要なものから適当に教えて
下さい。仕事では大量のデータの傾向分析までやるみたいです。
60名無しさん@そうだ選挙にいこう:03/02/05 17:18
>>59
> 「アクセスを業務上で使えるレベルまで勉強してきて、2日以内に」

この場合の「使える」ってどういう意味?
開発だったら不可能だと思う。
61名無しさん@そうだ選挙にいこう:03/02/05 18:16
>>59
相手が本気で言っているのなら、そういつヤツとは仕事をしないように
根回しする。これ重要!
たとえキミが最強のアクセスマスターになったとしても、それを上回る
無理難題を次々と言出し、死ぬまで君を悩ませる事になるのは間違いなし!
君が頑張ってプログラムを仕上げる程に、
宛名職人みたいなのを(タダで)すぐ作れとか、
勘定奉行みたいなのを(タダで)すぐ作れとか、
ネットで注文がどんどん舞い込んで来て自動で商品が発送されて、
自動で売上金が回収出来て、自動で会社がどんどん大きくなるようなの
すぐ作れとか言出すのは時間の問題。

単に気合いの話しをしているのなら、クエリーを頑張って勉強しる!
データの選択も連結も集計も更新もクエリーを使う。出来なければ話にならない。

が、クエリーだけ出来ても、「業務上で使えるレベル」とは一般的には言えない訳だが。
62名無しさん@そうだ選挙にいこう:03/02/05 18:18
>>61
概ね同意
>単に気合いの話しをしているのなら、クエリーを頑張って勉強しる!
激しく同意
63Kei:03/02/05 19:16

Accessのテーブルに、毎日20〜30のデータを入力しています。
登録日を入れる欄があるのですが、それは当然同じ日になります。
データを日付型にしているのですが、何か連続して同じ値を
入力する方法は無いでしょうか?
例えば、ひとつ上のデータをコピーするような。。。
普通のカット&ペーストさえできない状態です。(日付が変わってしまう)
何か簡単な方法がないでしょうか?(同じ日付をまとめてもしくは簡単に入力する方法)
よろしくお願いします。
64名無しさん@そうだ選挙にいこう:03/02/05 19:21
>>63
Defaultを入力日にするとか。
>63
Ctrl + 7
66Kei:03/02/05 19:51

ありがとうございます。

>>64
 シリアル番号(主キー)を入力した時点で、日付のところが
シリアル番号を入力した日になってくれれば一番楽なのですが
そのようなデフォルトってできるのでしょうか??

>>65
 ありがとうございます。確かにできました。
微妙に位置悪いですねぇ。7って(笑)
 2つ以上のセルを同時にはできないから
Ctrl+7 の後の リターンの繰り返しが
微妙に打つぢらい。。。
 でも、無いより10倍楽です。
ありがとうございます。
67名無しさん@そうだ選挙にいこう:03/02/05 20:19
>>66
テーブルのプロパティで日付フィールドの規定値に
date()を入れればデータ入力時に自動的に日付入るぞ
68Kei:03/02/05 20:38

>>67
ありがとうございます+すみません。
環境を説明してませんでした。
Accessなのですが、mdbではなくadpなのです。
確かにmdbでやってみたらできたのですが、adpではエラーでした。。。
残念。
adpって何?
7059:03/02/05 22:38
>>61>>62
レスサンクス。クエリ勉強中。その他の事ほとんど同意。ああ鬱。
71Kei:03/02/05 23:21
>>69
MSDEを使ったアクセスのプロジェクトの方です。
72名無しさん@そうだ選挙にいこう:03/02/06 08:26
>>63
設計者にクレーム入れれ。
73名無しさん@そうだ選挙にいこう:03/02/06 08:41
>>71
テーブルの既定値にgetdate()ってのは?
74Kei:03/02/06 10:10
>>73

完璧です。ありがとうございました。
75名無しさん@そうだ選挙にいこう:03/02/06 11:18
そんなことも人に聞かなきゃ出来ないような人間がスキー
マ弄れる環境って恐ろしい...
質問させて下さい。

アクセスで日々の売上金額を記録して行ってるのですが、
週毎の累計推移をグラフ表示する良い方法はありません
でしょうか?

98SE上でアクセスXPを使っています。
宜しくお願いします。
>>76
最も簡単なのはexcelにエクスポートすること。
技術があるなら、excelオブジェクト使って、コーディングして自動化しる。
78徹夜三課目:03/02/07 15:47
質問します、だれか教えて下さい。

レポートで各レコードのページを3枚(同じレコードを3回)表示させたい。
(データの作り込みで何とかするのではなくあくまでもレポート上で)
レポート内でモジュールを書いてもうまく制御できない。

例.テーブル構成レポート表示
ID氏名1ページ目 AAAA
01AAAA2ページ目 AAAA
02BBBB3ページ目 AAAA
03CCCC4ページ目 BBBB
5ページ目 BBBB
6ページ目 BBBB
7ページ目 CCCC
8ページ目 CCCC
9ページ目 CCCC

宜しくお願いします。
79徹夜三課目:03/02/07 15:50
質問します、教えてください(再度)
レポートで各レコードのページを3枚(同じレコードを3回)表示させたい。
(データの作り込みで何とかするのではなくあくまでもレポート上で)
レポート内でモジュールを書いてもうまく制御できない。

例.テーブル構成   レポート表示
ID   氏名     1ページ目 AAAA
01   AAAA     2ページ目 AAAA
02   BBBB     3ページ目 AAAA
03   CCCC     4ページ目 BBBB
5ページ目 BBBB
6ページ目 BBBB
7ページ目 CCCC
8ページ目 CCCC
9ページ目 CCCC

宜しくお願いします。
>78-79
>データの作り込みで何とかするのではなくあくまでもレポート上で
の意味が良くわからんけど。

1.印刷するとき部数を3で。
2.レポート上に同じコントロールソースのテキストボックスを3つずつ作る。
って縦に3ページ並ばないかな?
3.印刷用にテンポラリのテーブルを作る。そこに追加クエリなりで元のデータを
流しこんでレポートのレコードソースにする。
4.新しくテーブルを1個作ってフィールドをひとつ作る。数値型でいいや。
で、1,2,3と3つレコードを入力。元のテーブルとこの新しいテーブルでクエリを作る。
元のテーブルのフィールド全部を選ぶ。元と新で"結合をしない"。クエリを開くと
元のテーブルのレコードが3つずつ並んでいるはず。これをレポートのレコードソースに。

好きなの使って。まだなんか方法あるかな?
5.ドットプリンタで3枚複写用紙で印刷する
>79
そのボタンを押すとレポート全部の枚数(氏名でグループ化しておくとか)が
3枚ずつ出るようにすると言うのでいいのかな?それとも、3枚ずつそれぞれ
ページ数も連番にならないといけないの?
ページ数連番を考慮外にして、単に3枚ずつ出力すればいいと仮定するなら…

フォーム上に「印刷」ボタンがあると仮定する。
ボタンを押した時、印刷に必要なクエリーによりレポートを作成。

Docmd.OpenReport "レポート名",acViewPreview
Docmd.PrintOut acPrintAll, ,3
Docmd.Close acReport, "レポート名"

これで、全ページが3部ずつ印刷できると思うが…
ページを3枚ずつ全氏名分連番にする必要があるなら、もう少しひねる必要があると思う。
これでどうだろうか?
8382訂正:03/02/07 19:40
すまん…間違えた

>そのボタンを押すとレポート全部の枚数(氏名でグループ化しておくとか)が
この上に「フォーム上に「印刷」ボタンがあると仮定する。」の一文が入る。

フォーム上に「印刷」ボタンがあると仮定する。
そのボタンを押すとレポート全部の枚数(氏名でグループ化しておくとか)が
3枚ずつ出るようにすると言うのでいいのかな?それとも、3枚ずつそれぞれ
ページ数も連番にならないといけないの?

…となります。
84名無しさん@そうだ選挙にいこう:03/02/07 22:00
>>79
イマイチ状況が判らないのだが……

1.元データが入っているテーブルはいじらない。
2.何でもいいからレコードが3件入っているワークテーブルを作成。
3.新規に選択クエリーを作成し、データテーブルとワークテーブルを追加。
 フィールドは何も結びつけず、レポートにつかうフィールドを選ぶ。
4.クエリー上は元データ×3のレコードが選択される。
5.クエリーを元にレポートを作成。

ってのはどうか?

もし、同一内容で提出先が3箇所の書類を作ってたりするんだったら、
3件いれたワークテーブルのほうに提出先名を作っておけば
タイトルも印刷できるぞ。(「客先用」「提出用」「控用」とか)

ハズし率75%くらいか?
85名無しさん@そうだ選挙にいこう:03/02/07 23:50
access総合相談所no.6の962の方、レスありがとうございました。法事等でお礼が遅くなり、すみません。
8676:03/02/08 01:33
>>77
ありがとうございます。
一度エクセルの方を勉強してみようと思います。
8780:03/02/08 11:36
>81 ワラタ。それは思いつかんかった。
>76 フォームをデザインビューで開いて、挿入-グラフでグラフウイザードが。
>>87
伝票発行系なら、未だにその方法が多いかと。
ペンによる直接書き込みが複写できるし。
>>78 -
レポートのデザインで改ページを入れたら?
90名無しさん@そうだ選挙にいこう:03/02/09 02:33
自分はたまに営業から持ち帰った資料を入力するだけなんですが、
accessに入力してるとすぐ、他のユーザーがロックしています
とかいう表示が出て、何も入力できなくなってしまいます。
閉じてまた開くと、最後に入力したとこが消えていて、
しばらく入力してると、またロックされ…その繰り返し。
そのとき他の誰もaccessを使ってないのですが、どうしてでしょう?
全くの初心者です。面倒でしょうがどなたか教えてください。
>>90
仕様でつ。
92名無しさん@そうだ選挙にいこう:03/02/09 11:24
>>91
これこれ。
93名無しさん@そうだ選挙にいこう:03/02/09 12:03
>>90
毎回そうなるのか?
9491:03/02/09 13:49
>>92
そのシステムを誰が作ったのかによる。
社内の誰かが作ったなら、初心者の仕事だ許してやる。
外注なら、無能な発注担当者にクレーム入れる。
9590:03/02/09 15:19
毎回そうなるんです。作ったのは一応社内の人間ですが、
他の支店の人で、連絡してもほとんど外出中。。。
自分でなんとかできるかと思ったのですが、作った人間じゃないと
どうにもならないということでよろしいんですね?
どうもありがとうございました。

これを機に自分もaccess使えるようになりたいです。
おそらく既出でしょうが、0からaccess覚えるのに
最適な入門書などありましたらどなたか教えてください。
96名無しさん@そうだ選挙にいこう:03/02/09 17:28
>>90
よっぽど変なビュー(選択クエリー)を作ったんでしょうねえ。
レコードソースがよっぽどへたくそなんだと思います。

-----
こういう複数人数が叩くテーブルって非連結フォームで作る以外にみなさんどうしてます?
97名無しさん@そうだ選挙にいこう:03/02/09 18:39
業務管理DBを作成してます。フォームを使って契約データを新規入力した際に、6桁のコードを自動的に付していきたいのですが、初級者なので、やり方がわかりません。
6桁は、年下1桁+月2桁+3桁連番として下3桁は月ごとに001から振り直すというものを考えています。
教えて君ですいませんがよろしくお願いします。

Win2000、Access2002です。
98名無しさん@そうだ選挙にいこう:03/02/09 19:02
>>97
取り急ぎヒントから。フォームの「挿入前処理」イベントプロシージャを使う。
99名無しさん@そうだ選挙にいこう:03/02/09 19:14
>>96
面倒だけど、やっぱり非連結フォームでやってる。
100名無しさん@そうだ選挙にいこう:03/02/09 19:40
     ∧_∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ( ´∀`)/<先生!流行ってます。http://homepage3.nifty.com/digikei/ten.html
 _ / /   /   \___________
\⊂ノ ̄ ̄ ̄ ̄\
 ||\        \
 ||\|| ̄ ̄ ̄ ̄ ̄||
 ||  || ̄ ̄ ̄ ̄ ̄||
101名無しさん@そうだ選挙にいこう:03/02/09 19:58
http://bbs.1oku.com/bbs/bbs.phtml?id=kkgogo
 もうすぐ春ですね、ココは春満開!!
102名無しさん@そうだ選挙にいこう:03/02/09 21:27
>>96
Jetを使わない。
103名無しさん@そうだ選挙にいこう:03/02/10 10:10
>>96
別MDBのテーブルにリンク貼って使ってました。
5、6人なんですけどまずいですか?
104名無しさん:03/02/10 11:42
105名無しさん@そうだ選挙にいこう:03/02/10 12:55
ACCESS2000で質問です。

次のようなクエリがあります。
日付     氏名  勤務状況
2002/12/01  山田   通常
2002/12/02  山田   出張
(省略)
2003/01/30  山田   年休
2003/01/31  山田   通常

これをもとに
「山田の出勤状況一覧」
月/日  1日  2日  3日…31日
12月 通常  出張  出張 年末休
 1月 年始休 年始休 通常 通常

というレポートを作りたいのですが
「○日」のフィールドをどうやって作り、どうやって勤務状況を
いれればよいか判りません。
どなたか教えて下さい。
106名無しさん@そうだ選挙にいこう:03/02/10 13:02
>>105
UNIONででけんの?
>>97

> 6桁は、年下1桁

西暦2010年問題で破綻するヨカーン。(w

> 下3桁は月ごとに001から振り直すというものを考えています。

契約が1000件を超えて運用が破綻するヨカーン。
108徹夜三課目:03/02/10 13:35
79です
皆さん、ありがとうございました。
>4.新しくテーブルを1個作ってフィールドをひとつ作る。数値型でいいや。
で、1,2,3と3つレコードを入力。元のテーブルとこの新しいテーブルでクエリを作る。
これでうまくいきました。
また宜しくお願いします。
109 :03/02/10 13:38
access のマクロの中で、ms-dosコマンドを記述して実行できないか?
110105:03/02/10 13:44
>>106
早速のレスありがとうございます。
UNIONってSQLで書かなければいけないんですね。
SQLは苦手なのでつまずいたらまた質問させて頂くことになるとは思いますが、
頑張ってみます。ありがとうございます。
111名無しさん@そうだ選挙にいこう:03/02/10 15:07
>110
UNION使わなくても、レポート自体にDlookupで表示できると思います。
|1日 |2日|3日…
−−−−−−−−−−−
12月 |[A] |[ ]|[ ]
−−−−−−−−−−−
1月 |[ ] |[ ]|[ ]
−−−−−−−−−−−
2月 |[ ] |[ ]|[ ]
と言う表をレポートで作ります。
クエリーでは「山田」さんの勤務状態を取り出すクエリーに
month: Mid(CStr([テーブル名]![日付]),6,2)※月のみをテキスト型で取り出す
day: Right(CStr([テーブル名]![日付]),2)※日のみをテキスト型で取り出す
この2つを追加したクエリーを作成します。
レポートの例えば上記のAと言うテキストボックスのコントロールソースに
=DLookUp("kinnmu","クエリ1",(("month = '12'") And ("day = '01'")))
と言う式を入れると12月1日の勤務状態が表示されるはずです。

こんな方法で如何でしょうか?
112111:03/02/10 15:31
説明が足りなかったので補足です。
>=DLookUp("kinnmu","クエリ1",(("month = '12'") And ("day = '01'")))
この式の"kinnmu"は勤務状況のフィールド名
この式の"クエリ1"は上記111で指定して作成したクエリー名

フォームあるいは何らかの指定で年(あるいは年度)や月、氏名を指定させれば、
他の人の勤務状況レポート、他の月や年にも応用可能(のはず)です…
113名無しさん@そうだ選挙にいこう:03/02/10 16:54
>97
フォームと言うフォーム上に年月日を表示するフォームがあるとする。
box_dateと言う名前と仮定し表示は2003/01/01

6桁のコードは
mid(cstr(forms!フォーム!box_date),4,1)&mid(cstr(forms!フォーム!box_date),6,2)&format([月のレコード数]+1,"000")
※mid(cstr(forms!フォーム!box_date),4,1)はmid(cstr(forms!フォーム!box_date),3,2)の方が良いと思われる
と言う感じで、どうでしょうか?もしかしたら、どこか間違えているかもしれませんが…。
ヒントはMid関数、Format関数ですね。

ただし、これをどう記入するかはいろいろ方法があります…
月のレコード数の取り方もいろいろ方法があります…
これらのことは別途考えて見てください。
114110:03/02/10 17:26
111さんありがとうございます。
実はユニオンを調べていたのですが
複数テーブルを繋げるものばかりで
複数フィールドを1レコードにまとめるものを
作れず困っていました。

DLOOKUPで出来ました。あとはコピペで365個作ります。
ありがとうございました。

あと、ユニオンも覚えられたし、SQLもだいぶ慣れました。
>>106さんもありがとうございました。

また何かあったらお力添えお願いします。
115ビジネスアシスト社:03/02/10 17:38
あなたのビジネス強力バックアップ ビジネスアシスト社 
メールアドレス収集ソフト、DM送信ソフトなど各種宣伝用ツールを
格安でご提供いたします。
http://www.bizassist-jp.com/?ID=B0484
116111:03/02/10 21:09
>114 110さん、出来てよかったですね。
もう少し楽になる方法(?)として、月表示(1月とか2月)の1とか2とかのラベル
をDLookupに組み込む方法があります。
"month = '12'"の'12'にReports![レポート名]![月表示のラベル名]を指定す
ることが出来ます。この場合、ラベル内の文字に「月」があってはエラーに
なりますので注意してください。Cstrで文字列にしましたので、レポートの
ラベル内文字をCStrで文字列に変換しないといけないかもしれません。

いろいろやってみてください。
117いちょう葉エキス:03/02/10 21:26
Access超初心者です。初歩的な質問で申し訳ありませんが、
ヘルプをあたってもどうにもよくわかりません。
当方Access2000です。

テーブル作成に際して、
あるフィールドAのルックアップ列のためのSQLクエリ中のWhere句で、
現在入力中レコードの、フィールドBの値を使いたいのですが、
そのような書き方ってあるでしょうか。

1)列Aを入力する
2)列Aの値により列Bのドロップダウンリストの集合が決まる
ということをしたいのですが・・・

118いちょう葉エキス:03/02/10 21:29
117>すみません。例が間違ってました。
=========================
1)フィールドBを入力する
2)フィールドBの値によりフィールドAのドロップダウンリストの集合が決まる
ということをしたいのですが・・・
=========================
でした。
>>117-118
フィールド、フィールドって、テーブルを直に更新している時の話しかね?
だったら無理かと。
通常はフォームを使うが、クエリでもできるかも。
120いちょう葉エキス:03/02/10 22:32
>>119
はい、テーブルのデータシートビューで直更新時です。
そうですか・・・フォームやクエリの勉強に切り替えます。
レスポンスありがとうございました。
121名無しさん@そうだ選挙にいこう:03/02/10 22:47
>119 いちょう葉エキスさん
私はテーブル上での指定は分からないけれど、どちらかと言うと
入力フォームを作った方が良いのではないでしょうか?

入力フォームと言うフォーム名と仮定する。入力フォームには
1)入力フォーム自体のプロパティでレコードソースをT_mainに指定、規定のビューは「帳票」か「データシート」
2)com_A(フィールドAの値を表示するコンボボックス)
3)box_B(フィールドBの値を入力するテキストボックス)、コントロールソースはT_mainのフィールドB
テーブルは
1)データを格納するテーブルをT_main(フィールドA、フィールドBを含む)
2)フィールドBの値により変化するフィールドAのドロップダウンリストの集合体(テーブル)をT_fieldA
※この場合T_fieldAの値はbox_Bの値によりグループ分けできる要素があるとする
クエリーは
1)T_fieldAから条件forms!入力フォーム!box_Bでcom_Aに表示する内容を抽出するクエリの名をQ_comAとする

上記の条件で
1)入力フォームのbox_Bのプロパティで変更後に「プロシージャ」で、docmd.Requery "com_A"を記入
2)入力フォームのcom_Aのプロパティでコントロールソースに値集合タイプ=テーブル/クエリ、
 値集合ソース=Q_comAと指定する
3)com_Aの連結列、列数に注意のこと
以上のようにすると、フィールドBに該当するbox_Bに値を入力してcom_Aをクリックするとリストが表示される。

詳しくは、1冊本買って読みながらやった方が良いと思われ…
コントロール名やテーブル名にアンダーバーとか使うヤシはウンコ。
comとかboxとかも素人っぽくて見るに耐えない。
名前付け規則勉強しる。
123121:03/02/10 22:54
>1)T_fieldAから条件forms!入力フォーム!box_Bでcom_Aに表示する内容を抽出するクエリの名をQ_comAとする

これは
T_fieldAの値の中から、入力フォームのbox_Bの値によりcom_Aに表示する値を抽出するクエリを作成し、
その名をQ_comAと名づけると言うことです。
あくまで、box_B(フィールドB)の値によりcom_A(フィールドA)に表示されるリストの値の元になる集合は、
T_main(データテーブル)外にT_fieldAとして持っていることとしています。
分かり難い説明でごめんなさい。
頑張ってやってみてください。
124121:03/02/10 22:55
>122
すみません…私も初心者なものですから。
勉強しなおします。
>>122
概ね胴衣だが、言い過ぎ。
>>124
確かに名前付け規則勉強しておくと、多人数での保守時に便利。
昔誰かが作った会社の帳票出力用のシステムのソースなんて、
かろうじてコントロール名変えているが、規則性があまりなく、読む気がおきねーので
使いづらいのガマンしてるくらい。
いずれ一からつくりかえてやろうかと思っている。
ガンガレ。
ここはトーシロだろうがなんだろうが、相談に来た人にアイデア出して
やるところだと思っていたが…トーシロは出入り禁止か。

これでまた、ヒントくれる奴が減ったな…
ま、言い方が悪いのはアレだが、新たに何を勉強すれば良いか
話し合うのはいいことだ、と思た。


自分も名前付け規則とやらを勉強しようっと。
Google逝ってきまっす。
128名無しさん@そうだ選挙にいこう:03/02/10 23:40
人のヤル事にケチ付けるなら、何処がどういうふうにダメで
どうしたら良いのか書けよ。

ただの例示にハンガリアンノーテーションでも書けってか?
comだのboxだの付いただけ、ただのAやBより親切だろが。
実際のコーディングしてる訳じゃないんだから、意味がわかりゃ
AやBだって問題ない。

少なくとも何の役にも立たない>>122みたいなレスよりずっと良い。
129名無しさん@そうだ選挙にいこう:03/02/10 23:52
>>122
まぁ確かに>>122はウンコな訳だが(w
アンダーバーやComを使うとウンコな訳をきちんと
説明してくれ。
まぁまぁ、そんなキレることでもないでしょ
コマンドボタンのプリフィックスはcmd、みたいな奴だな

http://homepage2.nifty.com/inform/vbmania/etc/code_naming.htm

チームでのコーディングの際は、チーム全員で
統一しておかないとコードの可読性が下がるから開発速度が下がってしまうってことだね

Microsoftが提示しているものなので、従って間違いは無いだろうけど、
個人で作るならどうでもいいんじゃねーかな

わいわい騒ぐほどのことじゃない
切れてるわけじゃないけど、デモなんでアンダーバーつけるとウンコなんだろ?
素朴な疑問…

ググッても「アンダーバーはイカン」って言うのは今のところ見つからないんだ。
しかも、名付け規則って「複数人数で行う際の効率化」と言う問題だけなのかな?
「ウンコ」とまで言われるからには、バグに引っかかるとかエラーが起きるとか、
重大なミスでもあるのかと思っていたんだけど…単に「複数人数で作るときの
ルール化」と言う問題だけなのかな?
知ってる人に、後学のために教えて欲しいだけなんだけど…
132名無しさん@そうだ選挙にいこう:03/02/11 00:31
>>131
イヤ。。。ウンコな>>122の戯言だから気にしちゃいかんな(w
133いちょう葉エキス:03/02/11 00:36
>121 さん
できました!!!
ありがとうございます。
access凄い。OracleとVBで組んでた頃(もう8年前・・・)
から考えるとあの頃の苦労がアホみたいです。

ハンガリアン記法については、古今より賛否両論ありますが、
VB互換系では、やっぱり便利と思います。
134いちょう葉エキス:03/02/11 00:41
あ、アンダーバーはなんでだめなんだろう?
バシバシつかっていたけれど・・・
135名無しさん@そうだ選挙にいこう:03/02/11 00:43
戯言だから気にしなくていい…(゚д゚;≡ ;゚Д゚)…アンダーバーつけるとウンコ

漏れはサンデーアクセスな上にプログラマでも何でもない
一人でコソコソ自分の業務処理を作って楽しんでるだけなんで、
正直、どっちを信じていいのかわからん…
頼む!誰か真実を教えてくれ〜
SQLではアンダーバーは一文字分のワイルドカードとして使うがなぁ。
ID Like 'b_'
みたいな。
137名無しさん@そうだ選挙にいこう:03/02/11 01:10
>>136
それで?
コントロールネームと何が関係あるんだ?
138いちょう葉エキス:03/02/11 01:48
出来たことにエキサイトしてお礼忘れてました。すみません。
休日前の貴重なお時間を割いて初歩的な質問に答えていただいた
>> 119 さん、
>> 121 さん、
ありがとうございました。なんかいろんな意味で新しい世界です。。。
(始めて2ちゃんねるに書き込みしてすぐRes来たのでちょっと感動)
139名無しさん@そうだ選挙にいこう:03/02/11 09:03
>>122
おーい。。ウンコ>>122早くでてきて説明しろよ(w
   (\_/)
   ()(I) (I)  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ヽ Д) < アンダーバーとか使うヤシはウンコ
     ) (   \____________
   γ    ヽ     ∧
   / ノ)  (ノ ) ∬(_)∬
 (⌒ヽヽ  / /⌒) (__)
  ヽ  W⌒Wヽ_フ(___)
  /ノ  ⊂´⌒つ;・∀・)つ

141名無しさん@そうだ選挙にいこう:03/02/11 11:02
でてこんなぁ>>122
>>136>>122なら、ウンコ*ウンコだな(w
お前ら荒らしたいだけちゃうんかと。
143105:03/02/11 11:45
>>111さん、再レスありがとうございます。
今日は休みなので明日やってみます。
144☆☆☆:03/02/11 11:47
アクセスデータ内で、ダブりデータを
発見する方法を教えてください!!
>>144
両方のテーブルのレコードセット開いて全通り比較。
146☆☆☆:03/02/11 12:16
一つのデータ内の
同じセル(?)を発見できませんか?
>146
1テーブル内で全フィールドあるいは1フィールド内の値が同
じデータを見つけたいと言うことなのかな?

いちばん簡単なのは画面上にあるクエリーの「新規作成」で
「重複クエリーウィザード」を使う方法だと思うけど?
それじゃ、出来ない?
3万件超とかでなければ全通り比較で良いと思うがなぁ。
途中で処理挟むことも出来るし。
149148:03/02/11 12:37
あ、ゴメソ勘違い。
150名無しさん@そうだ選挙にいこう:03/02/11 16:42
あれ、どうやるんでしたっけ
Sendkeys何ちゃらでWindoesを終了させるやり方
だいぶ前、「Accsess Windows 終了」で検索かけたときは
ほぼ一発で見つかったんですが、今回はダメみたいで。
Sendkeysの後、たしか%とか~とか入っていたような気がするんですが、
他はまったく思い出せません
151150:03/02/11 17:44
すみません、自分のPC掃除してたら出てきました
SendKeys "%{F4}S~", False
AppActivate ("Program Manager")
と。
お騒がせしました。
では。
152名無しさん@そうだ選挙にいこう:03/02/11 19:10
Accsessで開発することになったんだが・・・・(何でいまさらトホホ)
2000だと97のFlexGridって無いの?アクセスなんて97しか触ったこと無いんで。
>>152
97だからあるんじゃなく、VB自体かVBのFrexGrid使ったソフト入れていたから
コントロール一覧に出たんじゃないかと。
154名無しさん@そうだ選挙にいこう:03/02/12 14:34
初心者ですが

モジュールって、どうやって使うの?

式とかわからない
155名無しさん@そうだ選挙にいこう:03/02/12 14:56
>>154
>>式とかわからない

では使えません。

まずはマクロを作って、[ツール]-[マクロ]-[マクロをVisual Basicに変換]
をしてみて、どんなもんか見当をつけましょう。

マクロもワカラナイ場合は入門書から勉強しましょう。
いずれにせよ、Visual Basic for Applicationsの命令が
少しは分からなければ使えません。

使えるようになると何か良いことがあるかというと、
オリジナルの関数を作ったり、マクロにない処理を組み込んだりできる
ようになります。

逆に言えば、クエリー、フォーム、レポート、マクロの組み合わせで
用が足りているなら、どうしても絶対使わなければならない物でも
ありません。
156名無しさん@そうだ選挙にいこう:03/02/12 15:24
ありがとー

155
157名無しさん@そうだ選挙にいこう:03/02/12 22:49
教えてください。

複数個あるMDBファイル(ファイル名は国名+年月)の中のテーブル(テーブル名は同じ)からデータを
インポートするのですが、この手順を自動化したいのです。
ただインポートするだけではなく、インポートの際に列を絞り、演算を行いたいです。
158名無しさん@そうだ選挙にいこう:03/02/13 00:04
>>157
こんなん?

Sub 国別インポート

Docmd.RunSQL "Insert Into tblインポート先(fld項目1,fld項目2) " & _
"Select fld項目1,fnc関数(fld演算項目) From " & _
"tblインポート元 In 'C:\Work\日本200302.mdb';

Docmd.RunSQL "Insert Into tblインポート先(fld項目1,fld項目2) " & _
"Select fld項目1,fnc関数(fld演算項目) From " & _
"tblインポート元 In 'C:\Work\中国200302.mdb';
end sub
159名無しさん@そうだ選挙にいこう:03/02/13 14:05
質問があります。

WinXP + Access2002(2000形式ADP+MSDE)です。

売上データの様なものを管理しているのですが、
Win2000 + Access2000よりバージョンアップしたところ
サブフォームが変な挙動を示すようになってしまいました。

メイン-サブは出庫IDでリンクさせているのですが、
サブフォーム(売り上げ詳細)を修正若しくは新規入力した後
サブフォームのカレントレコードが先頭にすっ飛んでしまいます。

サブフォームに入力後、メインフォームの合計金額・消費税を
VBAにて修正しているのですが、そのタイミングで先頭レコードに移動するみたいです。

心当たりのある方いらっしゃいますか?
160名無しさん@そうだ選挙にいこう:03/02/13 16:45
>>159
メインフォームに書くとき、
ついでにしてることってない?
161名無しさん@そうだ選挙にいこう:03/02/13 19:06
>>160

Private Sub Form_AfterUpdate()

Me.Parent.Controls("出庫金額総計") = DSum("出庫金額", "廉売マスター", "出庫ID = " & Me.出庫ID)
Me.Parent.Controls("消費税") = Fix(DSum("出庫金額", "廉売マスター", "出庫ID = " & Me.出庫ID) * 消費税率)

End Sub

一行目実行後先頭にすっ飛びます。

ちなみに、メインフォームはこんな感じです。

Private Sub Form_Current()
Me.日付.SetFocus
End Sub

Private Sub Form_Open(Cancel As Integer)
Me.OrderBy = "日付,出庫ID"
Me.OrderByOn = True
End Sub
162名無しさん@そうだ選挙にいこう:03/02/13 19:38
質問です。

TableDefやらQeryDefでオブジェクトを作成するとき、
同じ名前のオブジェクトがあるとエラーになります。
エラーをださない方法を教えてください!
>>162
正直、意味が分からない。
Nothingでもかけて、同じ名前のオブジェクトを殺しておけば?
164名無しさん@そうだ選挙にいこう:03/02/13 19:49
例えばTableAがあって
あとからTableAを作成しようとすると実行エラー3010?見たいなエラーがでます。
おそらく同じ名称のテーブルがもともとあるからですよね。
165名無しさん@そうだ選挙にいこう:03/02/13 22:19
 月日     人数   金額
2002/08/09    1    2500
2002/08/09    2    3500
2002/08/13    4    1000  
2002/08/13    1    500

 上のようなテーブルを月日ごとに
人数、金額を合計するSQLはどのように
書けばよろしいのでしょうか?ExcelのSUMIFのように。
166名無しさん@そうだ選挙にいこう:03/02/13 22:58
>>165

SELECT [月日], Sum([人数]) AS 人数計, Sum([金額]) AS 金額計
FROM hoge
GROUP BY [月日];

で、如何でしょう?


167名無しさん@そうだ選挙にいこう:03/02/13 23:08
>>166
 ちょっとやってみます。c⌒っ゚∀゚)っφ メモメモ...
168165:03/02/13 23:14
>>166
 ( ゚Д゚)ウマーなこといきました。ありがとうございます。
貴方に神のご加護がありますように。
169名無しさん@そうだ選挙にいこう:03/02/13 23:18
Access97/2000で下記URLを参考して、フォーム上にURLにて指定した画像を表示しているのですが、
これがIEのキャッシュを参照している様なので、キャッシュを参照しないようにする事は可能でしょうか?

http://www.allapi.net/apilist/A9157204909015547863E48E3E348BE6.html
170169:03/02/14 00:00
説明が足りませんでした、具体的には、OleLoadPicturePath でキャッシュを参照しないようにしたいのです。
browserコントロールも試したのですが、画像のストレッチや、ファイルタイプがbmpの場合、
なぜかペイントが起動してしまうので困っています。
171名無しさん@そうだ選挙にいこう:03/02/14 10:41
Win2000 AC2000 使ってます。
レポート等を印刷したとき、印刷中のステ−タス表示メッセ−ジが出ますが、
それを表示させない方法はありますか?
API等でできるんであれば、それでもいいんでご教授願いたいです。
>>169-170
そのリンクが切れているので、詳しくは分からないけど、
キャッシュでも良いのでは?
明示的に更新してからキャッシュを参照じゃダメなの?
>>171
どんなメッセージ?
プリンタドライバが表示しているメッセージボックスは消せないよん。
173171:03/02/15 01:33
>>172

印刷中

    現在'rpt_xxx'の1ページを
    canon-xxxのLPB-xxxで
    印刷しています。

    キャンセル

こんな感じのメッセージボックスの奴です。わかるかな?
昔勤めてた会社のVBで作ってあったシステムが、メッセージボックスが出ないで
印刷されてたので、ACCESSでもできるのかなぁと・・
VBでもPrinterObjectで印刷かけると出ないみたいですね。
ACCESSじゃなくてVBならできるんであればそのやり方も教えて欲しいのですが・・
スレ違いになってしまいすみません。
>>173
うち普通にそんなの出ないよ。
>>172が言うようにドライバが出してんでは?
別に出ても良いじゃん。
175名無しさん@そうだ選挙にいこう:03/02/15 08:50
VBだろうが、ACCESSだろうが消せる。
簡単だから自分で調べてみ。

やってみて、わからない所があれば改めて聞きにおいで。
フォームでコントロールソースの「1」という数を「あ」という語で「2」という数を
「い」という語で表示するにはどうすればいいでしょうか?
177176:03/02/15 20:36
説明が足りませんね。
コントロールソースに、「種類」というフィールド名を指定しているのですが、
その種類の中のデータが1のときは、「あ」2のときは「い」と表示したいのです。
>>176
別に

1  あ
2  い

みたいなテーブル作ってクエリで繋いでソースに。
>>177
マクロで値の代入で行えばいい。
レポートで1ページに20レコードだけ表示するにはどうすればいいですか?
>>180
プレビュー見ながら幅を調整する。
Aceess2000を使っています。
フォームで、マクロを使ってテキストボックスを使用付加にする場合は、
[テキストボックスの名前].Enabled
false
ですが、マクロで入力付加にする場合は、どうすればいいですか?
>>182
Locked
ture
で編集不可
Locked
falseで
編集可能
184171:03/02/15 23:06
>>175
いろいろググって、
http://www.users.gr.jp/ml/archive/access/545.asp
とか出てきたんですけどレスついてなかったり、リンク切れてたりでした。
中には「出来ません」ときっぱり言ってるとこもあってあきらめてたんですけど
正直やってみてわからないじゃなくてどこを設定したらいいかも見当つきません。
教えて君で申し訳ないんですがヒントだけでもいただけないでしょうか?
アクセスXPを98SEで使ってる者ですが、
誤ってデータベースウィンドウからあるテーブルを
消去してしまいました。もう元に戻す事は出来ない
のでしょうか?
>>185
不可。
>180
20レコード抽出するクエリ作ってそれをレコードソースにしたらええ。
188185:03/02/16 01:58
>>186
そうですか。しかしなんとか復旧できました。
焦った。
テーブルが更新されたら、フォームを再表示したいのですが、
どうすればいいでしょうか?
>189
テーブル更新の後にRequeryを実行。
191名無しさん@そうだ選挙にいこう:03/02/16 15:28
絞込み検索した結果をリストボックスに一覧表示させ、
リストボックスに表示された1レコードをクリックすると、その詳細が別のフォームで
表示出来るようにしたい。

クエリーで抽出したレコードをリストボックスに持ってくる所までは出来たのですが、
レコードをクリックして別フォームに詳細出力させる方法が分かりません。
どなたかお知恵を...。

当方の環境は、Win2K+Access2000です。
192名無しさん@そうだ選挙にいこう:03/02/16 17:03
>>191
リストボックスをクリック時のイベントで別フォームを開いて
別フォームのレコードソースにリストボックスの値で抽出するクエリー書け
193191:03/02/16 20:35
>>192
早速のご回答有難うございます。
こんな感じで設定したのですが、どうも上手くいきません。

(1)リストボックスA
・プロパティ「ダブルクリック時」の値 => 「マクロA」
(2)マクロA
・アクション「フォームを開く」の値 => 「詳細用フォーム」
(3)詳細用フォーム
・プロパティ「レコードソース」の値 => 「クエリA」
(4)クエリA
・抽出条件の値 => [Forms]![一覧用フォーム名]![リストボックス名].[Column1]

上記(3)の詳細用フォーム単体で実行した場合には機能しているようですが、一覧用フォーム
からリストボックスをクリックするとダメです。(フォームに何もデータが表示されない)
リストボックスから正しく値が渡されていないように見えます。
どの辺りが悪いのでしょうか?
194192:03/02/16 21:32
>>193
Column(1)じゃないのか?
195191:03/02/16 21:38
>>194
Column(1)でも結果は全く同じなんです...。
196192:03/02/16 21:45
[リストボックス名.Column(1)]で出来ないか?
197192:03/02/16 21:51
スマソ間違った
[リストボックス名].Column(1)ね
198191:03/02/16 22:44
>>197
値を”[Forms]![一覧用フォーム名]![リストボックス名].Column(1)”
に変えてみましたが、クエリーを実行するとエラーになってしまいます。
"Column(x)"は括弧でくくらないと駄目みたいですね。

※エラーメッセージ:
『式に未定義関数があります。
  '[Forms]![一覧用フォーム名]![リストボックス名].Column'』

他にも色々と試してみます。
199175:03/02/16 22:45
>>171
Window関連のAPIについて調べてみよう。
まずはハンドルでも取得してみ。
200171:03/02/17 02:16
>>175
ありがとうございます。
調べてやってみます。
201169:03/02/17 08:34
>>172
明示的に更新ってACCESSで出来るのでしょうか?
202名無しさん@そうだ選挙にいこう:03/02/17 08:58
>191
フォーム上のリストボックスであれば、
連結列をクエリーで必要な列にして、
フォーム上の表示が違うようなら列数、列幅で調整する。
これで、クエリー内の指定は[Forms]![一覧用フォーム名]![リストボックス名]
にすればいけるのでは?
ただし、リストが複数選択を許可してる場合は?????

あるいはColumnの指定でだめなら、関数作ってクエリーに
入れ込んだ方がいいと思う。
204191:03/02/17 19:52
>>203
連結列をクエリーで必要な列にして、
クエリー内の指定を、[Forms]![一覧用フォーム名]![リストボックス名]
とすることで上手くいきました。
有難うございました!
>204 解決してよかったです。
亀レスですが>133 いちょう葉エキスさん、無事解決良かったです。

>175さん、その後どうなったのでしょう。
私も自宅会社の両環境で同じダイアログ(プリンタは違うメーカー)が出ます。
別に何の問題もないから気にもしなかったけれど、175さんの質問に
「そう言えば…」と思っていろいろ調べてみてますが、引っかかりません。
APIでもあまり引っかからないのは、検索の仕方がヘタレだからでしょうね。
何か手があるのでしょうかね?分かったらご報告いただきたいです…
206205:03/02/17 21:03
>175ではなく >171さんの間違えでした。
すみません、逝ってきます…
207171:03/02/17 21:10
>>205
まだ解決できてません。
>175さんにいわれたAPIでWindowの取得は出来てるんですが、
それから先に進んでいません。正直まだあまり調べてないので
明日以降またチャレンジします。
出来たら報告しますね。
>171さん、うまくハンドルが取得できたならば下記のAPIは参考になりませんか?
特にCloseWindow()やDestroyWindow()など…如何でしょう?

ttp://homepage1.nifty.com/MADIA/vb/VBKANREN.htm
ttp://www.ecoop.net/coop/api/function.html#CreateWindow

私もがんばってみます…
209名無しさん@そうだ選挙にいこう:03/02/18 13:54
ACCESS2000でレポートについて教えて下さい。
表形式レポートで値の入っていないテキストボックスに斜線を引きたいと思っています。
ところが、直線は条件付き書式がありません。
レポートを開くときのイベントに

If IsNull(Me.[テキストボックス名]) = False Then
Me.直線67.Visible = False
Else
  Me.直線67.Visible = True
End If

と書くと、最初のレコードの該当テキストボックスの状況に
依存してしまいます。
解決策をお願いします。
210名無しさん@そうだ選挙にいこう:03/02/18 14:05
>>209
[レポートを開くときのイベント]→[詳細フォーマット時]
に変えてみては?
211171:03/02/18 15:13
>>175,205
とりあえず、できました。まだ不完全ですが・・
APIでアクティブなウィンドウのハンドルを取得して(GetForegroundWindow)
ウィンドウをタイトルバーのテキストをバッファにコピーする。(GetWindowText)
レポートを開くときに、
Private Sub Report_Open(Cancel As Integer)
Dim lngWindowHandleForeground As Long
Dim strWindowText As String * 128
Dim lngWin32apiResultCode As Long
Dim Ret As Long
' アクティブなウィンドウのハンドルを取得
lngWindowHandleForeground = GetForegroundWindow()
' アクティブなウィンドウのタイトルを取得
lngWin32apiResultCode = _
GetWindowText(lngWindowHandleForeground, _
strWindowText, _
Len(strWindowText))
' アクティブなウィンドウのタイトルを表示
If Left(strWindowText, _
InStr(strWindowText, vbNullChar) - 1) = "印刷中" Then
Ret = DestroyWindow(lngWindowHandleForeground)
End If
End Sub
で、205さんに教えてもらったDestroyWindowで消えたのですが、
フォーカスがACCESS以外に行ってしまいます。(たとえばフォルダを開いていたら
そのフォルダがアクティブになってしまう。)
ちなみにCloseWindowを使うと印刷中のフォームが最小化されて左下に行くのですが、
印刷中のフォームの跡が白く残ってしまいました。
とりあえずざっと作ったので、これからもう少しがんばります。
212名無しさん@そうだ選挙にいこう:03/02/18 16:49
マクロでコンボボックスのRowSouceプロパティにクエリを
設定し、表示させたいと考えているのですが、
「このオブジェクトには、オートメーションオブジェクト
'qry台帳情報01'は含まれません」
と出てしまいます。
どうすればよろしいでしょうか、アドバイスをお願い致します。

マクロ記述は以下のようにしています。
アクション:値の代入
アイテム:[Forms]![frmテスト]![cmb台帳情報].[RowSource]
式:[qry台帳情報01]
(式をクエリ名ではなくSQL文にすると、文字列が長すぎるためエラー)

コンボボックスの設定は以下の通りです。
値集合タイプ:テーブル/クエリ
値集合ソース:空欄 (ここにマクロでクエリを入れたい)
連結列:1
列数:7

Windows2000、Access2000です。
213209:03/02/18 17:45
>>210さん、ありがとうございます
おかげさまで解決しました。
>>212
マクロじゃなくて

値集合タイプ:テーブル/クエリ
値集合ソース:qry台帳情報01
連結列:1
列数:7

にして、更新後Requeryじゃぁだめ?
215初心者:03/02/18 19:02
一対多のリレーションシップすら張れない私に、アドバイスをお願いします。
どなたでも結構ですので、サイトのアドレスでも、貼り付けてください・・・
216175:03/02/18 21:52
もうすこしだ、頑張れ!
ttp://www.microsoft.com/japan/msdn/library/default.asp
この辺を参考に、色々試してみよう。
217175:03/02/18 21:52
上のは>>171
218名無しさん@そうだ選挙にいこう:03/02/18 22:14
   ,.´ / Vヽヽ
    ! i iノノリ)) 〉
    i l l.´ヮ`ノリ <先生!こんなのがありました!
    l く/_只ヽ    
  | ̄ ̄ ̄ ̄ ̄|
http://saitama.gasuki.com/kaorin/
219205:03/02/18 22:46
>211 171さん
す、す、すごい!がんばれ〜って言うか、山は半分以上越えましたね!

…やろうと思っていたのですが、個人的に業務処理に利用してる
mdbの改良が必要になって取り組んでいるので、今、出来ません…
力になれず、ごめんなさい…口先ばっかですね…

アクティブなプリンタのウィンドウタイトルが所得できたら、閉じる前に
mdb側をアクティブにしてから(プリンタウィンドウを非アクティブにする)
プリンタウィンドウを閉じる…と言うことはできないでしょうかね?
プリンタ制御関係のウィンドウじゃ無理かなぁ〜
人に言うより、自分で自分でやれよ…ですよね
220175:03/02/19 08:01
>>171 >>205
APIを使えるようになったら、出来ることが一気に拡がりますよ。
たいていのことは出来るし。

あと、こっちにも来てみるといいかも。
http://pc2.2ch.net/test/read.cgi/tech/1044929160/l50
221212:03/02/19 09:06
>>214 さん、レスありがとうございます。
複数のクエリから条件にあったものをその都度マクロで設定したいので、
デザイン時にプロパティを設定するのとは別の方法で解決したいと
思っています。

フォーム上のアイテムを
[forms]![cmb台帳情報].[Column](2.1)

などと表記するように、クエリも

[○○]![qry台帳情報01]
のようにしないと、フィールドと誤認されてエラーが
出ているのかなと思ったりしています。
でも・・○○が何かどうしてもわかりません。

アドバイスをよろしくお願いします m(_ _)m
222名無しさん@そうだ選挙にいこう:03/02/19 10:35
>>221
VBA使え
223214:03/02/19 13:50
>>221

じゃぁ、

式:[qry台帳情報01] →"qry台帳情報01"
[ ]じゃなくて、""で囲み

1週間前にAccessをはじめました。
本の73ページを参考に作っているのですが、更新クリエでエラーになります。
何が間違っているのか全然わかりません。
初心者なのでわかりやすく教えてください。
225名無しさん@そうだ選挙にいこう:03/02/19 16:16
>>224
釣り、ご苦労さん。
>>224はガンダム。
227名無しさん@そうだ選挙にいこう :03/02/20 09:49
どなたか教えて下さい。
検索で例えば名前検索をしたいと思いまして、
クエリーで
Like"*"&[ナマエを入力下さい]&"*"
としました。 入力でIMEが 半角カタカナにならないのですが。
これはどうにもならないのでしょうか。 テーブルは半角指定にしていますが
よろしくお願いします。
>>227
そもそもこの時代に半角カナを使うのが間違い
>>227

1)半角をやめる
2)検索フォーム作成→SQL発行

っていうか、半角になるし・・・・・
230212:03/02/20 12:54
>>214 (223)さん、

おかげさまで解決しました。
ありがとうございました!
231 :03/02/20 12:56
カスタマーバーコードを簡単に生成する方法ってないんすかね。
232名無しさん@そうだ選挙にいこう:03/02/20 13:10
229さん ありがとうございました
227です
>231
Accessでバーコードコントロールを入れて、
自分でデータ入力して、印刷時にバーコード
印刷するようにmdbを作れば?
234名無しさん@そうだ選挙にいこう:03/02/20 15:41
アクセスで顧客管理してる人いますか?
いつ電話したとか
いつDMを出したとか
いつ商談したとか
いつの何時からの展示会に呼んだとか
いつどうゆうサポートをしたとか
そういう処理履歴を細かく管理したいんですが
本屋とかネットを探してもそういうソリューションが載って無く
どうすれば良いのか分かりません。
どなたかアドバイスを下さい。
235名無しさん@そうだ選挙にいこう:03/02/20 16:20
>>234
そういうのはAccess云々の前に、顧客管理の方法をまず作らなければならない。
顧客へのアプローチ情報をどうやって集めるのか?
集めた情報をどう整理するのか?
最終的にその情報をつかって何をしたいのか?
こういった仕組みをロジカルに構築する事がまず必要。

顧客管理とは何をする事なのか?
単に顧客のアドレス帳を作りたいのか、販売履歴が知りたいのか、
売掛の金額を管理したいのか、具体的なものがなければ何もできない。

コンピューターをなんとなく弄ったら良い営業方法やら販売手法が沸いてきて
なにやら仕事が自然に良い感じに行くようになったなんて事は有得ない。

Accessの使い方ではなく、顧客管理の仕方をまず調べるべき。

台帳や伝票でも顧客管理は出来てる! でも処理を効率化したいのでDBを使う
というのならAccessの出番になる。

「顧客名の一部から電話番号を検索したい」とか
「今月の売上額が○○の範囲にある顧客をリストアップしたい」とか
の話になったら、ここでOKなヨカソ!
236名無しさん@そうだ選挙にいこう:03/02/20 16:32
>>234
いつ電話したとか
いつDMを出したとか
いつ商談したとか
いつの何時からの展示会に呼んだとか

これなんの為に必要なのか、手書きで1〜2ヶ月ほど
言っているやつにやらせてみれ、データは多い程よい
ばかばかしさに気がつくはず、もつともそういう統計でもとる
会社なら別だが、、、、
237名無しさん@そうだ選挙にいこう:03/02/20 17:41
ばかばかしいとか思われてもとにかく必要なんです。
顧客数は多いし紙のファイルだとソートかけられないし
あとから特定の情報を取り出すのが大変。
だからコンピュータで管理したかったんだけど。
238名無しさん@そうだ選挙にいこう:03/02/20 18:19
まず何に使うのかはっきりさせないと、きっと他人には良いアイデアは出せないね。

とりあえずコンピューターが使ってみたいというのなら、テーブルだけ作って
ガシガシと直接データ入力していけば?
ソートも出来るし検索も出来る。でも特定の情報というものが取り出せるのかどうか
はワカラナイけどね。

まあ、役には立たないと思うけど。

業務分析をして目的をはっきりさせるのが先決。
手段が目的化しているうちは、頑張っててもただのあそび。
Access 標準添付のテンプレートに顧客管理があるよ。(Access 2002)
フォーム作成やプログラミングができるなら、不足部分を作り足していけば
いいんでないの。
基本や拡張の設計がうまくできてないと後で地獄だけど。
240名無しさん@そうだ選挙にいこう:03/02/20 18:29
>>237
どうやって作ればよいかわからんなら、既存の顧客管理で
使えそうなものを探せばよかろう?
対応できそうなもので機能が足りなきゃ制作者に問い合わ
せるなり、
http://www.vector.co.jp/vpack/filearea/win95/writing/address/index.html
http://www.vector.co.jp/vpack/filearea/win95/business/kokyaku/index.html
いくらでもおちてるだろう
241名無しさん@そうだ選挙にいこう:03/02/20 18:48
いつもお世話になってます。
といっても質問は初めてなんですが
教えてほしいことがあります。

データの新規入力と修正を同じフォームで行いたいんです。
表示用のフォームは別に作ります。

それで、新規入力時はフォームに何も入力されていない状態で表示し、
修正のときは表示用のフォームからボタンなりを押すと
そのフォームに飛び、表示用フォームに表示されていた
レコードの内容を表示したいのです。

こういうことってどうやればできますか?
>>241

非連結にする
243名無しさん@そうだ選挙にいこう:03/02/20 19:05
>241
私がよくやる手は、メインのフォームにサブフォームを入れ込み、
表示されたサブフォームのレコードをクリックすると、メインフォー
ム上のテキストボックスやコントロールボックスに内容が反映され
る…と言う奴。
で、メインフォームには【新規】【修正】【削除】というボタンをつけて、
それぞれ機能させるようにしてる。

ちなみに、メインフォームに検索ボタン作って、検索でヒットしたレ
コードをサブフォームの切り替えによって表示も出来ますよ。
がんばってくれ!
>241
入力用のフォームを開いたとき、MoveLast,MoveNextを実行する。
表示用フォームでボタンを押したとき、そのレコードのID等を入力用フォームに
渡してFindFirstを実行。
245241:03/02/20 21:24
>>242-244 さん
早速回答して頂いてありがとうございます!!

やってみます。
246243:03/02/21 09:33
遅いだろうけど…ちなみに「クリア」ボタンで、メインフォームの
各テキストボックスやコンボボックスの内容がクリアされ、サブ
フォームのレコード内容を表示しても「新規」ボタンで新規レコー
ドとして登録、内容修正して「修正」ボタンで表示レコード内容の
修正になります。表示内容クリア状態で表示部分に入力して「新規」
ボタンでも新規データの登録ができます。
つまり、レコード内容の表示部分と登録内容を入力する部分を兼
ねるようにしているのです。

個人的に1つの画面(フォーム)で済ませた方が好きだからそうしてるけど…
そう言うこともできますね…
ACCESS飽きたな。将来も暗そうだ。
MS飽きたな。将来も暗そうだ。
249名無しさん@そうだ選挙にいこう:03/02/21 22:15
>>234
同じようなことやってるよ。

まずは>>235氏の言っているように仕事の処理方法を決める。
その後、入力する情報を記入する書類を作成。
その書類と、「何がしたいのか」に合わせてmdbを設計。

具体的には、以下のような3つのデーブルを作り、そのデータをクエリ、フォーム、
レポートを使って必要なデータを作成という手順で良いのでは?

・顧客テーブル→顧客の住所や氏名、電話番号等の情報
・業務テーブル→電話、DM、商談、展示会等の業務項目
・履歴テーブル→顧客、業務、日付等の履歴
250名無しさん@そうだ選挙にいこう:03/02/22 00:09
ACCESS2002を使用している者です。
ACCESSでこちらが作ったデータベースをインターネット上で他の人が検索に利用することはできるのですか。
できるとしたら、使用側にACCESSがインストールされている必要があるんでしょうか?
251名無しさん@そうだ選挙にいこう:03/02/22 01:05
>>250
クライアント側よりも、サーバー側に条件が出てくるね。
「データアクセスページ」をキーワードに調べてみたらすぐにわかると思う。
252250:03/02/22 02:16
>251
ありがとうございます。もうちょっと調べてみます。
253 :03/02/22 10:18
すいませんおしえてください。
今見積書をエクセルで作成して、ファイルの中に入れて管理しています。
品番を入力するだけで、見積書を拾い出すようなことをしたいんですが
アクセスではこのようなことは出来ますか?
>>253

アクセスではこのようなことは出来ますか? との事なので、

出来ます。。。。。
255名無しさん@そうだ選挙にいこう:03/02/22 13:14
釣り自作釣られ自演といった感じの使い古された型だが、俺はこのてのやりとり、
今でも嫌いじゃないぞ
256255:03/02/22 13:15
わり、あげちまった
>>253
出来ます。品番が入っていればの話だけど…。
具体的なやり方は作り方によって違うから答えられない。
258257:03/02/22 14:15
リロードしてなかったからレスついてたの見てなかった、ゴメソ
259みゅう:03/02/24 09:24
すいません、質問なんですがよろしくおねがいします。
ツールバーなんですが、自分でマクロを貼り付けてつくってるんです。
access2000で作成中です。現象としては、ツールバーの一部が消えてしまうというものです。
現在作成しているのでは、ツールバーに4つのボタンをはっていて、よく消えるのが一番左端です。
ただ、カーソルを当てると表示されます。
実はこの現象は開発マシンから、実際使用するマシンへ移行したあとに発生しています。
この二つのマシンにさほど違いはありません。

それが発生する過程として、メインの画面から、たとえば台帳などを表示させる画面の二つがあるとします。
その間に、ツールバーだけを表示させている画面があります。
メインから台帳画面に展開するときはきちんと表示されていますが、台帳から戻ってくると消えているのです。

わかりにくく、長い文章ですいません。
もしわかられる方がいましたら、アドバイスおねがいします。
260名無しさん@そうだ選挙にいこう:03/02/24 09:30
261名無しさん@そうだ選挙にいこう:03/02/24 12:23
教えて下さい。
フォームでリクエリをかけたときに
カーソルが先頭レコードに行ってしまいますが、
リクエリ時のレコードにカーソルがあるようにしたいと思っています。、
どうすればいいのでしょう。
最後のレコードだったら「GOTORECORD」で何とかなるのですが
そうでないときが多いので困っています。
よろしくお願いします。
>261
実際にやったことはないけれど…
リクエリーかける前に内部的に変数等でレコードIDを保存し
リクエリー後にそのレコードIDに飛ばす…ってのはどうだろうか?
この程度のアドバイスじゃ、アドバイスになってないかな…ごめん
263名無しさん@そうだ選挙にいこう:03/02/24 17:53
>>262
常道です。
リクエリ用のメソッドを別に書いて、Bool型の引数を渡せる
ようにする。
trueならリクエリ前のレコードをカレントに
Falseなら先頭レコードに
とか。
264名無しさん@そうだ選挙にいこう:03/02/24 18:13
>>259
メインの画面がアクティブになったら
なぜ消えるのかはわからんが、表示させるなら

CommandBars("自分のツールバー").Enabled = True
CommandBars("自分のツールバー").Visible = True
265261:03/02/24 19:48
>>262さん、>>263さんレスありがとうございます。
IDを変数に保存は出来たのですが、
「GOTORECORD」の「acGOTO」って
移動先を「何番目のレコードへ」としか
指定できないようで再び困ってしまいました。
どうやってレコードを数えれば良いのでしょう。
教えて君で申し訳ないのですが、ヒントでも教えて下さい。
266263:03/02/24 19:58
プライマリキーで飛ばせば?
267263:03/02/24 20:34
tbl.FindFirst "ID = 1"
とか。
後は自分で調べてね。
>261
BookMarkを使う
269名無しさん@そうだ選挙にいこう:03/02/25 09:13
どなたか教えて下さい。Access2000です。
起動時の設定で 「すべてのメニューを表示」のチェックを外しました。
メニューバーの表示が当然変わる訳ですが、
これを元の表示に戻すのは、どのようにしたらよろしいか、教えて下さい。
270名無しさん@そうだ選挙にいこう:03/02/25 09:36
>>269
「起動時の設定 ACCESS」でGoogleしろ
271bloom:03/02/25 09:37
272名無しさん@そうだ選挙にいこう:03/02/25 09:40
>269
起動時にShiftキーを押しながらmdbをダブルクリックすると、
デフォルトの状態でメニューが表示され、起動時に設定されて
いるバッチ処理等があればそれを行わない状態でmdbが起動す
ると思う。

そこから起動時の設定を変更することができると思う。
273名無しさん@そうだ選挙にいこう:03/02/25 11:40
272さんありがとうございました。
269です。遅くなりすみません。
274名無しさん@そうだ選挙にいこう:03/02/25 12:53
Access のバグや癖をまとめたWeb知りませんか?
275名無しさん@そうだ選挙にいこう:03/02/25 13:32
276261:03/02/25 13:42
>>263さん、ありがとうございます。

Me.Recordset.FindFirst "ID = " & 保存したID

で出来ました。

>>268さん、試していないのですが調べてみたら便利そうなので
今度使ってみます。

また何かありましたらよろしくお願いします。
277171:03/02/25 15:14
>>175,205
ほかの仕事が忙しくてなかなかできませんでした。
結局、レポートを開くときにDestroyWindowで「印刷中」のウィンドウを消して、
その直後CloseWindowで印刷処理を行うフォーム以外がアクティブになっていたら
最小化するということでできました。
 ただ、この処理は本当はSTARFAXのOCXをつかったFAX送信のときに使いたくて
普通の印刷を行うプリンターならうまくいくのですがSTARFAXのプリンタドライバに
印刷をかけると一応できるのですが、印刷を準備するのに時間がかかる?ようで
「印刷中」のウィンドウがしばらくでて、それから最後にやっとDestroyWindowで
ウィンドウを消すような感じになってしまいます。FAX送信のときに一番使いたかった
のですが、少し残念です。でも皆さんのおかげで大変勉強になりました。
また、根本的に違うやり方、考え方等あればご教授ください。ありがとうございました。
278みゅう:03/02/26 09:52
264>ありがとうございます。
  ちょっと試してみます。今、週1,2回しかネットを見る機会がないので
  なんともいえないんですけど、またそのときに結果を報告します
279名無しさん@そうだ選挙にいこう:03/02/27 12:03
改行が全くない10,000文字程度のテキストファイルがあります。
中身は120文字で1レコード分の固定長データになっています。

これをテーブルに読込むのにはどうしたら良いでしょうか。
>>279
VBA使うしかないだろうねい…
281279:03/02/27 13:39
VBAでどうやれば良いですか?
GetでもInput#でも読めない感じです。ちなみに97でやってみてます。
28280:03/02/27 14:29
>279
280さんではないんだけど、こんなの書いてみた。
一応手元の120固定の引落しの結果のデータからバイナリエディタで改行取っ払ったもの、
17520バイトを改行付きにでけた。
別ファイルに書き出すんじゃなくて、Daoでテーブルに書き込むように改造するなり
よくわからんならこれで書き出したのをインポートで取り込むなり。
注:何バイトまでいけるかはテストしてないから不明。PCにもよるかも。
  全角文字は考えていないよ。Access2000で作ったから97で動くかはわかんない。

Dim FileName As String
Dim NewFileName As String
Dim TextLine As String
Dim Temp As String
FileName = InputBox("取り込むファイルの名前をパスつきで入力。「C:\Windows\temp\test.txt」のような感じで。")
NewFileName = Left(FileName, Len(FileName) - 4) & "New.txt"
Open FileName For Input As #1
Open NewFileName For Append Lock Write As #2
Line Input #1, Temp
 Do Until Len(Temp) = 0
  TextLine = Left(Temp, 120)
  Temp = Mid(Temp, 121)
  Print #2, TextLine
  Debug.Print TextLine
 Loop
Close #1
Close #2
283279:03/02/27 15:38
やたー! 出来ました!
ちゃんと取込めてます。>>282さん、ありがとー! (^∀^)ノ
284名無しさん@そうだ選挙にいこう:03/02/27 15:42
ファインキャッシング
”一週間お利息無料制”当社の商品なら
一週間以内に返せば、何度借入してもお利息は頂きません。
早く返せば必ずお得。初めての方でも安心の
”一週間無利息キャッシング”!
パソコンからは
http://www.ez-cash.ne.jp/pc/
imodeからは
http://www.ez-cash.ne.jp/i/
jskyからは
http://www.ez-cash.ne.jp/j/
285みゅう:03/02/27 18:16
>264さん
ありがとうございました。無事見えました。

それにしても、マシン次第で消えたり消えなかったりって不思議です
それも、全部消えるのではなくて、ツールバーの一部だったので。

ありがとうございました
286282:03/02/27 19:42
「Line Input #1, Temp」じゃなくて「Input #1, Temp」の方がいいかも。
Line付けてたのは前に作った時のを元にしたから。(違いはHelpみてね)
で、InputよりGetで1レコードずつ取った方がいいのかなあと作ったのが↓。
ただ、OpenしてCloseしてを何度も繰り返すから>282より遅い。
元のファイルより後ろから取り込むとAscすると0になるデータで埋まったものが
返ってくるみたいだから、それでLoopを出てる。(ちなみに数字の0は48を返すよ)
「Type ReData」は手元のもの依存。そちらのデータに合わせた区切り・変数名にしてね。

Public Type ReData'ここから
 Bank As String * 20'銀行番号(5桁+15個スペース)
 Siten As String * 22'支店番号(3桁+19個スペース)
 KouzaType As String * 1'口座種別(普通とか当座とか)
 KouzaNo As String * 7'口座番号
 KouzaName As String * 30'口座名(半角カナ)
 Kingaku As String * 10'金額。
 Shokai As String * 1'初回か2回目以降か
 KeiyakuNo As String * 20'頭の方は代理店番号かな?
 Kekka As String * 1'引き落とせたか、落とせなかったか。
 Umetate As String * 8'あまりをスペースで埋めて120ちょうどにしてるのかな?
End Type'ここまで はモジュールを作ってそこに置く。

もうすこししたら同じようなことやらないといけなそうだからちょっと真面目に
コメントつけてみたり。 続くよ。
287282:03/02/27 19:51
Private Sub 取込ボタン_Click()
Dim FileName As String
Dim Temp As ReData
Dim LoopNo As Integer'Integer型の最大の3万ちょいが取り込めるたぶん限界。もっと必要ならLong。
FileName = InputBox("取り込むファイルの名前をパスつきで入力。「C:\Windows\temp\test.txt」のような感じで。")
'毎回同じファイル名を取り込むなら「FileName = "C:\Windows\temp\test.txt"」とかの方がいいかも。
 LoopNo = 1
 Do
  Open FileName For Random As #1 Len = 120
  Get #1, LoopNo, Temp
  If Asc(Left(Temp.Bank, 1)) = 0 Then'左1文字をAscして0が返ってきたら出る。
   Exit Do
  End If

  Debug.Print Trim(Temp.Bank) & "," & Trim(Temp.Siten)
  'とりあえずデバッグウインドウに表示。Daoなりフォームなりで取り込んでね。

  LoopNo = LoopNo + 1
  Close #1
  If LoopNo > 1000 then'無限Loopしかねないから、1000件でとりあえず止める。
   Exit Do
  End If
 Loop Until Asc(Left(Temp.Bank, 1)) = 0'If Asc〜と同じことだけど、念のため。
Msgbox("取り込みおしまい")
End Sub
お前優しすぎ。
勉強ならん。
289名無しさん@そうだ選挙にいこう:03/02/27 21:20
Win2000 AC2000
帳票形式のサブフォームを使っているのですが、その中にチェックボックス
があって、チェックがついている行だけその行の背景色を変えたいんですけど
どうすれば出来るでしょうか?
290名無しさん@そうだ選挙にいこう:03/02/27 21:21
成績管理をしている身で大変恥ずかしいのですが
元のデータを無くしてしまったmdeファイルはどのようにしていじればよろしいのでしょうか?
テーブルとクエリーとマクロ以外はいじれない。
>>290
通報しますた。
293279:03/02/28 09:36
>>286-287
いやー、まさにこれでした。
テキストファイル上の銀行,支店コードを統廃合後のに置換えてちょ。
とか言われて試したら、なかなかインポート出来なくてこまってたんです。

前回のと合わせて、ヘッダ、フッタ処理と、エラー文字チェックをつくれば
行けそうです。

>>282さん本当にありがとうございました。
294bloom:03/02/28 09:47
>>288
でも、こういう優しい人がいるから
ROMってるだけでも勉強になるのでした
296名無しさん@そうだ選挙にいこう:03/02/28 18:56
テーブルに1000のデータがあります。そのデータの500番目あたりに別のデータを挿入する事はできますか?
エクセルで言う行の挿入みたいなのが出来ればいいのですが。
297名無しさん@そうだ選挙にいこう:03/02/28 19:06
>>296
データベースについて基礎から勉強しなおしたほうがいいよ。
何が分からないのかがわからない。
298名無しさん@そうだ選挙にいこう:03/02/28 19:16
>>297
すいません。テーブルに47都道府県を入力したとして、福島県だけ入力を忘れました。今から入力すると沖縄県の下に入力される事になってしまいます。今から福島県を山形県の下に入力することは可能でしょうか?
>>298
なぼのページでも見に行け。それでも納得いかなければ、エクセルに
テーブルをエクスポートして行の挿入でもなんでもして、アクセスに
インポートしなおせ。
300297:03/02/28 19:47
データベースにおいて入力した順番なんて何の意味もない。
ORDER BY してるフィールドはないの?
何でソートしてるの?
301298:03/02/28 19:49
すいません
なぼのページとは?
302名無しさん@そうだ選挙にいこう:03/02/28 19:55
あの女むかつくよな・・ボソッ
俺はなぼのサイトの情報でメシ食ってる。足向けて寝られないよ
305名無しさん@そうだ選挙にいこう:03/02/28 21:00
ナボタソ、ハァハァ・・
306298:03/02/28 21:46
社員が1000人いて、社員番号も決まっていたとして、今月から全員社員番号が変わるとしたら、テーブルの社員番号の効率のいい変更の仕方を教えて下さい。
>>306
他の関係するデータによって色々変えれば?
更新クエリでなんとでもナルでしょう
ちなみに、急に社員番号変えても他に影響でないのかな?
他部署とか統一してACCESSで逝っているのでしょうか・・・
308306:03/02/28 22:07
そうなんです。他の影響が心配。
普通、移行期間を設けないか?
その間、旧番号と新番号を別フィールドで保守して、
新規の更新は新番号を基準にして移行を進める。
旧番号がなくてよいと見極めがついたら消去。
みずほのような能無しぞろいならともかく工夫しようはあるだろ。
>>306の会社はうんこってことでひとつ。
>>306
何の為のリレーションかと小一時間(略
どういう設計してるの?
新しい社員番号の生成基準も分からないし。
312306:03/03/01 09:08
>>309
そういう方法があるのですね。ありがとうございます。

>>311
部署の見直し、統合等により…、決める人と作る人は違うという事で
>>306
制約や整合性をちゃんと考えて設計されていれば、何の問題もない。
元設計が糞
314名無しさん@そうだ選挙にいこう:03/03/01 17:43
教えて下さい。
フォームでコマンドボタンを押すと、
レコードセレクタ(でいいんですよね、左端の三角とか鉛筆印とかでるところ)に
コントロールを移動させたいのですが、どうすればよいでしょう?

何をしたいかといいますと、表形式フォームから
コマンドボタンで同じソースの
同じIDのレコードの単票フォームに飛ぼうとしているのですが
もとフォームのレコードが新規だった場合、
同じIDの単票フォームのレコードがまだ存在していないようで
拾って来れません。
試行錯誤の結果、レコードセレクタに一旦飛べば確定されることが分ったので
その後で単票フォームを開いたら上手くいくと考えました。

よろしくおねがいします。
また、「こうやった方が早い」というのもあれば併せて
教えて下さい。
>314
コントロールウイザードが効いた状態でコマンドボタン作るとレコードの保存が
作れるから、それのDocmd〜〜ってとこをパクるってのはどーだい?
>314
データシート形式のフォーム上のフィールドにクリック時のイベントプロシージュアを設定し
「パブリック変数にCurrentRecordを代入したあと単票形式のフォームを開きその変数の
レコードにジャンプする」というコードを書く。
317名無しさん@そうだ選挙にいこう:03/03/02 13:26
Win2000 AC2000
家計簿サンプルデータ−ベースをデスクトップにアイコンを作りたいのですが、
どのようにすればよいのでしょうか?教えてください。
318名無しさん@そうだ選挙にいこう:03/03/02 14:34
右クリック - 送る
319名無しさん@そうだ選挙にいこう:03/03/02 14:41
>>317
はあ?寝るよ。
320314:03/03/02 22:46
>>315,316
レスありがとうございます。
火曜の夜まで会社に戻らないので試せないのですが、
イメージは掴めましたので戻り次第やってみます。
ありがとうございました。
321名無しさん@そうだ選挙にいこう:03/03/03 05:42
bitmailproみたいなのってAccessだけでつくれるの?
>>317
Alt押しながらデスクトップにドラッグ&ドロップしてみ。
>>321
Outlookでも使わないと無理じゃないの?
mapiとかAccessで使えない気も。
Set objOl = New Outlook.Application
なんて参照するだけでも。
323名無しさん@そうだ選挙にいこう:03/03/03 09:17
324名無しさん@そうだ選挙にいこう:03/03/03 09:31
f
325名無しさん@そうだ選挙にいこう:03/03/03 12:34
あのドリームネットが更にパワーアップ!メルマガ発行も行います!!
広告収入と登録収入、4種の収入をゲットしよう!!
(1,000〜50,000円の広告収入と新規登録者が出ると5,000円×登録人数)
リンク広告収入と新規登録収入の二つの収入が発生するシステムを組込んだ出会い・
ゲーム・占い他のバラエティーホームページのオーナーになりませんか?
サポートページ充実メール打てる人・コピペ出来る人ならビジネス可能です。
あなたの仕事はサポートを利用したりして完成されたホームページをPRするだけ!
いま、キャッシュバックキャンペーン実施中で年間保守料が無料のチャンス!!
あなたもこれを機会にオーナー登録しましょう。
申し込みは↓からです。
http://drmnt.com/cgi-bin/main/bus_main.cgi?gaccid=5213

オーナーとなるHPは以下の2種類です。
http://drmnt.com/i/5213.html
(↑携帯用アドレス)
http://drmnt.com/5213/
(↑PC用アドレス)
>>306
>部署の見直し、統合等により…、決める人と作る人は違うという事で
この場合、違う人間が担当するのが問題じゃなくて、作る人が無能過ぎ
るのが問題だね。
データベースで入力順って....
327名無しさん@そうだ選挙にいこう:03/03/03 23:17
>322 323 ありがd、調査してくる。
328名無しさん@そうだ選挙にいこう:03/03/04 11:01
こんにちは。
Access2000で、クエリーの全外部結合(テーブルの両データとも表示する)はできるのでしょうか?
329名無しさん@そうだ選挙にいこう:03/03/04 11:44
330314:03/03/04 15:12
出来ました。ありがとうございます。

>>306さんの会社って、部署の見直しで社員コードが変わるということは
今後、人事異動の度に社員コード振り替えが起きそうですね。
社員コードじゃないキーを持ってDBではそちらで管理したらどうでしょう。
>328

・自分でやってみたのか?
 やってない→氏ね
 やってみた→、どこまでやって、どういう現象が出たのか?を書け
・ヘルプは見たか?
 見てない→氏ね
 見た→どこを見て、どういう見当をつけているのか?を書け



更新クエリーがうまく行きません。
誰か教えてください。
>332
こっちは期待できるかな。
334名無しさん@そうだ選挙にいこう:03/03/05 23:24
今からAccess2000を購入するのはやめといたほうがいいですか?
Windows98、Office2000パーソナルを使用してます。
>>334
どういった用途に使うんでつか?
336334:03/03/06 00:24
>>335
Oracleの入門書を買ってきたのですが、その中で実践例としてVB6.0とAccess2000を
使っているんです。
VBはありますがAccessがないのでどうしようかと。
今さら単体のAccess2000を買ってよいものか……と悩んでおります。
337名無しさん@そうだ選挙にいこう:03/03/06 00:44
▼▼雑誌にも紹介された優良サイト▼▼
           ■■http://pink7.net/yhst/■■
>>336
普通にOracle&VBでやりゃあ良いじゃねーか。
Oracle始める為に入門書買ってきたんじゃねーのか。
アフォか。
339名無しさん@そうだ選挙にいこう:03/03/06 10:13
win98&Access2000使っています。
AccessVBA上から他のファイル(.xlsファイル)をコピーし
指定した場所へ名前を変えて保存したいのですが..

可能だとは思うのですが、オブジェクトの操作(?)ってのがよくわかりません。
どなたか助けて下さい〜
>>339
ファイルのコピーと名前変更だろ
ヘルプ嫁!
341名無しさん@そうだ選挙にいこう:03/03/06 11:05
>>340
VBA上から自動でやりたいんですてばさー
>>341
VBAのヘルプ嫁!
>>339
VBAのファイル操作関数を使うのもいいけど、この際だからファイルシステムオブジェクトを覚えませう。
こんな感じ。

Dim objFS As Object
Set objFS = CreateObject("Scripting.FileSystemObject")
Call objFS.CopyFile("コピー先ファイルフルパス", "コピー先ファイルフルパス")
Set objFS = Nothing
344343:03/03/06 12:50
間違えた(w
Call objFS.CopyFile("コピー元ファイルフルパス", "コピー先ファイルフルパス")
>>339

ファイルをコピーしたい
   ↓英語にすると
FileCopy
   ↓ステートメントは?
FileCopy そのまんま、、、、、
>>341

FORMAT C:
FORMAT D:
347339:03/03/06 16:32
>>343=344
ありがとう!
ちゃんとできましたー

>>346
ついでにありがとう!
348名無しさん@そうだ選挙にいこう:03/03/06 17:03
◆ようこそ!!ピンクエンジェルです★
http://www.pink-angel.jp/betu/index.html
>>343-346
おまいら、みんなやさしいなぁ


・自分でやってみたのか?
 やってない→氏ね
 やってみた→、どこまでやって、どういう現象が出たのか?を書け
・ヘルプは見たか?
 見てない→氏ね
 見た→どこを見て、どういう見当をつけているのか?を書け


>346に関して、御礼を言ったりやさしいとか言っていいのか?
>>351
不覚にもワロウタ (^◇^;
353名無しさん@そうだ選挙にいこう :03/03/06 22:58
【質問】(ACCESS97)があります。
  mdbのリンクテーブル名・列名の変更があるんだけど、mdbを一気に変換する方法ってあるんでしょうか?

かなりクエリーがあるんで、1個ずつ変換するの大変なんですぅ。
354353:03/03/06 23:02
ごめんなさい、OS忘れてたわ。
winNTです
>>353
まず、あなたが何をしたいのかがわかりません。
あとは>>350を嫁
356353:03/03/06 23:24
>>355に理解してもらえるか分かりませんが、チャレンジしてみます。

<現状>
1.リンクテーブルを参照しているmdbファイルがあります。
2.そのmdbファイルには沢山クエリーがありあます。
<テーブルレイアウトの変更>
3.テーブル名及び列名が変わってしまいます。
<私のしたいこと>
4.変更のあったテーブル名・列名を一気に変換できる方法を模索しております。
<その他>
クエリーの各項目先を1つずつ変更するのは大変すぎる

どうぞ、よろしくお願いします。
>>356
大変ならしない方が良いぞ
>>356
QueryDefだな
359らんさ:03/03/07 00:46
教えてください。
win2k、access2k環境です。
パラメータクエリで抽出条件を 10以上20以下 のように範囲で指定することはできないのでしょうか?
ダイアログボックスに <= 10 and >=20 と記入しても抽出されずに困ってます。
よろしくお願い致します。
360名無しさん@そうだ選挙にいこう:03/03/07 01:43
>>359

Between
>>359
>=10 and <=20じゃないの?
ACCESS2000のアップサイジング機能を使って、SQLServer2000にテーブルなどを
移したいのですが、テーブルの移動がスキップされましたと言われ全然アップサイズ
されません。ログにもスキップされましたとしか出てこないのですが、原因がわかる
人居ませんか?ちなみにオフィス2000のパッチはあてました。タノンマス。
363名無しさん@そうだ選挙にいこう:03/03/07 10:08
>>356
1.沢山のクエリーには一切手を加えない。
2.旧リンクは名前を変えるか削除する。
3.新テーブルへリンクを作成。
4.新テーブルの列名を旧名称に変えるだけの選択クエリーを旧リンク名で作成。
5.今までのクエリーはそのまま使う。

※もっと良い方法
元テーブルには余計な変更を加えず、テーブル設計を弄ろうとしている香具師をクビにする。
>>363

> 4.新テーブルの列名を旧名称に変えるだけの選択クエリーを旧リンク名で作成。

エイリアス変換 + SQLネストのオーバーヘッドはどのぐらいだろう?
(無視できるレベル??)
365名無しさん@そうだ選挙にいこう:03/03/07 12:37
>>364
正直、虫で切るレベルとは言えない。レコードが多ければ。

でも、Accessオンリーで使い物になっているアプリなら、
ちょっと速いPCで処理させれば、なんとかなるレベルである事が多いし、
サーバー側が別のDBMS(オラとか)だったら、遅くて困ったクエリーから
手を入れて(パススルーに変更して、サーバー側に処理させるとか)
なるべく変更すくなくした方が、いろいろ楽な感じ。
366364:03/03/07 13:04
>>365
ありがとう。参考になりますた。

というか、だいぶ以前(3〜4年前)にやったことあるよ、「名前対応」クエリー。(藁
当時のスキルでは、SQLを自動的に書き換えるなんて思いも及ばなかった。
(あまりのアホらしさにモチベーション下がりまくりだったw)

今だったら、別のアプローチを考えると思う。
367名無しさん@そうだ選挙にいこう:03/03/07 13:12
あるテーブルのフィールドを別のテーブルのフィールド名にしたいのだけれど
VBA使わずにできるのでしょうか?
>>367
多分それだけの情報だと
テーブルをデザインで開いて好きなように変えろ
とかっていう答えしかできないよ
369367:03/03/07 13:58
ACCESS2000を使用しています。

3つのフィールドをもつテーブルAがあります。このテーブルAの2つめのフィールド1のデータを
テーブルBのフィールド名として使用したいのです。

【テーブルA】
ID フィールド1 フィールド2
0   商品名   name
1    型番   type
2   メーカー  maker
3   分類    family
4    価格   price

【テーブルB】
ID  商品名  型番  メーカー  分類  価格  ・・・・・・

ID以外はテーブルAのフィールド1のデータをフィールド名(カラム名)として自動的に
設定されるようにしたい


 
>>369
VBAとSQLを使わなきゃ無理だろ。
つうか、変な仕様だな
何がしたいんだ?
371名無しさん@そうだ選挙にいこう:03/03/07 17:06
win98・access2000です。
削除クエリを実行しようとすると
「指定されたテーブルから削除できませんでした」と表示され削除できません。
ヘルプを見ると読取専用か権限がないからだと書いてありますが
そんなことはないと思います。
そのクエリをレコードビューにしてレコードをセレクターで選択しDELETEを押すと
ちゃんと削除されます。
どうすれば削除クエリからレコードを削除できるでしょうか?
怪しいところをご指摘下さい。
>>367
最終的に何をしたいのかを書けば、もっと良い方法を教えてもらえると思うよ。
>>372
おまえが教えてやれ
>>373 = 無責任





・・・と火に油を注いでみるテスト。
VBA使いたくない理由がわからん
>>375
ていうかそういう構造にしたい理由がわからん。
もしかしてフィールド2をフィールド名にして
Bと同じものを作ると表記が英語になる仕掛けが欲しいとかか?
>>369
VBAでCreateTableのSQL文で対応すれば?
いきなりで、しかも過去ログを読まずにカキコしてスマソですが、
ACCESS2000の(マクロの入った)ファイルを、ACCESS97に変換してくれる
ところはありませんか?

先方がDQN会社でさ、ACEESS97しか持ってないでやがんの(w
>>378
Access2Kのデータベースの変換を使うのは駄目なのか?
それともネタなのか?…
>>378
Access97に接続したシステムを導入しているだけかもしれないじゃねーか。
相手会社をDQN扱いする前にシステム更新にかかる時間と金の事とかもっと
勉強した方がいいよ。
381名無しさん@そうだ選挙にいこう:03/03/08 12:25
>>378
折れが¥100000000/マクロくらいで引きうけるぞ!
>>380

つうかさあ、正直、>>378の会社の方がDQNに見えるんだけど、気のせい?
383名無しさん@そうだ選挙にいこう:03/03/08 17:29
レポートのテキストボックスに表示される文字列を、
天地逆さまに表示したいのですが、どのようにすれば良いのでしょうか?

Access2002です
>>383
テキストボックスをさかさまに配置すれば?
385383:03/03/08 18:48
>>384
wordのワードアートのように、角度指定で回転できるようなメニューが
あるのでしょうか?

プロパティの書式には見当たらなかったのですが、逆さまに配置する
方法を教えてもらえないでしょうか?
386名無しさん@そうだ選挙にいこう:03/03/08 22:47
>>385
.  _, ._
<ヽ`∀´>y―~~~ TVを逆さまにしるニダ!
387名無しさん@そうだ選挙にいこう:03/03/08 23:09
てsてs
このスレも終わりだな
389名無しさん@そうだ選挙にいこう:03/03/09 00:48
>>383
外字で逆さま文字を作る(w
だいたいなんでそんなことをする必要があるんだ?
>>383
リッチテキストボックスならどうにか…
てか、なんでさかさま?
391383:03/03/09 07:23
>>389 >>390
窓付き封筒で使用するA4のレポートなのですが
A4用紙の下にミシン目で切り取って使用する郵便振替用紙が2枚付いていて
上の余白が宛名部分になります

振替用紙と宛名部分に差込印刷を行うのですが、封筒の窓のレイアウト上
どうしても宛名部分は天地逆に印刷しないと駄目なんです

紙の折り方を変えて、裏面に印刷する方法も考えましたが、両面印刷ユニットも
無いし、時間も2倍かかってしまうので・・・

一旦印刷して、紙を逆に挿入してもう一度印刷する方法は、紙詰まりが多いのと
振替用紙と宛名が一致しているかチェックしなければならないので、どうしても
1回の印刷で済ませたいのです

>>390
リッチテキストボックスですか・・・ 調べてみます
>>391
その用紙の設計に問題はないでつか?

ソフト代金の振込請求などで、同じような用紙(宛名と振替用紙が同一用紙)を
時々受け取るけど、どれも同じ方向に印刷されてて、>>391 さんのようなの
見たことないなぁ。

特殊事例を固守して、将来プリンタやソフトを置き換えた時も同じ設定
やり直すような手間をかけるより、用紙以外の設備でできることにあわせるのが
生産的でつよ。

用紙のストックがたくさんだったり、会社の方針だったらしかたないけど。
393383:03/03/09 14:46
>>392
うちの場合、振込用紙が2枚なんですよ・・・
通常の振込用紙1枚の場合は、均等に3つ折して長3封筒に入るんですけど
振込用紙2枚だと、1枚あたりの高さが115mm A4の縦が297mmなので
115mm・115mm・67mmという不均等な3つ折になります

既成の窓付き封筒は上側に窓がついているので、67mmの部分に宛名を印刷するには
どうしても逆さまに印刷する必要が出てくる訳です

封筒の印刷(自社名)を逆さまにすれば、伝票は同一の向きで印刷しても構わない
のですが、やはり封筒の表書きとして、お客さま名より自社名が上に来るのはマズイかと

片面印刷と既成の窓付き封筒にこだわる理由は、工程の簡略化による手間とコストの
削減です。

ちょっと特殊な(?)プロパティの設定などで、簡単に「逆さま印刷」が出来ると
思ってこちらで聞いたのですが、どうやら一筋縄ではいかないようですね

仕方ないので、用紙レイアウトから根本的に見直してみようかと思います

ご質問に答えて下さった皆様方、ありがとうございました
394392:03/03/09 16:16
>>393
2枚綴りも受け取ったことありまつ。次のどっちかのパターンでしたね。
1)振込用紙以外の余白にプリントされた宛名を、封筒の窓に表示。
  確かに窓は封筒の下側で、社名が右上にあったけど、漏れは気に
  ならなかったでつね。
2)振込用紙の振込人欄にプリントされた郵便番号・住所・氏名を、
  封筒の窓に表示しているもの。
  これは窓が封筒の左中央あたりにあって、社名は横か下側。
どっちも宛先と振り込み欄が同じ方向に印刷されてまつた。
>>393 さんのようなの受け取ったことないので明言できないでつけど、
宛名と用紙が逆方向に書かれてたら広げて読むときにひっくり返さないと
いけなくて、かえって迷惑そうでつよ。
暴言多謝。
395名無しさん@そうだ選挙にいこう:03/03/09 22:12
>>393
フォーム自体を変更するか、代行業者でも使った方がいいと思うけど。
396名無しさん@そうだ選挙にいこう:03/03/10 01:41
ステータスをチェックするデータベースを組む場合。
プルダウンメニューから 未着手、着手、修正中、中断、完了
という5段階で進捗をちぇっくするとします。
ステータスを変更した際の日時を記録していきたいのですが
どのようなテーブル構造を作成すればいいでしょうか?
修正は複数回発生したり、中断の後、修正中に戻る事が予想されます。
397名無しさん@そうだ選挙にいこう:03/03/10 02:18
見当違いな質問だったらごめんなさい

厳密な意味でサーバーといったものではないんですが、
1台のPC中にあるいくつかのMDBファイルのテーブルを、
4台のPCからリンクで引っ張って突っつき回しています
(すべてAc2000)
ときどき、このリンクテーブルが読み書きできなくなる
現象が起こります。

そのテーブルに読み書きする処理を実行すると、プチフリーズ状態。
しばらく放っておくと、
「XXX(テーブル名だったかMDB名だったか)が認識出来ません」
みたいなメッセージが出てきて、「終了」か「OK」かの選択を
求められます。
「終了」を押すと、砂時計のまま(コード中にDoCmd.Hourgrass true
が入っているため)
「OK」を押すと、いきなりバーッとコード画面。
(みっともねえ・・・職場のDBなんですが、素人の僕の自作です)
慌ててXボタンを押して引っ込めると、いつの間にか正常動作に
戻ってたりして

読み書きの処理はいちおう使用中フラグをたてながら行わせているので、
他のPCとかち合っているようなことはないと思います(自信はないですけど)

共有データが置いてあるPCのメモリが足りないのかなとも考えましたけど、
これも全く根拠はありません(Win2K、128MB)

何台ものPCから突っつき回しているためにMDBが壊れたというわけでもなさそうです。

どういった原因が考えられるでしょうか。
398名無しさん@そうだ選挙にいこう:03/03/10 03:23
>>397
データ部分とプログラム部分、ちゃんと分割してる?
399名無しさん@そうだ選挙にいこう:03/03/10 03:26
>>396
記録したい日時って、最新だけじゃなくて全て?
最新だけだったら、日付入力用のフィールドを追加するだけ。
全てだったら、日付入力用のテーブルが必要になる。
400名無しさん@そうだ選挙にいこう:03/03/10 03:50
>>397
>慌ててXボタンを押して引っ込めると、いつの間にか正常動作に
>戻ってたりして
ってことがあるのなら、デッドロックしてタイムアウトしてる感じだね
>(自信はないですけど)
を見直した方がいいのでは
プログラムを1ステップずつストップさせながら突っつきあいをテストして、再現できないのかな
401397:03/03/10 04:26
>>398
>>400

レス感謝します。
いまAccsess関連のサイトずっと回ってきて、ヒントらしいものも得られず
焦っていたところなんで、涙が出そうなほど嬉しい。

>>データ部分とプログラム部分
分けてます分けてます。
もうバラッバラに。
データだけでも12個のMDBに分けてます。
もしかして多すぎ、だったりして・・・

ざっと思い返してみると、おかしくなるのは、比較的アクセス頻度の
低いMDBのような気がします。
しょっちゅう書き込みされてるMDBは、たぶんまだ問題を起こしていません。

使用中フラグに自信がない、ってのは、たしかにそうなんですよ。
フラグテーブルもメインPCの中にあって、それをリンクにしてるんです。
処理実行ボタンを押したら、まずそのフラグテーブルを見に行かせて、
0だったら1に書き換えたうえ処理開始、処理が済んだら0にもどす。
1だったら「使用中ちょっと待て」のメッセージ。
みたいな形にしてるんですが。
運用開始以来、1週間以上過ぎたいまも、この「使用中」のメッセージに
当たったっていう人が、一人もいないんです。
(つくっているときは何度も実験してちゃんと出ることをたしかめたんですが
・・・ただ、全部1台のローカルで、疑似状態をつくってやった実験です)

ともかく、明日もういちど確認してみます。
(ワンステップずつの確認ってのは、すぐにはむりかなあ。もう本格的に
稼働始まっちゃってるし)
402名無しさん@そうだ選挙にいこう:03/03/10 04:32
>>401
やっぱり使用中を判別するフラグが機能してないのかもしれないね。
>>400氏も言ってるけど、まずはその部分のプログラムの見直しから。
それでもわからなかったら、ここにコードを晒してみるとか。

おれも同じような立場だから気持ちはよくわかる・・・
がんばれ!
   ,.´ / Vヽヽ
    ! i iノノリ)) 〉
    i l l.´ヮ`ノリ <先生!こんなのがありました!
    l く/_只ヽ    
  | ̄ ̄ ̄ ̄ ̄|
http://saitama.gasuki.com/wara/
せめてSQL鯖にしる!
405みゅう:03/03/10 10:16
すいません質問です。
とあるシステムで、画面の入力項目のところに、入力規則の条件を指定し、桁数のチェックを行ないたいたいと思ってます。
入力する文字は、半角全角両方使用します。
現在以下のような条件にしているのですが、うまくいきません。半角も全角1文字と同じ換算をしてしまいます
Is Null Or LenB([項目])<=桁数
何か良い案があればnお願いします
>>405
それはOffice 2000のバグです。(SP-3で修正済みです)
全角半角交じってて桁数チェックが必要なフィールドって
中身が想像できないので的外れかもしれないけど
全角と半角が入る場所が決まっているならLeftとかMidで
切りながら判定したらどうでしょう。
フィールド内容晒せない?
>>405
Access2000(97?)以降は、内部の文字コードがUnicodeなんで半角も全角も2バイトだよ。
ヘルプで文字列操作関数関連を辿れば、そのへん踏まえたバイト数算出方法載ってる。
409名無しさん@そうだ選挙にいこう:03/03/10 12:06
はじめまして。Windows98SE、Access2000を使用しています。

Excelで自作した会社のシステムをAccessに移行することになり、
最近ようやく初心者向けの入門書を一冊終了したところなんですが、
勉強していて1つ心配なことがあったんで、質問させていただきます。
その入門書によると、「Accessでは、1つのデータベースファイルの
中にテーブル・フォーム・レポート・クエリなどのオブジェクトがひと塊
で保存される。その方が、作ったオブジェクトがどこへ行ったのか
分からなくなるといったトラブルが無いから良い」とあるんですが、
これから作るシステムは、LAN接続された複数の端末で使用します。

     端末2     端末3     端末4
    フォーム    フォーム    フォーム
      ↑       .↑       .↑
      └─────┼─────┘
         LAN接続 .│
               .↓
              端末1
             テーブル

感じとしては、端末1をサーバー(?)のように使って、端末2〜4の
入力画面でユーザーが入力した情報は全て端末1のテーブルに蓄積
され、テーブルのデータを2〜4のフォームに呼び出し→修正→更新
したりします。2〜4は同時に作業が行なわれることもあります。
このような使い方だと、フォームとテーブルは別ファイルになると
思うんですが、このようなことは可能なんでしょうか? また、可能な
場合、テーブルの情報はリアルタイムで更新されるのでしょうか?
(例えば、端末2でテーブルの「A」というレコードの情報を変更した
数秒後に端末3で「A」を呼び出すと、もう変更が反映されている)

非常に基本的な話で申し訳ありませんが、よろしくお願い致します。
長くてすいませんでした。
410名無しさん@そうだ選挙にいこう:03/03/10 13:14
昨日、Accessスレ行ったんです。Accessスレ。
そしたらなんかめちゃくちゃな事が書いてあるんです。
で、よく見たらなんか接続図なんか書いてあって、1つのデータベースファイルの方が
トラブルが無いから良い、とか書いてあるんです。
もうね、アホかと。馬鹿かと。
お前らな、複数端末なのにAccessなんか使ってんじゃねーよ、ボケが。
入力業務だよ、入力業務。
なんかLAN接続とかもしているし。一家4人でデータ入力か。おめでてーな。
テーブルの情報はリアルタイムで更新されるのでしょうか?、とか言ってるの。もう見てらんない。
お前らな、少しは教えてやるから良く考えろと。
Accessってのはな、もっとスタンドアロンか参照系フロントエンドとして使うべきなんだよ。
データテーブルは別PC上のどのmdbファイルといつリンクしてもおかしくはない、
メニューの[ファイル]-[外部データの取込]-[テーブルのリンク]でリンクすればいいんじゃねーか。女子供は、すっこんでろ。
で、リンク出来たと思ったら、隣の奴が、Accessでマルチユーザするとファイルが壊れる、とか言ってるんです。
そこでまたぶち切れですよ。
あのな、Accessでは自分で排他制御をしなきゃなんねーんだよ。ボケが。
得意げな顔して何が、Accessのmdbはすぐ壊れる!、だ。
お前は本当にクライアントサーバーってものを知ってるのかと問いたい。問い詰めたい。小1時間問い詰めたい。
お前、ロック制御って言葉さえも知らないだけちゃうんかと。
データベース通の俺から言わせてもらえば今、データベース通の間での最新流行はやっぱり、
おらくる、これだね。
Oracle9i Database Enterprise Edition。これが通の頼み方。
おらくるってのはライセンス料が多めに入ってる。そん代わり説明が少なめ。これ。
で、エンドユーザーには料金体系がわからない。これ最強。
しかしこれを頼むとバカ高い保守契約しないと説明書さえ見せてもらえないという危険も伴う、諸刃の剣。
素人にはお薦め出来ない。
まあお前らド素人は、SQLサーバーでも勉強して下さいってこった。
411名無しさん@そうだ選挙にいこう:03/03/10 13:30
>>410
久し振りに見ると、なんだか新鮮だね(w

力作、ごくろうさん。
412409:03/03/10 13:38
>>410
温かいレスありがとうです。まさかコピペ改造で回答頂けるとは(涙

>データテーブルは別PC上のどのmdbファイルといつリンクしてもおかしくはない、
>メニューの[ファイル]-[外部データの取込]-[テーブルのリンク]でリンクすればいいんじゃねーか。

ってことは可能ってことですね。どうもありがとうございました。
あと、アホ過ぎる質問ですいませんでした。
>>410
優しいなぁ…。

>>409
410の中で意味がわからない単語、片っ端から検索しる
あと>>302とかかな?
414名無しさん@そうだ選挙にいこう:03/03/10 14:08
レポートのテキストボックスの式で、
「訂正氏名」にデータがある時は、「訂正氏名」を、
空白の時は「氏名(漢字)」を表示したいのですが、
以下の式だと、「訂正氏名」空白時には何も表示されません
どこか式が間違っているのでしょうか?

=IIf([訂正氏名]=Null,[氏名(漢字)],[訂正氏名])
>>414
=IIf(IsNull([訂正氏名]),[氏名(漢字)],[訂正氏名])
416409:03/03/10 14:18
>>413
どうもありがとうです。なにしろ超初心者用入門書終わっただけの
状態なもので(汗・・・お騒がせしました。
ここに来る前にGoogleで「Access」「ネットワーク」「データベース」「共有」
などの語句で検索はしたんですが、なかなかいい情報が見つからなくて、
アホな質問だろうなと思いながらも、質問してしまいました。
とりあえず>>409が可能かどうかで、これ以上Accessを勉強する
意味があるのかどうかが決まる状況だったので、可能だと分かり
俄然ヤル気が出ました。

>>302のサイト、さっそく覗いてみました。いろいろ勉強してみます。
どうもありがとうございました。
417みゅう:03/03/10 14:22
406 そうなんですか、ありがとうございます。一応インストールするときにsp3まではあててたのですが・・・

407 ありがとうございます。
  内容はお店の名前とか場所とか、管理者とかを入力する台帳みたいな画面上のテキスト項目です(前記した)
408 半角も2バイトなんですか?しらんかったです。
   こんどやってみるです。

みなさんありがとうございました。
どうにかプロパティのところの入力規則でなくて、プログラムすることでどうにか解決しました。

ありがとうございました
418414:03/03/10 14:22
>>415
ありがとうございます
おかげで定時に帰れそうです
>>416
先は長いだろうけど頑張れ。
T'sWareの掲示板あたりも役に立つかも。
ぐぐれば出てくる。

とにかくわからない事があったら、ぐぐって調べまくれ。
それだけでも結構なんとかなる。
420名無しさん@そうだ選挙にいこう:03/03/10 16:18
Access97&2kを使用してます。

エクセルの作成済み住所データをmdbにインポートする必要があるのですが、
カラムがバラバラで、1つ一つ修正してインポートしなくてはなりません
なんとか、簡単にインポートする方法はありませんか?
421名無しさん@そうだ選挙にいこう:03/03/10 16:32
http://www.pink-angel.jp/betu/linkvp2/linkvp.html
★その目で確認すべし!!★超おすすめ★
422名無しさん@そうだ選挙にいこう:03/03/10 17:01
>>405

Access の文字数カウントは 405 の書いているとおり、Unicode で
される。StrConv を使って、システムの規定コードに変換してやると
期待通りの結果が返されるはず。

Is Null Or LenB(StrConv([項目],128)) <= 桁数
>406に関して疑問に思っているのは俺だけか・・?
>>423
メアド欄見れ。
ついでに407も
425名無しさん@そうだ選挙にいこう:03/03/10 19:35
426名無しさん@そうだ選挙にいこう:03/03/11 06:27
環境は、OSがWin2000(Sp3)でアクセス2000を使っています。
様々ヘルプも探したんだけど判らなくて教えて下さい。
今やっていて判らない事は、
フォームをデザインビューで開き、貼り付けたcmdボタンを
ツールからVBに変換しようとした時
「マクロが現在アクティブでなければなりません」と表示され、VBに変換されません
cmdボタンコマンドにはクリック時の指示やマクロも作っているのですが・・・。
素人ですみませんが、教えて下さい。

>>426
何故そんなエラーがでるのかわからんが、
"フォーム マクロを Visual Basic に変換"を使わず、
個々のマクロをVisual Basicに変換してもダメなのか?
428名無しさん@そうだ選挙にいこう:03/03/11 12:54
初心者です。
クエリで延べ時間を求めたいのですが
例えば18:00〜0:30の時などは、どうして求めればいいのですか?
エクセルなら[h]:mmの書式で24:30と入力できますが・・・
お願いします。
>>428
紙と鉛筆で計算しる。
これ最強。
>>428
俺は日付変わるところで条件分岐したことがあるけど
もっといい方法ありそうだな。
431名無しさん@そうだ選挙にいこう:03/03/11 14:16
>>428
こんなんではダメか?
NobeTime: Format(IIf([StartTime]>[EndTime],24+[EndTime]-[StartTime],[EndTime]-[StartTime]),"hh:nn")

NobeTime = クエリー上の計算式
StartTime = テーブル上のフィールド(hh:mm書式で入力)
EndTime = テーブル上のフィールド(hh:mm書式で入力)

※3日徹夜等には非対応
432y:03/03/11 14:30
もうすぐ終了するみたいです。
激レア情報も多かったので残念。
お早めに。

http://pakopako.misty.ne.jp/enter.cgi?id=fdeai
433430:03/03/11 14:41
>>431
俺と同じだ。
>>428
時刻で保存せず、日時で保存するようにDBを変更する
クエリーでごまかすより、DBの設計を見直したほうが良いと思う
435名無しさん@そうだ選挙にいこう:03/03/11 22:46
SuperTagEditorみたいな直接編集できるGridは
VBでは無いのでしょうか。

FrexGridにTextbox移動させて重ねるしかないのでしょうか。
436名無しさん@そうだ選挙にいこう:03/03/11 22:55
質問です。

VBなどでACCESSのmdbからデータを取り出したいのですが、
そのまま取り出すとテーブルの中身(フラグの値)が
そのまま連結したコントロール上に表示されてしまいます。
オラクルの場合、Decodeなどを使うことで
テーブルのデータと取り出される文字を変換できるのですが、
ACCESSにはそういった目的に使える関数はあるのでしょうか?



437435:03/03/11 23:01
投稿したのに無いと思ったら、こんな所に誤爆!
スレ汚しすみませんでした…。
438名無しさん@そうだ選挙にいこう:03/03/12 04:54
複数のDBを、フォームからボタン一発で最適化したいと思い
(日々の作業として、ひとつひとつ手動でやるのは、ちょっとつらい)
下のようなやり方を考えたんですが

Call Shell("""C:\Program Files\Microsoft Office\Office\MSACCESS.EXE"" ""C:\data\data1.mdb""/compact", 1)
Call Shell("""C:\Program Files\Microsoft Office\Office\MSACCESS.EXE"" ""C:\data\data2.mdb""/compact", 1)
Call Shell("""C:\Program Files\Microsoft Office\Office\MSACCESS.EXE"" ""C:\data\data3.mdb""/compact", 1)
Call Shell("""C:\Program Files\Microsoft Office\Office\MSACCESS.EXE"" ""C:\data\data4.mdb""/compact", 1)
Call Shell("""C:\Program Files\Microsoft Office\Office\MSACCESS.EXE"" ""C:\data\data5.mdb""/compact", 1)
・・・

これって、安全なんでしょうか?
もちろんこれでも確かに最適化は出来てるみたいなんですが、開いたり
閉じたり、何だかとんでもない苦行を強いているような気がして。
あと、どこかのサイトで、最適化はツールバーから手動でやるのが
いちばん安全確実いうような記事もあったので、ちょっと心配です。
439428:03/03/12 08:19
>>431
ありがとうございました。
440428:03/03/12 08:48
もうひとつ教えてください。
元データの日付、時刻が文字列で(例20030312、0830)となってます。
日付時刻型に変換する方法ありますか?
お願いします。
441名無しさん@そうだ選挙にいこう:03/03/12 08:58
>>440
Mid → CDate,DateValue
442名無しさん@そうだ選挙にいこう:03/03/12 08:58
443428:03/03/12 09:08
>>441
???
わかりません
もう少し詳しく教えて下さい・・・。
>>443
ヘルプ嫁
445名無しさん@そうだ選挙にいこう:03/03/12 09:19
97でDAOででコーディングしていたのですが、2000で
ADOでコーディングに書き換えようとしています。
FindFirst,NoMatchがADOでは使えないみたいですが、
とくにNoMatchに代わるものが無いか探しています。
あるレコードがあるかないか判断したいのですが、
何か知っていたら教えて下さい。
446bloom:03/03/12 09:27
>>438
ACCESS2Kなら、CompactDatabaseメソッドがある。
Shellで子プロセスを起動するより効率が良さそう。

>>445
経験的に、FindFirst,NoMatch,Seek といった処理は
レコードをメインキー順に1件ずつ参照するようなので
処理速度がかなり遅い。特に大量データでは効いてくる。
だから、Openメソッドを実行する際のSourceにWHERE条件を
付けてクエリにし、BOF,EOFプロパティを参照した方がいいヨ。

Dim CN As New ADODB.Connection
Dim RS As New ADODB.Recordset
Dim mySQL As String

mySQL="SELECT * FROM テーブル1 WHERE 条件式"
With RS
.Open mySQL, CN, dbOpen,adOpenForwardOnly,adLockReadOnly
If .EOF And .BOF Then
Msgbox "アンマッチ"
Else
Msgbox "マッチ"
End If
.Close
End WIth
448名無しさん@そうだ選挙にいこう:03/03/12 10:40
>>443

---引用-----[ヘルプ]−[トピックの検索]−[Mid関数]------
Mid 関数
バリアント型 (内部処理形式 String の Variant) の値を返します。文字列から指定した文字数分の文字列を返します。

構文
Mid(string, start[, length])

次の例は、Mid 関数を使って、文字列の中から指定した文字数分の文字を返します。

Dim MyString, FirstWord, LastWord, MidWords
MyString = "Mid Function Demo"' 文字列を定義します。
FirstWord = Mid(MyString, 1, 3)' "Mid" を返します。
LastWord = Mid(MyString, 14, 4)' "Demo" を返します。
MidWords = Mid(MyString, 5)' "Function Demo" を返します。
---------------------引用おわり---------------------------------

"20030312" → "2003"と"03"と"12" → 区切を追加 "2003"&"/"&"03"&"/"&"12"="2003/03/12"
"0830" → "08"と"30" → 区切を追加 "08"&":"&"30"="08:30"

---引用-----[ヘルプ]−[トピックの検索]−[CDate関数]------
CDate 関数の使用例
次の例は、CDate 関数を使って、文字列を日付型 (Date) に変換します。一般的には、この例のように文字列で日付/時刻を表すことはお勧めできません。文字列の代わりに、日付リテラルや時刻リテラル (#2/12/1969# および #4:45:23 PM# など) を使ってください。

Dim MyDate, MyShortDate, MyTime, MyShortTime
MyDate = "February 12, 1969"' 日付を定義します。
MyShortDate = CDate(MyDate)' 日付型に変換します。

MyTime = "4:35:47 PM"' 時間を定義します。
MyShortTime = CDate(MyTime)' 日付型に変換します。
---------------------引用おわり---------------------------------
449名無しさん@そうだ選挙にいこう:03/03/12 10:57
>>448
優しすぎ。。
教えてくんを増長させるだけだと思うぞ・・
450428:03/03/12 12:09
>>448
どうもありがとう。
助かりました。
451みっこ:03/03/12 15:23
NT4.0 SP6a Access2000 SR1 を使用しています。

入電内容を記録するシステムをDAOで作りました。
AccessのDB用ファイルを十数人ほどでLAN上で使用しています。

入力したレコードを呼び出し、このレコードを編集用のフォームで
編集したところ編集後にこのレコードが消失してしまいました。

この編集用フォームは、編集するレコードの内容を編集用の空のテーブル
に書き込んで、編集用フォームに表示します。
修正されたフォームの内容をフォーム上の編集ボタン押下時に元のテーブル
にEditするように作ってあります。

消失したことが発覚した後、テーブルを開いて消失したレコードを検索しても
見つからないのに、テーブルの並び替え(Z→A)をしたところ消失したレコード
が表示されるという現象が起きました。
並び替えを行うとテーブルの下部にあるレコード数が1つ増え、並び替え解除すると1つ
減るということも確認しました。
DBの最適化を行ったところ、消失レコードは並べ替えを行っても見れなくなりました。

原因が全くわかりません。
編集用のテーブルを初期化する以外はDeleteはしていません。
1年ほど使用しているシステムで入力編集作業はほぼ毎日行っていますが
このようなことは初めてでした。
似たような現象をご存知の方はいませんか?
>>451
AccessのDB用ファイルを十数人ほどでLAN上で使用しているという事だけど
編集用フォームではきちんと排他制御は行っているかい?
症状そのものはレコードのインデックスが壊れた状態なんだけどな。
(複数のユーザーが同一レコードを絶妙に同一のタイミングでアップデートすると
インデックスが壊れる事があるような気がするが…定かではない)

そんな訳でEditするためにOpenRecordsetする際に、dbDenyWriteオプションを
付けるようにしてはどうだろうねい?安全性は増すと思うぞ。
453名無しさん@そうだ選挙にいこう:03/03/12 18:07
>>451
2ch的に書けば、「アクセスDAOを十数人で使う時点でDQN」で片づきそうだが。
最適化はどういう運用で行ってました?

454438:03/03/12 19:20
>>447
CompactDatabase
ありがと
これって開いたり閉じたりしなくて済むんですね。
15MB超のmdb最適化ももあっという間でびっくり
455452:03/03/12 21:49
>>453
2ch的に書けば、「複数人で同時に使うサーバー&クライアントアプリを設計する際に
排他制御を考慮していない時点でDQN」って事だな。
それがJetに限らずどんなデータベースエンジンであっても悩みのタネ。
それは排他制御が同時に発生する可能性があるからで〜 (以下省略)
15MB超って...
データベーとしては極小の部類だし...
457名無しさん@そうだ選挙にいこう:03/03/13 09:21
>>455
アクセスはきちんと排他制御をしても壊れることがある気がする。
必ず再現するわけではないのだが、やっぱり複数からの接続の際の安定性は低い。

そこんとこ理解した上で使うには便利なソフトだが、
十数人というのはアクセスに任せられる許容量を超えている、というのが
一般的な認識だと思う。

そういう認識が薄いことがDQN扱いされるポイントかと。

458名無しさん@そうだ選挙にいこう:03/03/13 09:25
>>457
きちんとって、どんな排他制御してますか?(純粋に質問)
>>454
CompactDatabaseメソッドで最適化されるのはJetのオブジェクトだけ。
Forms、Reports、Macros、Modulesのテンポラリ領域は最適化されない罠・・・。

それを問題視するなら、>>438の処理を選ぶのが無難な選択。
460名無しさん@そうだ選挙にいこう:03/03/13 12:11
初歩的な質問で申し訳ないのですが、教えてください。
アクセス97を使用しています。
単票の「受注」フォームに、データシートの「受注明細」サブフォームがリンクされています。
そのときに、「受注明細」サブフォームの中に「商品」コンボボックスと
「ロット番号」コンボボックスを作成し、その際、先に入力した「商品」
コンボボックスの値から、「ロット番号」コンボボックスのドロップダウンリストに、
対応するロット番号のみが表示される、というようにしたいのです。
最初、>>121さんのやりかたに基づいて、商品名、およびロット番号が入力されている
「商品リスト」テーブルから
抽出条件:forms!受注明細!商品
のクエリー「ロット抽出クエリー」を作成して、「受注明細」サブフォームの
「ロット番号」コンボボックスの値集合ソースには「ロット抽出クエリー」を設定し、
「商品」コンボボックスには
Private Sub 商品名_Change()
DoCmd.Requery "ロット番号"
End Sub
のイベントプロシージャーを設定しました

実際に動かしてみると、「受注明細」サブフォーム単独で起動した場合には
うまく動くのですが、「受注」フォーム内で動かしてみると、「商品」コンボボックスから
商品名を選択した後に「ロット番号」コンボボックスを選択しようとすると、
forms!受注明細!商品
のパラメータを要求されてしまいます。
これは、どうやったら解決できるのでしょうか?
よろしくお願いいたします。
長文スマソです。
>>460
>抽出条件:forms!受注明細!商品
をForms!受注!受注明細!商品としてみては?

Forms!メインフォーム名!サブフォーム名!サブフォームのコントロール名
462sage:03/03/13 14:38
>>461
あ、できた・・・
ありがとうございます!
こんな簡単なこともわからん初心者は回線切っ(ry
ですね・・・。
ずぶの素人がひとりで、1週間で受発注システムを
たちあげなければならないんで・・・。
正直無理ぽですが、頑張って勉強します。
>>462
ガンガレ!当方もシロウトでつ
464名無しさん@そうだ選挙にいこう:03/03/13 19:46
保全age
465438:03/03/13 23:53
>>459
こちらもありがとさんです
全部テーブルオンリーのmdbですんで、CompactDatabaseのほうを
採りたいと思います。

クエリ、フォーム、レポート、モジュールの入ったmdbは、最適化しない、
と、ついさっき決めました。
別フォルダに無傷の新品置いて、たとえば毎月3回5のつく日の起動時に
そっちから自動的にコピーする、というような形。
いま、その具体的なやりかた決めてる最中です。
466名無しさん@そうだ選挙にいこう:03/03/14 01:16
WIN-XPでエクセルとワードがプレインストールで入ってるんだけど、
アクセスのあるオフィスは2000のしか持ってない。アクセスだけインストールできる?
467名無しさん@そうだ選挙にいこう:03/03/14 01:57
>>466
できるよ。
468名無しさん@そうだ選挙にいこう:03/03/14 03:23
アンケートに協力して!

http://multianq3.uic.to/mesganq.cgi?room=yasuhito

毎月アンケートの内容が変わるよ。

名簿フォームから名前を選んでクリックすると、その人に電話をかけてくれる
ある日とつぜんこんな機能が欲しくなった。
モデムに電話をかけさせる仕組みなんて全然分からないので、Windowsの
おまけでついているDialerでもためしにつかってみようかと考えた。

Call ShellでDialerを起動
名簿中の電話番号を、mid関数で1文字ずつ拾いながらSendKey
これでどうにか電話はかけられた。

しかし
異常に使いにくい
何より、受話器を置いても、PC側で回線切断をクリックしないと
切れてくれない。
「これじゃ指でピポパのほうが楽だ」

あ、いや、愚痴といえば愚痴、ただの日記といえば日記です

ダレカ アクセス デ ツクッテ クレナイカナ
シリアル通信するアドインがどっかに転がってた気がする
あとはATDコマンドで。
>>470
寺タームとかにやらせりゃいいんじゃん?
あとはATDコマンドで。
472名無しさん@そうだ選挙にいこう:03/03/14 09:27
DAOコーディングでRecordSourceプロパティにSQLなどを設定しておくと
、フォームをロードした時にデータを表示できますよね。ADOコーディング
で同じようなこと出来ないでしょうか?テーブルはSQLサーバーにあります。
RecordsetオブジェクトのOpenメソッドで開いて、それをMe.Recordset=Recordsetオブジェクト
をするとフォームにSQLサーバーのテーブルから取ってきたデータを表示できる
のですが、読み取り専用らしくて書込みが出来ません。
473bloom:03/03/14 09:32
474343:03/03/14 12:16
>>472
ADPぢゃだめなの?MDBに固執する理由がある?
475名無しさん@そうだ選挙にいこう:03/03/14 12:19
質問です。(ACCESS2000)
コンボボックスを自動で開くコードを作ったのですが、そのあと項目を選択したら次のフィールドに進むのではなく、
いったんそのコンボボックスでとどまるようにしたいのです。(確認をしたいのです)例えばレコードの最後にコンボボックスがあると、選択したあと確認できずに次のレコードに飛んでしまうので・・。
どうしたらいいでしょうか?

>>475
SetFocus
>472
だから何だよ

もういい加減,こういう社会不適応者にPC触らすなや
478名無しさん@そうだ選挙にいこう:03/03/14 12:47
昼間から2chなんて社会不適応者だな
479名無しさん@そうだ選挙にいこう:03/03/14 13:01
初心者ですいません。SETFOCUSでもとどまってくれないのですが・・・。
>>475
コンボボックスの右側に「確定」ボタンを作成しておく。
(ボタンを押したらレコードを update とかするようにしておく)
481名無しさん@そうだ選挙にいこう:03/03/14 13:46
昨年10月からのデータ入力を始めたのですが
日付を入力したら、2003/10/01になります。
年から入力すればいいのですが、面倒なので
なにかいい方法ないでしょうか?
>>481
すごくいろんな方法があるけど…
あんたはどうやったのよ?
Ctrl+D とかは?
483名無しさん@そうだ選挙にいこう:03/03/14 14:56
>>482
バカ正直に、2002/10/01と入力しました。
CTRL+D? いったいどうやるのですか?
484tantei:03/03/14 15:19
★あなたのお悩み解決致します!!
●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
●ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
 直通  090−8505−3086
URL  http://www.h5.dion.ne.jp/~grobal/
メール  [email protected]
   グローバル探偵事務局 

485名無しさん@そうだ選挙にいこう:03/03/14 15:34
http://www.pink-angel.jp/betu/linkvp2/linkvp.html
★その目で確認すべし!!★超おすすめ★
486名無しさん@そうだ選挙にいこう:03/03/14 16:27
Accesのレポート作成で、
格子罫線を簡単に引くことは無理なのでしょうか?
>>481
何を基準に年を判断させたいのかが分からんと、どうしようもない。
キミの脳内か?
488名無しさん@そうだ選挙にいこう:03/03/14 17:18
>480
ありがとうございました。せっかく教えていただいたのですが、違う方法考えて見ます。ごめんなさい・・。
489482:03/03/14 17:42
>>483
とりあえず上のセルの年月日を Ctrl+D でコピればいいんじゃないだろか。
日とか月とか、微調整必要なら、F2 してから Backspace で消して書き直す。
>>486
「簡単に引くこと」は無理。

天地の高さを詳細の天地と同じにして
書式設定から左右の間隔を極限まで狭める。
>>472
ADPなら書き込めたはずだが
492名無しさん@そうだ選挙にいこう:03/03/14 19:13
access2000です
重複クエリーウイザードで作ったクエリーと削除クエリーで
毎日重複(日付を<date()にして)を削除しています。
重複クエリーの方ですが、条件を2つ以上入れると固まってしまいます
(フィールド名が都道府県で抽出条件が"東京"または"千葉"など)
現在は毎回ビューで戻り条件を一個づつ入れ直していますが、
10個の県を一回で抽出させるにはどうすればいいのでしょうか?
>>492
vba使えよ
>>486
フォーマットイベントで引くとか。
Private Sub Report_Page()
 Call s_MakeCrossLine(Me, 4, 20)
End Sub
Sub s_MakeCrossLine(objRpt As Report, x1 As Long, y1 As Long)
 Dim x As Double
 Dim y As Double
 Dim i As Long
 With objRpt
  .ScaleMode = 7
  .DrawStyle = 0
  .DrawWidth = 5
  x = .ScaleWidth
  y = .ScaleHeight
  For i = 0 To x1
   objRpt.Line (x / x1 * i, 0)-(x / x1 * i, y), RGB(0, 0, 0)
  Next i
  For i = 0 To y1
   objRpt.Line (0, y / y1 * i)-(x, y / y1 * i), RGB(0, 0, 0)
  Next i
 End With
End Sub
495名無しさん@そうだ選挙にいこう:03/03/14 22:01
VBAですか…、私分からないので…
どーしましょ?
496名無しさん@そうだ選挙にいこう:03/03/15 07:17
>>495
勉強しる。
もしくはお金貯めて外注しる。
知恵も金もなければしこしこ手書きで作業しる。

497492,495:03/03/15 15:43
>>496
VBまで分からないとできないんですね…
普通のクエリーだったら、条件をどんどん入れても別に問題ないので
簡単にできるのかと思いまして。がんばって勉強してみます
498496:03/03/15 16:23
素直な方ね。
クエリー画面で、表示→SQLビュー ででてくるSQLをコピーして、
使い回すあたりからやってみそ。
499497:03/03/15 18:07
>>498
レス、どーもです!
SQLビューっていう存在自体はじめて知りました
ちょっとみた感じこれなら、理解できそうです
コピーして、いろいろイジってみまする
500名無しさん@そうだ選挙にいこう:03/03/17 00:15
ファイル名を変えると、それを参照してるクエリーとかも自動的に変わるのかな?
>>500
変わらない。
つか、なんでやってみない?
502名無しさん@そうだ選挙にいこう:03/03/17 11:35
access2000です。チェックボックスにチェックを入れるのはマウス以外ではできないのでしょうか・・・。
>>502
念力と気合で入れる(w



チェックボックスのコントロール名.Value = True
ってどこかのモジュールに書けば?
当該フォーム外のモジュールだったら「Forms!フォーム名!」がコントロール名の前に必要だけど。
504名無しさん@そうだ選挙にいこう:03/03/17 12:30
>>502
出来る、マウス以外で言うが、他のなにで入力するの。
まさか画面に向かって入れてー・・・・・と言うの。
>>502
スペースキーでオンオフできる
506名無しさん@そうだ選挙にいこう:03/03/17 12:40
皆さんありがとうございます。以前スペースキーでやった時は出来なかったのですが、今やってみたらできました。お騒がせしました!
507名無しさん@そうだ選挙にいこう:03/03/17 14:40
作業開始の最小、最大時間を出したいですが、深夜(0時以降)を含んでいて
どう計算していいか困ってます。ご教授願います。
(あちこち調べても全くわかりません)
508名無しさん@そうだ選挙にいこう:03/03/17 15:28
01:00が最小か最大かをどうやってみわけるの?
>>507
過去に出たネタだな。>>428から読んでみろ
510名無しさん@そうだ選挙にいこう:03/03/17 15:40
★ココで決まり★男の掲示板★大人のリンク集★
 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
 http://www.pink-angel.jp/betu/index.html
windows標準UIの基本でずいぶんレスついてるな。
いかにレベルが低(以下略
512名無しさん@そうだ選挙にいこう:03/03/17 17:12
>>508
0時以降は超勤なので、最大と表示したいのです。
513508:03/03/17 17:45
あっ、そう。
514bloom:03/03/17 18:04
515名無しさん@そうだ選挙にいこう:03/03/17 21:03
すいません。超初心者で、今、リレーションシップの勉強してる
ところなんですが、「リレーションシップ」ってのは結局、

フィールドがメチャクチャ多くなって、テーブルが横方向に
メチャクチャ長くなるのを避ける為に、用途や意味合いごとの
小さなかたまりにテーブルを分けて、それらにうまい具合に
同じフィールドを散りばめて連動させられるようにすることで、
「巨大な一つのテーブル」のときと同じような状態にする。

みたいなことなんでしょうか? 駄文で申し訳ないっス。
516名無しさん@そうだ選挙にいこう:03/03/17 22:14
>>515
チョットは合ってるが概ね違う。
「正規化」と「正規形」でググッてみれ!

これがわかったら、DBMS毎の物理的制限について調べてみれ〜!

がんがれ〜!
             ∩
        ∧_∧   | |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       (  ´Д`)//  < 先生!こんなのを発見シマスタ!
      /       /    |
     / /|    /      \  http://saitama.gasuki.com/wara/
  __| | .|    |         \
  \   ̄ ̄ ̄ ̄ ̄ ̄ ̄\     \_____________
  ||\             \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||
518515:03/03/18 09:11
>>516
どうもっス。「正規化」と「正規形」でググッてみて
www.st.rim.or.jp/~ryoma/tips/seikika.htm
↑これ読んだらイマイチよく分からなかったんですが、
www.pursue.ne.jp/jouhousyo/sysad/sysad012.htm
↑これ読んだらスッキリ分かりますた。

いろいろ勉強してきます。ありがとうございました!
519bloom:03/03/18 09:52
access97のレポートで"並べ替えとグループ化の設定"ボタンを押しても
"[並べ替え/グループ化] ダイアログ ボックス"っていうのが出てこなくなりました。

出てくるようにする方法お判りの方、ご教授ください。お願いします
>>520
再インスコ
522520:03/03/19 09:06
>>521
了解です!!
523520:03/03/19 11:06
会社のaccess97、すでに行方不明になってたので再インスコかなわず…。
524名無しさん@そうだ選挙にいこう:03/03/19 13:13
単に画面の下の方にあるだけと見た。
スクロールバー下げてみそ。
525名無しさん@そうだ選挙にいこう:03/03/19 17:03
Access2000、Windows98SEを使用しています。

テーブルのフォント設定について教えてください。
フォント名・サイズ等を[書式(O)]→[フォント(F)]で設定すると、
見出し(フィールド名)部分とレコード部分が一括で設定され、
フィールド名部分はレコード部分と同じ設定の「太字」になって
しまいますが、これを変更することはできますでしょうか?
例えば、
レコード部分:MS Pゴシック・9P・スタイル「標準」
フィールド名:MS P明朝・10P・スタイル「太字 斜体」
などのようにです。

また、レコード部分の背景・枠線等は[書式(O)]→[データシート(E)]
で設定できるのは分かったんですが、フィールド名部分の設定方法が
分かりません。例えば背景色グレー(デフォルト)を緑に変更するなど
は、どこで行なったらよいのでしょうか?

よろしくお願い致します。
526名無しさん@そうだ選挙にいこう:03/03/19 17:47
そこまでこだわるならテーブルだけの機能じゃダメだから、フォーム使えば?
527bloom:03/03/19 18:24
528名無しさん@そうだ選挙にいこう:03/03/20 08:12
秒から時・分・秒を取得したいのですが
うまくできません。
1854秒

時間 0
分  30
秒  54
というようにしたいのです。
よろしくお願いします。
529520:03/03/20 10:05
>>524
それも考えて、

スクロールバーがないのでわざわざレポートの小窓を下や右や左に動かして
スクロールバーを出してうねうねしたのですが発見できず。

ボタンを押してフォーカスが"[並べ替え/グループ化] ダイアログ ボックス"に行ってるであろう状態で
F4を押すと、そのレポートの元になるクエリーのフィールド名が画面の左下(スタートボタンの上)に
現れるのですが、この辺がおかしな状態のヒントにつながります?

>>528
60で割って整数部分と余りに分けれ。
時間はその応用。
やり方が分らなければ自分で調べれ。
531528:03/03/20 11:03

>>530

> 60で割って整数部分と余りに分けれ。

意味がわかりません。
「割って」って・・・??
532名無しさん@そうだ選挙にいこう:03/03/20 11:10
>意味がわかりません。
>「割って」って・・・??
何がどうわからないか、やったことをきちんとわかりやすく
かけ
教えてクンなら、とっとと消えろ
割り算もわからないのか。
Accessなんてやってる場合か?
小学校へもう一回行ったほうがいいぞ。
>>532
「小学校の算数板」とか、作る必要があるかね   ( ´д)ヒソ(´д`)ヒソ(д` )
そもそも、>>528はどうやって
1854秒→ 0時間30分54秒の計算をしたんだ?(w
536524:03/03/20 15:47
>>520
タスクバーの下に隠れてるね。
タスクバーの上端を画面一番下までドラッグして、高さ0にしてみそ。
>>486
罫線ヘルパー
538486じゃないけど:03/03/20 17:06
>>537
あら、便利だ。ROMっててもいいことがあるスレですね。
539名無しさん@そうだ選挙にいこう:03/03/20 17:11
ACCESS 2000で発注データを作っています。

20個以上の項目があるテーブルから
管理番号/郵便番号/住所/氏名
の四つの項目だけを抜き出す選択クエリを作り、
csv形式でエクスポートしたいと思ってます。

上記の四つの項目を抜き出すだけのクエリなら
ちゃんとcsv形式にエクスポートできるのですが、
管理番号の抽出条件を
Between [何番から?] And [何番まで?]
にするとエクスポートする際に
「パラメータが少なすぎます。2を指定してください。」
のエラーメッセージが出ます。

どなたかおわかりの方、ご教授いただきたいです。
↑その抽出条件って、たぶんフォーム上のテキストボックスか何かで指定
してるんだよね。

自信はないし試してみる気もないが、何となくこれでいけそうな気がする

Between Hajime() and Owari()

で、モジュールに以下を

Function Hajime()
Hajime=Forms![form1]![txt1]
End Function

Function Owari()
Owari=Forms![form1]![txt2]
End Function

ダメだったらごめん
>>540
それで動いたとしても邪道だ。

邪道を初心者に勧めるのはやめれ。
>>541
あれれ、これってどっかのサイトで読みかじったやり方なんだけど
邪道なの?
ガーン
素人の俺がつくった職場のデータベース、これ使いまくりなんだけど、
もしかして何かやばい?

だってすげえ便利なんだもん・・・ボソボソ
543539:03/03/20 17:51
>>539です。 >>540 , >>541さんありがとうございます。

抽出条件は、
クエリをデザインビューで開いて指定しました。

モジュールも勉強不足でわからないのですが、
もう少しヘルプとにらめっこしてみます。
545539:03/03/20 18:15
>>544 さんありがとうございます。

一見すんごく難しそうなのですが、
ゆっくりがんばってみます。
>>542
説明すると長くなりそうなので、アレだけど、TransferDatabaseメソッドは
使わず、DAOかADOのExecuteメソッドで処理するのが本筋。

> もしかして何かやばい?

動作には問題ない。作り方の「作法」、「ポリシー」が感心できない。
>>539
パラメータクエリに関してはここを参照
http://homepage1.nifty.com/tsware/tips/tips_083.htm

548539:03/03/20 19:19
>>547 さんありがとうございます。

挙げていただいたサイトやモジュールなどを
さらっと理解できるほどのレベルまで至ってないので、
毎回デザインビューにて
Between xxx And yyy
と指定することにします。

皆さんありがとうございました。
549520:03/03/20 19:36
>>536
それが隠れていませんでした…。
五里霧中とはこの事だ〜。
やっぱり再インストール以外の手はないんでしょうかね…。

隣の人のパソ奪って仕事するっていう手もありますが。(^^;)
550536:03/03/20 19:56
>>549
絶対に隠れてると思うのだが。。解像度を上げたらどう?
551540:03/03/20 20:33
>>541>>547
サンクス
そそ、パラメータクエリなのよ。
俺がこの関数化(んな呼び方あるか?)の便利さを思い知ったのは。
抽出条件どころか
追加クエリの、追加元のフィールドでさえ使っちゃってる。
リンク先のAccsessTipsのサイト、覗いてきました。
何つか、たしかに俺はお行儀の悪いやり方をとっていたと思う。
やっぱり素人のあさましさ。
基本も何もない、八方闇の中
「とにかく何よりも動くこと」だけを目指してドカドカ進んでいくと
こうなっちゃうんだろうな。

552名無しさん@そうだ選挙にいこう:03/03/20 23:25
>>541
問題点もあげてなければ、代案も示さない
初心者を惑わせるだけのクソレス

>>540のほうがよっぽど役にたつ。
>>544
VBのコーディングだったのでAccess用に修正しました。

Public Sub ExportCsv()
Dim db As DAO.Database
Dim strSQL As String

Set db = CurrentDb
strSQL = "SELECT * INTO " & _
"[Text;DATABASE=C:\].[Pubs.CSV] " & _
"FROM Publishers"
db.Execute strSQL
db.Close

End Sub

参照設定でMicrosoft DAO Objectをチェックしてね
554suma:03/03/21 03:14
Access初心者です
2つのテーブルをリンクさせたいのですがどのようにすれば
よいのでしょうか?
フィールドのDATAが完全に一致しない場合です。
aのテーブルに
例:
aのテーブル
code
a1 
b1

bのテーブル
code
a1 te01
a1 te02
b1 te01

というように内容の一部が一致する場合です。
よろしくお願いします。
555suma:03/03/21 03:15
というように内容の一部が一致する場合です。
よろしくお願いします。

下が切れてしまいましたので
556名無しさん@そうだ選挙にいこう:03/03/21 05:51
>>553
>strSQL = "SELECT * INTO " & _
>"[Text;DATABASE=C:].[Pubs.CSV] " & _
>"FROM Publishers"

割り込みスンマセン

ここの中段(Text…)部分で「HDR=NO」とするとヘッダーが消えますよね。
この部分で「"(ダブルクォーテーション)」を付けないように書けるんでしょうか?
557名無しさん@そうだ選挙にいこう:03/03/21 06:34
アプローダーです。エロ画像UPしなさい
http://www.k-514.com
>>556
ダブルクォーテーションをつけない方法は知らないです。
やはり、最後の方法は1レコードごとにテキストに書き出すVBAを書くしかないかも

私はExcelフォーマットに出力する方法を良く使います。
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Publishers", "c:\Publishers.xls", false
>>552
誹謗中傷のみの糞レス。>>547が眼に入らない視覚障害者(めくら)
人間のクズはさっさと死んでください。

>>556
schema.iniを使う、とか。
>>558
どうしてもって訳ではないのでいいんですが…
Accessで書き出したデータを会計ソフトにインポートする際に
「"(ダブルクォーテーション)」が邪魔だったんで…(CSVのみインポート可)

>>559
>schema.iniを使う、とか。
Executeメソッドでエクスポートを行うと出来るヤツですよね
これってCSVファイル名毎にファイル内に書かれるようですが
CSVファイル名を変えても固定schema.iniを使用するって
ことは出るのでしょうか?
561544:03/03/21 23:51
作ってみたよ
Public Sub ExportCsv(strTableName As String)
Dim fso As New Scripting.FileSystemObject
Dim objFile As Object
Dim db As DAO.Database
Dim strSQL As String
Dim strExportFilePath As String
' schema.iniの作成
Set objFile = fso.CreateTextFile("C:\schema.ini", True)
objFile.WriteLine ("[" & strTableName & ".csv]")
objFile.WriteLine ("ColNameHeader = False")
objFile.WriteLine ("CharacterSet=OEM")
objFile.WriteLine ("Format=CSVDelimited")
objFile.WriteLine ("TextDelimiter=None")
objFile.Close
' 既存のCSVを削除
strExportFilePath = "C:\" & strTableName & ".csv"
If fso.FileExists(strExportFilePath) = True Then
fso.DeleteFile strExportFilePath
End If
' テーブルをCSVに出力
Set db = CurrentDb
strSQL = "SELECT * INTO " & _
"[Text;DATABASE=C:\].[" & strTableName & ".csv] " & _
"FROM " & strTableName
db.Execute strSQL
db.Close
End Sub

参照設定
Microsoft DAO 3.6 Object Library
Microsoft Scripting Runtime
>>561
>作ってみたよ
ふぇ〜ありがとうござんす!
自宅には環境がないんで、月曜に会社でやってみます。
※割り込みなのにご親切にどーもです。
SQLサーバーのことで聞きたいんですけど、レコード追加のためにストアドプロシージャー
をつくったんです。パラーメーターが複数あるのでVariant型の配列に入れてACCESS側でCommand
文でストアドプロシージャーを呼んでいます。しかし、”textからintには変換できません”
などとエラーが出ます。”smalldateやnvarcharには変換できません”などのエラーも出ます。
パラメーターをint型の項目一つにしたときは、普通に登録できたのですがエラーの理由がわかりません。
何か心当たりのあるかたいますか?
564:03/03/23 17:31
>563
とりあえずマルチやめろよ。
565562:03/03/24 18:31
>>561
遅くなりましたが、やってみました。
OKです。ありがとうございました。
566520:03/03/25 14:47
>>550
このパソの最高解像度、1024*768で作業していて
逆に640*480にしたり、accessの窓を小さくしたりしても
やっぱりF4を押すとスタートボタンの上のところに出てくるんですよ…。
>>520
再インスコが無理だったら、面倒だけれど正常に動いているPCの
Officeのフォルダ内にある *.olb; *.cnt; *.ocx; *.dll をサイズ比較
してみてはどうだろうねい?ファイルが壊れているのだと思うのだけれど...
違うサイズのものがあったら怪しいよねえ。

それとも、Microsoft Office ダウンロードセンターから
Microsoft Office 97 Service Release 2を落としてきて当てる?
壊れてるファイルが運良く上書きされて直るかもよ。
568名無しさん@そうだ選挙にいこう:03/03/25 17:20
>566
並べ替え/グループ化のダイアログをカンで出しておいて、Windowsのタスクバーを右クリック。
重ねて表示でも並べて表示でもOK。ダイアログが出てきたら大きさ調整して下さい。
569名無しさん@そうだ選挙にいこう:03/03/26 11:27
書籍リストを作成しています。
で、簡単に検索するためのクエリを、抽出条件を下記の通り設定して
作りました。

Like "*" & [書籍名に含まれる文字を入力してください:] & "*"

しかし、検索結果が出ません。
どういう原因が考えられるでしょうか。
570名無しさん@そうだ選挙にいこう:03/03/26 22:02
ADOでコーディングしてるんですが、RecordSourceプロパティに
ビューを設定していると、読み取り専用でフォームの各フィールド
を書き換えようとすると怒られますよね?ユニークテーブルを指定
すると書き換えができるようですが、ビューにおいてJOINなどで複数
テーブルからデータをとってきてる場合、更新処理をすればいいでしょう?
フィールドを移動するたびにユニークテーブルを設定しなおせばいいのでしょうか?
それでも怒られるみたいですが・・・・。
571名無しさん@そうだ選挙にいこう:03/03/26 22:25
何故ビューという名前なのか考えてみた?
572名無しさん@そうだ選挙にいこう:03/03/26 23:06
そんなことはわかってるんだけれども、
RecordSourceプロパティにセットして、
データを取ってきて表示できるならそうしたほうが
簡単じゃないですか。コードでsql投げてデータを
取ってきてもいいんですけど・・・・取ってくる
データが10万件近くあるんですよ。それをループ
させて、フィールドに設定していくのもおそくて
・・・・。
たった十万件で文句言うな。
処理方法変えろ。
自分の方法しか知らないからじゃねーのか。
他の方法模索するくらいの根性出せ。
ACCESSなんて使えネーよ。やめちまったほうがいいぞ。
たった、5万件程度でへいこらへいこらしてんだから。
>>573のような奴に限って何もしらねんだから放っておけ。
575名無しさん@そうだ選挙にいこう:03/03/27 00:44
たった十万件って言うなら、さぞかしよい方法を持っているんでしょう。
573が自分のやってる方法を書いてくれるよ。書けるんならねw
576名無しさん@そうだ選挙にいこう:03/03/27 01:47
ご教授よろしくお願いいたします。
別な板で質問したのですが、こちらで質問するのが本筋のような気がしましたので、
マルチとは思いますが、失礼させていただきます。
一から質問内容を書くと長文なのでリンクさせていただきます。

http://pc2.2ch.net/test/read.cgi/tech/1032402846/440-443

上記の流れなのですが、お知恵を貸していただければ助かります。

よろしくお願いします。
577名無しさん@そうだ選挙にいこう:03/03/27 02:31
access97の対応OSを教えて下さい
578名無しさん@そうだ選挙にいこう:03/03/27 04:17
>>577
Mac OS Xのみの対応となります。
>>572
>コードでsql投げてデータを 取ってきてもいいんですけど

自分で答え書いてるやんかさぁ (・∀・)(・∀・)(・∀・)(・∀・)ニヤニヤ
580名無しさん@そうだ選挙にいこう:03/03/27 07:12
>>578
Mac用は98だろ
581名無しさん@そうだ選挙にいこう:03/03/27 08:58
>>579
結局それかよw
582bloom:03/03/27 09:22
583名無しさん@そうだ選挙にいこう:03/03/27 09:35
メーラのデータをmdbに取り込みたいのですが、
うまい方法はないでしょうか?
outLookのデータは取り込めたのですが他の
メーラは使えません。

もしくは、Accessそのものをメーラとして使えな
いものでしょうか?
ご存じの方がおられましたらお教えください。
584名無しさん@そうだ選挙にいこう:03/03/27 10:27
>>572
ビューにこだわるなら、以下の方法はどうでしょうか?

ビューの連結フォームを作成
レコードソースプロパティを空にする
読み込みボタンと更新ボタンを置く

[ロード時]
ビューの表示内容と同じレイアウトの一時テーブルを作成
[読み込み]
SQLで10万件のビューからレコード件数を絞り込んで一時テーブルにインサート
一時テーブルのレコードセットを作成
フォームのレコードセットプロパティに一時テーブルのレコードセットを指定
[更新]
一時テーブルのレコードセットからテーブルを更新する
[フォームを閉じる時]
一時テーブルを廃棄
>>570
"RecordSource/レコードソース" プロパティ
メモ 開いているフォームやレポートのレコード ソースを変更すると、
基になるデータの再クエリが自動的に行われます。フォームの Recordset
プロパティを実行時に設定すると、そのフォームの "RecordSource/レコード
ソース" プロパティが更新されます。(ヘルプより)
586名無しさん@そうだ選挙にいこう:03/03/27 18:59
OSはWindowsMe、Access2000です。
Access2000で作ったファイルを、Access97ファイル形式にしようとしましたが、
「フィールドのデータ型が正しくありません」のエラーが出ます。
22コのテーブルからいくつかずつ削除を繰り返すうち、
そのうち特定の2コを削除するとエラーが出ないことがわかりました。

が、ここから、「何が正しくないのか」がわかりません。

2コのテーブルを構成するフィールドのデータ型は、
「日付/時刻型」「テキスト型」「数値型」で、
全部で33フィールド(18,15)です。

2000→97にする場合に、データ型のプロパティ等で使えないモノ、
エラーの原因がわかりましたら宜しくお願い致します。
587名無しさん@そうだ選挙にいこう:03/03/27 20:53
質問なんですが、例えば名簿Aと名簿Bみたいに同じ形式のテーブルを
一つにくっつけるようなことはできないんでしょうか?結構簡単にできそうに
思えてなかなかできません。初級シスアドのテキストには「併合」とか
書いてあるんですけど、googleで検索してもなかなかわからないです。

そもそも、名簿A、名簿Bみたいに同じ形式のテーブルが複数ある時点で
データベースとしておかしいのでしょうか???
>>587
Unionクエリ
589587:03/03/27 21:02
>588 なるほど、調べてみます。ありがとうございました。
590587:03/03/27 21:08
う〜む、やっぱりSQLで書かないといけないのかな・・。まあ
これを機会に挑戦してみるか・・。
591名無しさん@そうだ選挙にいこう:03/03/27 21:19
SQL文を投げて複数件データを取ってきたのですが、帳票形式
のフォームにうまく表示できません。常に最後の一件だけ表示されます。
帳票形式のフォームにADOのレコードセットオブジェクトを使ってとって
きたデータをうまく表示させることは出来ないのでしょうか?
592名無しさん@そうだ選挙にいこう:03/03/27 21:40
>>587
ヒント:クエリ
   ______________
 /:\.____\
 |: ̄\(∩´∀`) \  <先生!こんなのがありました!
 |:在  |: ̄ ̄ U ̄:|
http://saitama.gasuki.com/shinagawa/
SQLくらいで騒ぐな。
いつもお前だけだよ。騒いでるのは。
>>591
サブフォームを使え。
サブフォームを使ってます。
表示されているデータって読み取り
専用でフォーム上で編集できませんよね?
>586
2000と97で制限が違うかどうかは知らないけど、
1.97のdbsに2000のと同じテーブルを手動で作る。
2.2000で新しくdbsを1個作って新しい97のdbsと古い2000のdbsの
 コンバート出来ないテーブルをそれぞれ違う名前でリンク。
3.追加クエリで古いのから新しいのへデータを移動。
これでどうだろ?

>597
できる。追加・編集できないならレコードソースが原因だとおもわれ。
>>597
ADOを使ってるなら、SQLサーバーかオラクルなどを
使っているんだと思うけど、帳票形式で表示は出来ても
それを編集するのは無理です。読み取り専用になってる
と思うけど。ADOには”フォームのレコードソースをプログラム
野中で使うとき””レコードセットをフォームに表示しフォーム上
で編集をするとき”で制約があり、このような場合はDAOを
使うようにとなっています。
最近ACCESS2000使い始めたのですけど分からないことがあります

テーブルA 種類にあるデータを
テーブルB 商品のある商品名フィールドにコンボボックスの形で使用したいのですが
どうすればよいでしょうか?

TableA 種類
ID 種類名
1  牛肉
2   豚肉
3   鶏肉
4   馬肉
5   その他

TableB 商品
ID 商品名 種類名
1  ○○   鶏肉
2  ××   馬肉 
3  ▼▼   その他
4  □□   その他

↑TableBの種類名のフィールドにTableAの種類名のフィールドを使用したい
よろしくお願いします
>>600
コンボボックスのプロパティを見て、
値集合ソースのところに
SELECT 種類名 FROM TableA ORDER BY ID;
・・かな?
とりあえずやってみて。
602名無しさん@そうだ選挙にいこう:03/03/28 17:29
access2000です。一つのフォーム内に、二つのテーブルのデータを反映させることは出来るのでしょうか?
>>601
なるほど!
どうもありがとうございました!
604bloom:03/03/28 18:07
605わからね〜〜よ!!:03/03/28 20:09
OSは2000パーソナルでaccess2000使用のものですが、
EXCELからaccessへデータを貼り付けて使用できることは知っているのですが、
リレーションを使っているDBにEXCELからデータを貼り付けて使用することは
可能なのでしょうか?オートナンバー型をキーにしているので連結が壊れるのではないか
と心配です。
>>605
2000パーソナルって何?
>>606
最近発売されたらしい。(俺も知らなかったが)
ただし、販路は限られていて、秋葉原の怪しげな外人から買わないと
入手できないらしい。(w

その他にも、Windows 97 とか、Access 98 とか、歴史の表面に出て
いないレアものはいろいろある。(w
608わからね〜〜よ!! :03/03/28 22:16
2000年から個人的に使い出したってことだよ
609名無しさん@そうだ選挙にいこう:03/03/29 00:21
>>607
Access98ってマックで動くという幻のバージョンだよな(w
何とか入手できんものか?

100マソペソで手を打つぞ(w
>>600
その前にテーブルの設計を見直したほうがよさげな気も。
611名無しさん@そうだ選挙にいこう:03/03/29 13:12
>>610
ハァ?
アクセス

>>608
君の脳内にしか存在しないOSだから、誰も答えられないよ。(w
動作検証できないからね。(w
>611
610のアドバイス極めて松任だ
よって611は馬鹿
>>614
引用元をリンクにしない理由と、数字を全角で書く理由を小一時間(略)
616名無しさん@そうだ選挙にいこう:03/03/29 19:30
フォームに入力するとその瞬間にテーブルに反映されますよね。
それをOKボタンを押したら反映される、とかにできませんか?
>>616
できる。
>617 なるほど。ありがとうございました。
会社で使用しているオフィスを97から2000にバージョンアップする
ことになりました。さっそく、97で使用していたACCESSのファイルを
2000で開こうとすると、変換していいかメッセージボックスが出て、
変換しました。すると、全角の関数名がすべてエラーになってしまうんですが、
これは回避できないのですか。また、関数名には全角文字は使えないのですか。
例 Function 成績データ取得() as long
620:03/03/30 02:09
>619
2000で全角の関数名は別に問題なく使える。
変換に関してはよく知りません。
あとは>621が答えてくれると思いますので
そちらを参照してください。
>600
テーブルAのフィールドを種類ID,種類名、Bのフィールドを商品ID,商品名,種類ID
とした方がいいと思うよ。で、フォームで種類IDのところを601さんの様に。

>616
>フォームに入力するとその瞬間にテーブルに反映されますよね。
されてないよ。レコードの移動だったり、レコードセレクタをクリックしたり
フォームを閉じたりしたとき、テーブルに反映されてるみたい。
で、確実にレコードの保存を制御したいなら、非連結のフォームを作って
そこのボタンをクリックしたら、テーブルにデータを入れるVBA組むのがいいと思うよ。

>619
変換は知らないけど、Access2000で追加された機能でどーしても使いたい機能が
あるってんじゃなければ、Accessは97、Word/Excelは2000で行ったら?
変換するなら、これを良い機会と捉えて全角の関数名を止めて半角英数にしたら?
過去ログとか見た感じだと「使えるけど、問題がまったく無いわけじゃないよ」って
感じだし。
622わからね〜〜よ!!:03/03/30 15:44
>>608
 勝手に俺を装うなよ!訴えてやる!
>>613
 会社のPCなんだけど、WINDOWS2000PERSONALって・・・あれっWINDOWS2000PROFESSIONALになってるぞ!
 俺が間違ってるらしい・・・。
 ちなみに、悩み相談にひゃ答えてもらえるの?
>>608 >>622
とりあえず自分で貼り付けてみろ。そしたら分かる。
壊れるのが不安ならコピーをとっておけ
624619:03/03/30 20:32
>>621
使いたい機能は別にありませんが、サイズ制限が2ギガまでになるので
変換して2000形式にしたいのです。また、コントロールやクエリー内に
も全角の関数名を使ってるので、現状の全角関数のままにしておきたいのです

他のサイトを見ると、どうもAccessの変換機能を使用すると途中で
止まったりするみたいなので、テーブルやフォームなどのオブジェクトを全て
インポートして対応してみます。ありがとうございました。
ちなみに、私のところは全角関数名どころかフォームやレポートも全角ですが
、これは一般的ではないのですか。
>>624
>ちなみに、私のところは全角関数名どころかフォームやレポートも全角ですが
>、これは一般的ではないのですか。

まぁ、全裸で新宿二丁目を歩くようなものですな。  (´ー`)y−〜〜
626名無しさん@そうだ選挙にいこう:03/03/31 11:18
アクセス2000です。サブフォームの表の幅を変更することはできるのでしょうか?変更してもいったんフォームを閉じると元に戻ってしまいます。どうすればいいでしょうか?
627名無しさん@そうだ選挙にいこう:03/03/31 13:55
WinMEでACCESS2000を使用して請求書(請求明細入り)をレポートで作りたいのですが、
そのページごとの集計と全ページの集計というのは可能でしょうか?
請求明細が百件以上あるため、5ページくらいになるのです。
こんな感じにしたいのです↓

レポートヘッダー------------------------------------------------
「全ページの請求金額合計」 「全ページの消費税額合計」
ページヘッダー---------------------------------------------------
(略)
詳細-------------------------------------------------------------
「納品日」  「明細」   「請求金額」          「消費税」  
ページフッター----------------------------------------------------
        「ページごとの請求金額合計」 「ページごとの消費税合計」
-----------------------------------------------------------------
で、「全ページの請求金額合計」「全ページの消費税額合計」と
「ページごとの請求金額合計」「ページごとの消費税合計」を
レポート上で計算して自動的に入力できる方法を教えてください。
コントロールソースで式を入れようかと思いましたが式がよくわかりません。
すみませんがよろしくお願いします。
>>627
コントロールソースの式を「=Sum(請求金額 or 消費税額)」にしたものを
ページフッタとレポートフッタにそれぞれ置いてみるよろし。
>>627
http://home.impress.co.jp/books/powerful/access/access.htm
http://www.c-r.com/mo_acs97u.htm
書籍ならここらへんかな。
上のを持ってるけど結構便利。
ネット上で探すなら、「Access レポート ページ合計」でぐぐる。

ページフッターでSUM関数が使えれば簡単なのにな。
631627:03/04/01 21:11
>>628-630
うわーーありがとうありがとう〜〜!! おかげでなんとかできそうです。
まだちょっとよくわからんところがあるんですがじっくり勉強します。
ご親切なお三方に幸あれ。
632名無しさん@そうだ選挙にいこう:03/04/01 22:04
質問させてください。Access97で、フォームのオプションボタンとテキスト
ボックスへの入力でクエリの抽出を行って、レコードを検索するという画面を
作っています。

それで、その抽出結果をクリアして全件表示するというボタンをつけたのですが、
テキストボックスに入力した内容がレコードに該当しない内容、つまり
検索をかけると何も表示されないという状態でこのボタンを押すと、
レコードは全件表示されるのですが、テキストボックスに文字だけが
残ってしまうのです。

だれか解決策を教えてください、よろしくお願いします。
>>632
VBAならMe.テキストボックス.Value=""を挿入、
マクロなら「値の代入」を使ったらどうかな?
634名無しさん@そうだ選挙にいこう:03/04/01 23:04
>>633
レスありがとうございます。

それやると、フォーカスが喪失されるんですよ、そんでSetFocusとかやってみると、
「カレントレコードには”テキストボックス名”がありません」とか出てくるんですよね、
フォーカス喪失後のとこに同じマクロを入れてやってもうまくいかないです。
>>634
はしょらずにコードを全部書いてみてよ。
話を聞く限り記述ミスの可能性が高いから。
636名無しさん@そうだ選挙にいこう:03/04/01 23:54
>>635
そうですね、すみません。ただ手元にデータが無いもので。
先ほども書きましたが、クエリでデータを抽出しております。
・オプションボタンで5つの項目から選択(ただしひとつは全件表示のボタン)
・テキストボックスに文字入力後、検索するとそのキーワードを含む文字から選択

マクロでは、
・コントロールの移動(テキストボックス)
・テキストボックスの文字での再クエリ
を行って検索

問題の抽出クリアのボタンでは、
・コントロールの移動(テキストボックス)
・オプションボタンを既定値(全件表示)へ
・テキストボックスのクリア
などをやってます。

レコードが表示されない状態(ありえないカナ名を入力したときなど)
で抽出クリアを行うと、テキストボックスがクリアされません。
[テキストボックス名].[text]
""
とやっているのですが、エラーになります。SetFocusをしないといけないのでは
ないかと思うのですが、前述 >>634 のようになってしまいます。
コントロールが無いとか、カレントレコードにないとか色々・・・

もしここまでで誰か思い当たることがある方いたらレスお願いします。
明日また詳細をお伝えできるようにしてきますので、よろしくおねがいします。
        
>>636
マクロなら[Forms]![フォーム名]![テキストボックス名]だろ?
638名無しさん@そうだ選挙にいこう:03/04/02 11:49
4/1から、さいたま市が政令指定都市になって、区名が追加されたのですが
最も効率の良い変換の仕方はどうしたらよいでしょうか?

新しいIME2002の郵便番号辞書が出てから、バーコードデータをもとに再生成
しようかと思ったのですが、約半数の郵便番号も変わってしまうのでお手上げです。

>>638
町名をキーにするしかねーべ。
郵便番号辞書をテーブルにして、町名をキーとして町名を区名+町名に変更汁。
郵便番号も、郵便番号をキーとして新番号に変えればいいんでないの。


>>638

> 最も効率の良い変換の仕方はどうしたらよいでしょうか?

水爆を投下してさいたま市を消滅させる。
641638:03/04/02 14:10
>>639-640
レスありがとうございます
>>640の方法でやってみたいと思います

                \ │ /
                 / ̄\   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
               ─( ゚ ∀ ゚ )< さいたまさいたま!
                 \_/   \_________
                / │ \
                    ??∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\??∧ ∧ \( ゚∀゚)< さいたまさいたまさいたま!
さいたま〜〜〜!   >( ゚∀゚ )/ |    / \__________
________/ |    〈 |   |
              / /\_」 / /\」
               ̄     / /
                    ̄
642627:03/04/02 16:47
申し訳ありません、また戻ってきてしまいました…どうかご教示お願いします。
627の件はみなさんのおかげで「全ページの合計」はSumにて、ページごとの計算は
------------------------------------------
Option Compare Database
Dim AAA As Long
Dim BBB As Long
-------------------------------------------------
Private Sub ページフッターセクション_Format(略)
Me!テキスト78 = AAA
AAA = 0
Me!テキスト82 = BBB
BBB = 0
End Sub
-----------------------------------------------
Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer)
AAA = AAA + Me!請求金額
BBB = BBB + Me!消費税額
End Sub
このようなプロシージャにて解決いたしました。
ところが、あるページだけ「ページごとの消費税金額」が、電卓で計算したものに比べ
1円の誤差がでます。小数点以下の数字によるもの?と思ったのですが
「小数点以下」は0にしており、以下は切り上げになっていて、それを計算して
同じレポート内で誤差がでるのはどうも合点が行きません。
しかも、「ページごとの消費税額」で出た数字を全ページ足すと「全ページの合計
消費税額」に出た数字とまた1円ずれるのです。つまり最終的に手動で計算した
ものと「全ページの合計消費税」は2円ずれます。
誤差というのは避けたいので、よろしくお願いします。長々とすみません。
>>642
請求金額や消費税額などの金額計算するフィールドは「通貨型」になってますか?

※ 以下ヘルプより抜粋
数値型および通貨型のフィールドについて
数値データを格納する場合は、数値型と通貨型の 2 種類のフィールドのデータ型を使用できます。
数値型フィールドは、計算で使用する数値データを格納するために使用します。
ただし、金額の計算や高い精度を要する計算で使用するデータは除きます。
数値型フィールドに格納できる値の種類や長さは "FieldSize/フィールドサイズ" プロパティの設定値に
より制御されます。たとえば、バイト型フィールドには 0 から 255 までの整数値のみが格納され、1 バイト
のディスク スペースを使用します。

通貨型フィールドは、計算時に丸めによる誤差が生じないようにする場合に使用します。通貨フィールド
では、整数部分は 15 桁まで、小数部分は 4 桁までの精度が保証されます。通貨型フィールドは、
8バイトのディスク スペースを使用します。
644627=642:03/04/02 17:44
>643
レスありがとうございます。
通貨型にしています。¥マークもついています。
小数部分は 4 桁までの精度が保証されるということは、小数点以下が
見えなくても4桁はあるってことなんでしょうか……
一度ためしに「小数点以下」を2桁にしてみたのですが、
「ページごとの合計」は変わらず、電卓で足したものと比べ更に誤差が出ていました。
……あああー。
>>642
合計してから消費税計算した値と…(A)
消費税計算してから合計した値が…(B)
丸め上で食い違っているだけのような気がするけど?

(A) 205円+105円=310円, 310円x0.05=16円。
(B) 205円x0.05=10円, 105円x0.05=5円, 10円+5円=15円。
646627=642:03/04/02 19:09
>>645
なるほど!と一瞬思いましたが、違うみたいです。
この中では「×」は使っていないのですよ。全て「足し算」の話なんです。
3ページある数字の列を全部足したもの(=Sum([消費税額])と
1ページずつ足した数字を足したもの(ページごと小計+ページごと小計+
ページごと小計)が違うんです。

ちなみにこの元になっている消費税のレコードというのはエクセルから
インポートした「請求金額」にクエリで0.05をかけたものでした。
試しにインポートする前にエクセルで作って取り込んでみましたが
一緒でした…
    彡ミミミヽ ノ彡ミミ)
   ((彡ミミミミ))彡彡)))彡)
   彡彡゙゙゙゙゙"゙゙""""""ヾ彡彡)
   ミ彡゙ .._    _   ミミミ彡
  ((ミ彡 '´ ̄ヽ '´/ ̄ ` ,|ミミ))
  ミ彡  ' ̄ ̄'  〈 ̄ ̄ |ミミ彡
  ミ彡|  ) ) | | `( ( |ミ彡
  ((ミ彡|  ( ( -し`) ) ) |ミミミ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ゞ|  ) )  、,! 」( ( |ソ   <    罫線ヘルパ感動した!
     ヽ( ( ̄ ̄ ̄' ) )/      \_______________
     ,.|\、)    ' ( /|、
   ̄ ̄| `\.`──'´/ | ̄ ̄`
      \ ~\,,/~  /
       \/▽\/
テンプレについかしる
>>642
Dim AAA As LongとLong型になってるせいじゃないの?
Dim AAA As Currencyにしてみて

もし違うなら演算誤差という気もするけど・・・。
649636:03/04/02 22:56
なんとか解決いたしました。答えてくださった皆さん、ありがとうございました。
>>646
Int(もしくはRound)で小数点以下を丸めてる?
651名無しさん@そうだ選挙にいこう:03/04/03 02:43
よろしくお願いします。
アクセス2000を使用しています。

Function kuriage(siyouryo As Long, hosei As Long, zengetu As Long, kongetu As Long)

If siyouryo >= 0 Then kuriage = siyouryo
If siyouryo = Null Then kuriage = Null
If siyouryo < 0 Then kuriage = hosei - zengetu - zengetu + kongetu

End Function

このようなユーザー定義関数を作成しました。
これは計測メーターが一回りして再び0に戻った場合に使用量がマイナスになるのを補正するものとして作成したつもりです。
それぞれの変数はzengetu(前月指針),kongetu(今月指針),siyouryo(使用量:kongetu-zengetu),hosei(補正した前月指針:Clng(1&zengetu))です。
これでとりあえず補正はできたのですが、指針共にが0値やnull値の場合#ERRORとなってしまいます。
エラー処理をしようと思いIsERROR関数を使用してみましたが#ERRORは処理出来ないようです。
どうしたらエラー処理できるのでしょうか?
652名無しさん@そうだ選挙にいこう :03/04/03 08:56
If siyouryo = Null Then kuriage = Null

If IsNull(siyouryo) = True Then kuriage = Null
に変えれ。
653652:03/04/03 08:59
>651

それ以前にLong型引数にNullを引っ張ってくる時点で
エラーだべ。
>652 あまり関係ないけど
If IsNull(siyouryo) = True Then 〜 は
If IsNull(siyouryo) Then 〜 の方がよくない?
ttp://homepage1.nifty.com/tsware/tips/tips_034.htm

わざとならすまん。
>>651
そもそも数量を扱う際はNullを使わない方がいい。
siyouryouにNullがあり得る設計に無理があるなぁ。
Nullを使わずに0では駄目なの?

それからFunctionの戻り値の型も宣言した方が後々のため。
Function kuriage(siyouryo As …) As Long ←★
If siyouryo = 0 Then kuriage = 0

もう1つ。そもそもFunctionってのは同じ処理をあちこちの
プロシージャで利用する時に書くものなんだけど、この処理って
何度も使う? 使わないんだったらプロシージャに組み込んだ方が
いいよー!
>655
> もう1つ。そもそもFunctionってのは同じ処理をあちこちの
クエリーで使いたいとか・・・。
657名無しさん@そうだ選挙にいこう:03/04/03 12:52
MDEファイルを作成しようとしても「作成できませんでした」となります。なんでなのでしょうか・・・?こんな質問ですいません。
>651
補正前月指針のClng(1&zengetu)ってまずくないのか?
そもそも引数は前月指針と今月指針だけでよいのではなかろうか。
659名無しさん@そうだ選挙にいこう:03/04/03 13:23
>>657
コードの記述に矛盾があるからではないでしょうか。
俺もそのためMDE作れなかったことある。
>>651
単純に使用量求めちゃいかんのだろうか。

Function siyouryo(zengetu As Long,kongetu As Long)As Long
Dim i As Long
i=10000 'メーターが4桁の場合

Select Case True
Case kongetu > zengetu
siyouryo = kongetu - zengetu

Case kongetu < zengetu
siyouryo = (kongetu + i) - zengetu

Case Else
siyouryo = 0
End Select
End Function
661名無しさん@そうだ選挙にいこう:03/04/03 14:16
いくかの伝票データテーブルから作ったユニオンクエリをもとに
下のようなクエリを作りました。

Q作業行動表**************************************************
1     2   3     4    5   6    7
作業年月 作業日 開始時間 終了時間 社員C 社員名 作業先名
*************************************************************

このクエリから次のような帳票フォームを作り

F作業行動表********************************************************
ヘッダ-------------------------------------------------------------
作業年月(非連結) 社員コード(非連結,コンボボックス:集合値は[T社員])
詳細---------------------------------------------------------------
作業日 開始時間 終了時間 作業先名
-------------------------------------------------------------------
*******************************************************************
662661:03/04/03 14:17
続き

Q作業行動表の抽出条件を

作業年月 forms![F作業行動表]![作業年月]
開始時間 forms![F作業行動表]![開始時間]

として、ある月の社員の行動一覧を表示するようにしました。

動かしてみると一覧表示はできるのですが、
フォームの[社員コード]に入力した値が表示されません。
表自体は社員コードで絞込みされています。
[社員コード]にフォーカスを合わせると入っているはずの
値が表示されることもあります。

以前ユニオンクエリでないクエリから同じようなフォームを作ったとき、
フォームのプロパティでレコードセットをスナップショットにすると
同じような現象が出ました。その時はレコードセットをダイナセットに
したら正常に動作しました。ユニオンクエリから作ったのが原因なのでしょうか?
なにか良い回避策があったら教えてください。

Win2000+access2000です。
>>657
てか、その前にコンパイルしたりしてみればいい。
そうやってエラー個所を探せばよい。
664627=642:03/04/03 18:21
レスくださった皆さんありがとうございました。
結局取り込む前にエクセルのデータで小数点以下を四捨五入して
綺麗に0にしてからインポートすることで解決しました。
というか解決させました……
まだ腑に落ちない点はあるのですが……
皆さんのおかげでなんとか完成できました。ありがとうございます!

>>650
Int(Round)は使ってませんでした。一度試しに使ってみたんですが
ずれるのは一緒でした……
>>664
Accessでは見えない小数点以下が存在するのでExcelからインポートした段階で
いくらAccessで小数点以下を隠していてもしょうがないのでは?

Excelベースで消費税計算するのではなくAccess側ですればいいのではないでしょうか?
Accessには四捨五入をする関数がない(いるにはあるのですが正負で答えが違う)ので
Excelの関数を引っ張ってきたり、ユーザ定義関数を作成すればいいと思います。

前者はライブラリ「参照設定」で「Microsoft Excel 10.0 Object Library」をオンにし、
Excel.Aplication.Round(数値,桁数)で利用できます。
後者は以下を参照してみてください。
ttp://www.ruriplus.com/msaccess/faq/faq_006.html
666657:03/04/04 11:57
やはりコードエラーでした!コンパイルして修正したら、無事MDEファイル作成できました〜。ありがとうございました。
667名無しさん@そうだ選挙にいこう:03/04/04 12:13
関数で$がついてるのって意味があるんですか?

LEFT$()とLEFT()の違いって?
>>667
$付が文字列型で返し、$なしはバリアント型で返す。
戻り値を文字列型で定義した変数に代入するなら$付のほうが動作が速い(らしい)。
669667:03/04/04 13:08
ありがとうございます!
670名無しさん@そうだ選挙にいこう:03/04/04 13:12
回答いただいた皆様ありがとうございます。
レスが遅れて申し訳ありません。
アドバイスいただいた内容をもとにいろいろ試して見ようと思いますが、
私用で来週まで出社しないので、来週以降の報告になります。

>655
自動検針で5000程度がテキストデータとして出力されたものをインポートして使用します。
止まっているメーターのデータはnullとしてインポートされます。
それからFunctionを使用しているのはクエリで使用するからです。

>658
>660
メーターは多数ありまして、桁数がバラバラなのです。
そのためClng(1&zengetu)を使用してみました。
たしかに、これでは、ケースによっては間違った値がでますが、運用上はあり得ないのでよいのです。
(例えば5桁のメーターで4桁しか無い状態から一気にメーターが1回りすることはあり得ないということです。)
671651:03/04/04 13:29
あ。すいません。
上の670は651でした。
>>651
672777:03/04/04 14:33
>>670
まずクエリ側での引数チェックが必要じゃないかな?
IIfとIsNull使ってTrueなら0を渡すとか。
ただこれやるとバカ長い計算式になるだろうから

IIF(Or(IsNull([zengetu],IsNull([kongetu])),Null,Function(〜))
とかやって指針のどちらかにNullが入ってた場合は
すぐにNull返しちゃう方が楽かも。

あー、止まってたメーターが今月は動くとかって考えなくていいのかな。
674673:03/04/04 14:52
あー、いかん >673の下のIIFダメだわ。
IIFは真偽両方評価かかるの忘れてた。

やっぱり面倒でも引数にチェックかけて渡すのが一番かも。
675名無しさん@そうだ選挙にいこう:03/04/04 15:12
厨房質問です。

レポート内にサブレポートを表示させる時に
それを中央寄せして表示するにはどうしたら良いですか?
どなたか、ご教授下さい。
>>668
確かにMSのドキュメントにはそう書いてあるが、実際に計測してみると
その差はわずか。(俺のテストの仕方が悪いのかもしれんが)

現実的には、Null値の発生を回避する意味合いの方が強いような気がする。
($付きなら、Null値が返ることはない)
677名無しさん@そうだ選挙にいこう:03/04/04 15:47
ACCESS2000使いです。
2つのDBをリレーションで連結して使用しています。
詳細内容が同じでキー名称だけが違うデータを複製ボタンを作って複製した時に
メインフォームのデータは複製されるのですがサブフォームのデータが複製されません。
どうしたらいいんでしょうか?


>>677
メインフォームのデータはどうやって複製しているんでつか?
679名無しさん@そうだ選挙にいこう:03/04/04 17:11
>>677
Requery
680名無しさん@そうだ選挙にいこう:03/04/05 16:45
WinXP
Access2000で開発しています。
なぜか昨日からフォーム(どのフォームでも)をデザインモードで
開こうとすると

現在、このデータベースには排他モードでアクセスしていません。変更しても、後で保存できない可能性があります。
OK キャンセル

のダイアログが表示されるようになり、困っています。
OK選択後、保存する際にも保存できないかもしれない、という警告のダイアログがでます。
設定等を触った覚えはありません。
このメッセージボックスを表示されないようにするには
どうすればいいでしょうか?
とりあえずオプションの詳細タブにて
規定の開くモードを「排他モード」を選択
に共有モードから変更しました。
でもさっぱり改善していません。
どうかアドバイスいただけないでしょうか?
ほんと困ってるんでよろしくお願いします。
>>680
あ、それ私もなった事があるぞ。
私も原因&対処方法が知りたいです。

その時は結局、別の空のDBを作って
変になった元DBから全てのオブジェクトをインポート、
元DBは諦めて、新しいDBを使うようにしたのだけれど、
もっと上手な方法がありそうな…。
682680:03/04/05 17:47
>681
あ、突然のことで
新規DBにインポートすることも試していませんでした。
言われたとおり、やってみるととりあえず回避できるようになって
助かりました。
ありがとうございます。

でも根本的な原因ってなんなんでしょうね。
「mdbが壊れた」で済ましていい問題なのか疑問です。
なにはともあれありがとうございました。
683名無しさん@そうだ選挙にいこう:03/04/06 18:08
Access2000+Windows98です。
自宅と会社でプロジェクトファイルを持って
行き来しながら制作したいのですが、
権限か何かの関係で自宅で作ったものを会社で開くと
読み取り専用になってしまいます。
どうにかしてこれを実現する方法がないでしょうか?
684あぼーん:03/04/06 18:29
   ______________
 /:\.____\
 |: ̄\(∩´∀`) \  <先生!こんなのがありました!
 |:在  |: ̄ ̄ U ̄:|
http://saitama.gasuki.com/aomori/
685佐々木健介:03/04/06 18:31
     ______
    /_      |
    /. \ ̄ ̄ ̄ ̄|
  /  /  ― ― |
  |  /    -  - |
  ||| (5      > |
 | | |     ┏━┓|   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| | | |     ┃─┃|  < こんなサイトを見つけた
|| | | |  \ ┃  ┃/    \  正直、スマンカッタ
| || | |    ̄         \_________
http://saitama.gasuki.com/hiroyuki/
686あぼーん:03/04/06 18:33
687あぼーん:03/04/06 18:34
             ∩
        ∧_∧   | |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       (  ´Д`)//  < 先生!こんなのを発見シマスタ!
      /       /    |
     / /|    /      \  http://saitama.gasuki.com/koumuin/
  __| | .|    |         \
  \   ̄ ̄ ̄ ̄ ̄ ̄ ̄\     \_____________
  ||\             \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||
688あぼーん:03/04/06 18:36
   ,.´ / Vヽヽ
    ! i iノノリ)) 〉
    i l l.´ヮ`ノリ <先生!こんなのがありました!
    l く/_只ヽ    
  | ̄ ̄ ̄ ̄ ̄|
http://muryou.gasuki.com/sinagawa/
689680:03/04/06 20:02
>680-682
やっぱり新規DBを作成してインポートし直しても
同じ現象が起こるようです。現象>680
確認した時は確かに大丈夫に思えたのですが、
今試してみるとやっぱりダメです。
何度かインポートし直したりもしたのですが、
ダメみたいです。
もう一度アドバイスいただけないでしょうか?
690金正日:03/04/06 20:14
   ,rn                 
  r「l l h.                / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  | 、. !j                | 
  ゝ .f         _      |  
  |  |       ,r'⌒  ⌒ヽ、.  │  http://www.saitama.gasuki.com/hangul/
  ,」  L_     f ,,r' ̄ ̄ヾ. ヽ. │   こんなのあったニダ
 ヾー‐' |     ゞ‐=H:=‐fー)r、)  | 
  |   じ、     ゙iー'・・ー' i.トソ   | 
  \    \.     l ; r==i; ,; |'  .人_ 
   \   ノリ^ー->==__,..-‐ヘ___
     \  ノ ハヽ  |_/oヽ__/     /\
      \  /    /        /  |.  
        y'    /o     O  ,l    |
691680:03/04/06 20:20
追記です。
状況をもうちょっと調査してきました。
ファイルからでなく、スタートパネルからAccessを起動し、
ファイル->開く より問題のmdbを選択後、開くボタンについている
横の拡張メニュー(?)から排他モードで開くを選択して
開いてもまったく効果がないみたいです。
開きたての状態では「このデータベースは排他モード〜」の
警告メッセージボックスはでません。
一度でもいずれかのフォームをデザインモードで開くと
ことある度に表示されるようになります。

何度もすみません、困り切ってます。
心当たりでも結構ですのでアドバイスいただけると助かります。
692あぼーん:03/04/06 20:35
             ∩
        ∧_∧   | |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       (  ´Д`)//  < 先生!こんなのを発見シマスタ!
      /       /    |
     / /|    /      \  http://saitama.gasuki.com/yamazaki/
  __| | .|    |         \
  \   ̄ ̄ ̄ ̄ ̄ ̄ ̄\     \_____________
  ||\             \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||
693あぼーん:03/04/06 20:35
>>691
ミスリードはしたくないので分かる範囲で情報出すと
エラーの意味は、
「排他モードで入っていないので
複数クライアントのアクセスがあった場合、
変更がデータに反映されない恐れがある」
という意味で、そういう状況が想定されない場合は
特に動作に問題はないと思われる。

エラーメッセージを出したくないということであれば、
多分、メニューから入る設定項目で設定可能な気はする。

ただ、動作に問題ないのであれば機械的にOK押すという
ことでいいんじゃないか?という気はする。
気はするばっかりでなんだが 参考までに
>>691
どうしようもなかったら、一旦Accessをインストールしなおしてみたら?
最終的な方法だけど時間ばかり食うよりは、いくらかマシやもしれん。
696680:03/04/06 23:10
>694
オプションで設定できる
規定の開くモードを「排他モード」に設定しているにも
関わらず、警告メッセージが表示されるようです。。
デザインモードに入る時、閉じる時くらいならいいのですが、
VBEditorで編集してる時、ことあるごとに聞かれるので
それはちょっとつらいんです。

>695
今インストールし直してきましたが
全然改善しませんでした。

同じような現象に出会った方、
お心当たりのある方、どうかよろしくお願いします。
なんでこんなことになったんだろう。。
697名無しさん@そうだ選挙にいこう:03/04/07 11:45
Access2000です。
作成済みのユーザー定義関数を手直しするためにいじりたいのですが、
データベースウィンドウのモジュールの一覧にありません。
モジュールの表示/非表示切り替えとかどこかにあるのでしょうか?
フォームやレポートのデザインビューからVBEを開けると行けるのですが…。
ちなみにその関数はちゃんと動いています。
ご存知の方、よろしくお願いします
>>697
隠しファイルなっているとすれば…
ツール>オプション>表示
「隠しオブジェクト」にチェックを入れる

> フォームやレポートのデザインビューからVBEを開けると行けるのですが…。
プロジェクトエクスプローラの標準モジュールフォルダ内にあるのでは?
プロジェクトエクスプローラが表示してないなら表示させてみて
699名無しさん@そうだ選挙にいこう:03/04/07 14:05
>>698
レスありがとうございます。

> ツール>オプション>表示
> 「隠しオブジェクト」にチェックを入れる

をやってからPCを再起動したら
出てくるようになりました。

> > フォームやレポートのデザインビューからVBEを開けると行けるのですが…。
> プロジェクトエクスプローラの標準モジュールフォルダ内にあるのでは?
> プロジェクトエクスプローラが表示してないなら表示させてみて

その通り標準モジュールの下にありますが
関数を作ったのが初めてなので
ここにあると不具合が起こるのであれば教えて下さい。
>>699
> その通り標準モジュールの下にありますが
> 関数を作ったのが初めてなので
> ここにあると不具合が起こるのであれば教えて下さい。

それでいいと思います。
隠しオブジェクトになっていて、それを表示しない(チェックオフ)状態でも
「標準モジュールからたどれば見ることができる」ってだけのことです。
>>700
ありがとうございます、またよろしくお願いします
702名無しさん@そうだ選挙にいこう:03/04/07 18:03
アクセス97
商品マスターテーブルに商品名、商品NOのフィールドがあって
注文履歴テーブルには商品名のみが追加されるようにしていたのですが、
商品NOも必要になりました。
商品マスターテーブルの商品名・商品NOフィールドをもとに履歴テーブル
のデータに商品NOを振っていきたいのですがいい方法はないでしょうないでしょうか?
更新クエリで考えているのですが、商品マスターテーブルの商品名と注文履歴テーブルの商品名を
比較して、注文履歴テーブルの商品NOフィールドに値を入れていく書き方がわからないです。
そうかもっと簡単な方法があるでしょうか?
>>702
商品名と商品Noが1:1で対応しているなら、
履歴テーブルのデータに両方を記録させるのは
お勧めではない。

せっかくマスターがあるんだから
ルックアップ使って表示だけさせるとかの方が
データベース的には正解だが・・・・・・・・

でもまあ、どうしてもデータとして記録させたいなら
考え付くのは、
1.商品の種類が少ない場合
 商品名でフィルターかける→商品名に対応したNoをエクセルなりでいっぱい作ってコピペ

2.商品の種類がやや多い場合
 上述のルックアップで商品名から商品Noを表示させるクエリ作成
→表示されている商品No(ルックアップ列)のデータをコピー
→用意してある商品No(レコード格納列)にペースト 

3.商品の種類、もしくはレコード数がとんでもなく多い場合(5万とか10万とかのレコード数ならね)
 VBAで処理、こちらの環境はAccess2000でVBAの仕様違うはずだから
 詳しくは書かないが、商品名をマスタと比較して
 逐次データを書いていく


こんなとこですが・・・・・
>>702
普通に更新クエリで問題なし。
更新クエリ作成中に、表示(V)→SQLビュー(Q)としてから、以下の構文を貼ってくれ。

UPDATE 商品マスターテーブル INNER JOIN 注文履歴テーブル ON 商品マスターテーブル.商品名 = 注文履歴テーブル.商品名 SET 注文履歴テーブル.商品NO = 商品マスターテーブル.商品NO;
705まるまる:03/04/07 21:43
すみません、質問させて下さい。

Accessのアプリケーション稼働専用マシンにする為、
Shellをaccess.exeにして、Windows起動時にAccessを
起動させることは出来たのですが、
同時にファイルを起動させることが出来ません。

アクセス起動後にいちいちファイル>開く で
ファイルを選択することなく、
アクセスが起動したら特定のファイルが開くようにしたいのですが、
もし出来るようで有れば方法を教えて下さい。

(Shell化してるのでファイルアイコンからの起動は不可です)

宜しくお願いします。

706bloom:03/04/07 21:52
707名無しさん@そうだ選挙にいこう:03/04/07 23:32
>>705
---HELP引用(開始)---
Startup コマンド ライン オプション
次の表は、Access で指定するコマンド ライン オプションの一覧です。

オプション処理内容
データベース ファイル名Access を起動すると、指定したデータベースが自動的に開きます。データベース ファイル名には、ドライブとパスも含めて指定できます。既定のパスは、[My Documents] フォルダです。
---HELP引用(終了)---

これではいかんのかなと言ってみる素人考え
708名無しさん@そうだ選挙にいこう:03/04/07 23:56
口数 = ( 取引金額 / 基準価格 ) * 10000 (小数点以下切り上げ)
手数料 = 取引金額 * 手数料率 (小数点以下切捨て)
消費税 = 手数料 * 5% (小数点以下切捨て)
のとき
基準価格を9000円
手数料率について、取引金額が1億円未満の場合は2%、1億円以上の場合は1%
とした場合、
例えば投資金額を1千万円、1億円、5億円のときも
投資金額 = 取引金額 + 手数料 + 消費税
が成り立つ取引金額・手数料・消費税・口数をセルに表示させたいのですが
どのようにすればよいでしょうか?
709680:03/04/08 00:41
>696
またいろいろわかってきたので追記しておきます。
問題のmdbはまれにCurrentDBで落ちます。
実行時エラー 3734

マシン'PCの名前'のユーザー'Admin'がデータベースを開けない状態、
またはロックできない状態にしています。

とのエラーが出ます。
まれにですが。
Adminって誰でしょう。
WindowsのアカウントにAdminなんてないですよねぇ。
Administratorじゃないし。。
以前いずれかのフォームを開いた後、
デザインモードに入る際警告メッセージが出る、と書きましたが、
どうも下記のコードが入ってるフォームを開いた後のみのようです。
これってなにか変ですか?
今のところ、これが入っていると警告メッセージがでる、
としかわからないのですが、検討違いかもしれません。
どうか知恵をお貸しください。。

起動時
Set Ws = Workspaces(0)
Set Db = CurrentDb
終了時
Db.Close
Set Db = Nothing

Ws.Close
Set Ws = Nothing
710677:03/04/08 00:50
>>678
ごめんなさい!仕事中にカキコして他門で忘れてた。
 複製ボタンはACCESSのボタンのウィザードで作ったので、ACCESSに勝手にVBAを
 組まれたものです。
 別にメインフォームとかサブフォームなんかの設定はウィザードでは見当たりません
 でした。
 私はVBAが解読できないのでモジュールを見ても何してるかわかりません。
 多分コピーアンドペーストをやってるだけだと思うのですが。
>>709
そのmdb内にリンクされているテーブルがないですか?
リンク先のmdbが他の人が排他で開いたまま、何らかの拍子に
開いたままになっているとか?


712702:03/04/08 09:35
>>703 >>704
丁寧な解説ありがとうございます。
やはり更新クエリの方でやらせていただきました。
内部結合させるんですね!
無事解決しました。ほんとありがとうございました。
>>705
難しくない。mdbファイルとAccessが関連付けされているはずだから、
スタートアップフォルダに起動したいmdbファイルのショートカットを作成すればOK!
714681:03/04/08 11:33
>>709
同様の経験のある681です。AdminはAdministratorで合ってるよ。
Accessのヘルプをワークグループで検索してみて欲しい。
でもさ、問題はAdminが排他ロックしたままの状態でAccessが終了
するのか?って事なんだよねい…。VBAで悪いことでもしたのかなあ?
実際、漏れもさっぱり判らないんだよね・゚・(ノД`)・゚・。
715713:03/04/08 11:34
失礼。ファイルアイコンからの起動は不可って書いてあった。逝ってくる・・・
716名無しさん@そうだ選挙にいこう:03/04/08 11:37
ヘルプ等で調べてみたんですが、どうにも解決できないので教えてください。

Access2000でVBAを使ってオラクルのDBからデータを絞り込んで自前のテーブルにインサートする
ルーチンを書いたのですが、自分のPCでこのmdbを実行しても何も起こらないのですが、
他の人のPCへmdbをコピーして実行するとクエリ(SQL)が実行される度に確認のメッセージが出ます。
このメッセージを出ないようにすることはできないのでしょうか?
ヘルプにはAccessのクエリについては書いてありましたが、VBAでRunSQLすることに対するメッセージ
の抑止については見つけることができませんでした。
よろしくお願いします。
>>716
A案:
他人のマシンでMDBデータベースを開いた状態で[ツール]-[オプション]を表示し、[編集/検索]タブの「確認」の「アクションクエリ」チェックをはずす。
B案:
Docmd.RunSQLを使わないでADOのConnectionオブジェクトまたはCommandオブジェクトのExecuteメソッドを実行する。
DAOのやり方は忘れた(w
718名無しさん@そうだ選挙にいこう:03/04/08 12:20
>>716
DoCmd.SetWarnings False
>>717
サンクスです。
とりあえずA案でうまくいきました。
コピーする度に変更は面倒なので、B案でコードを書き直すことも検討します。
720bloom:03/04/08 12:30
721名無しさん@そうだ選挙にいこう:03/04/08 12:37
>>718
おぉ、こんなコマンドもあるんですね。
サンクスです。
やってみます。
722まるまる:03/04/08 15:25
>>707
お〜。ちゃんとHELPに有ったのね・・。
見落としてたスマソ。

って事で無事目的達成できました。
ありが丼〜。
713もありが丼〜。
723680:03/04/08 20:23
解決しました。
結論から言うと、
起動時に
Set Ws = Workspaces(0) としていたのを
Set Ws = DBEngine.Workspaces(0)
とすることで解決しました。
フォームのクローズ時に
Ws.Closeも Set Ws = Nothing
もしてたんですけどねぇ。。
つまり
Workspaces(0) と
DbEngine.Workspace(0)
は似て非なるものということみたいですね。
どう違うか等、まったくわかっていませんが、
後々理解していきたいと思います。
アドバイスいただいた方々、ありがとうございました。

>681さん
原因が同じだったら解決なんですけどねぇ。
先解決しちゃいました、すみません。
724683:03/04/09 08:14
ですけど、そろそろ俺の質問も
答えてもらってください。
725名無しさん@そうだ選挙にいこう:03/04/09 08:38
>>724
ファイル属性(右クリック−[プロパティ]−[全般]−[属性])の読み取り専用
属性のチェックを外すだけちゃうんかとあてずっぽう言ってみるテスト。
726名無しさん@そうだ選挙にいこう:03/04/09 12:44
>>683
権限の問題なら、権限を与えてやればいいだけちゃうんかとあてずっぽう
言ってみるテスト。
727あぼーん:03/04/09 12:50
あぼーん
728681:03/04/09 13:31
>>723
680さんの根性に感動した!!!
是非とも参考にさせてもらうよー!
729名無しさん@そうだ選挙にいこう:03/04/09 14:26

社員C 工数 項目C
 001 1.5 01
001 1.0 02
001 1.0 01
001 2.0 10

というデータがあるのですが、

社員C 項目01〜05の工数の合計 項目06〜10の工数の合計
 001         3.5           2.0

のような集計をするにはどうしたら良いでしょうか?
Win2000でAccess2000を使ってます。
>729
社員C 項目01〜05の工数の合計 項目06〜10の工数の合計
ってテーブルを作る。
社員C 工数 項目C なテーブルから社員Cをグループ化して
(ここに書いて無いだけで日付等で絞込が必要ならそうして)↑のテーブルに
社員Cだけ追加クエリで追加。
社員Cをグループ化 工数を合計 項目CをWhere 条件で01〜05
のクエリを作って↑のテーブルの項目01〜05の工数の合計を更新クエリで更新。
同じようにWhere 条件で06〜10にして項目06〜10の工数の合計を更新。
これでどお?
>>729
テーブル設計から見直すことを激奨
732名無しさん@そうだ選挙にいこう:03/04/09 20:46
ちょっと質問させてください。
パススルークエリー中にパラメータを埋め込みたいんですが、定石みたいな
方法はあるんでしょうか?
後から見たときに分かりやすかったり、色々なパラメータをシンプルに指定
できたり。

環境は Access97 or 2000 で、パススルーの接続先は Oracle8 です。
>732
querydef.SQL プロパティに、SQL文を全部文字列として設定する作りに
すること ダイアログ云々やり始めるとロクなことない
734名無しさん@そうだ選挙にいこう:03/04/10 14:31
レポートで、あるテキストボックスに、「フィールドBが空白ならフィールド
A」という関数を入れたいのですが、
=IIf(IsNull([フィールドB]),[フィールドA],[フィールドB])
という式を立てましたが、フィールドBにデータがある時ははそのまま反映して
、フィールドBが空白の時はエラーになってしまいます。どうしてなのでしょ
うか?
(ACCESS2000)
735あぼーん:03/04/10 14:47
あぼーん
736bloom:03/04/10 15:05
737名無しさん@そうだ選挙にいこう:03/04/10 18:15
>>734
ならないけど
738tantei:03/04/10 18:26
★あなたのお悩み解決致します!!
●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●別れさせ工作
あらゆる手段を使ってターゲットを別れさせます!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
その他人生相談からどんなお悩みでも解決いたします!!
 直通  090−8505−3086
URL  http://www.h5.dion.ne.jp/~grobal/
メール  [email protected]
   ■グローバル探偵事務所 

>734
Nullじゃなくて空文字列だったり。
740683:03/04/10 21:55
>>723
ありがとうございます。
あそたかあしったには試させてもらいますけど
いいですか?
どちらの生まれですか?
ヲレ、仕事でデータベース担当になった。
来週、1日3時間の5回。
「初歩からのAccess2002」ってやつに行って来る。
講座費用5万2千円だってさ。
Access2002インストール済みの
ノートパソコンを持ってくるようにだってよ。これ自分のだよ。
買っちまった。
簡単なデータベースは組めるようになるらしい。
できるようになったらここでみんなに教えちゃる。
待っててな。
743名無しさん@そうだ選挙にいこう:03/04/10 23:39
>>742
15時間ぐらいで教えられるようになるわけないだろ。



と釣られてみるテスト。
744名無しさん@そうだ選挙にいこう :03/04/11 01:20
アクセスのテーブル定義情報ってどっかに出力できないんですか?
(紙とかファイルとか
出来ただろ、確か。実際やった覚えがある。8年ぐらい前の話だけど。
>>745
え!・・・どのあたりか分かりませんか?
(ちなみに97です
>>746
薄々気がついてはいたけど、最近のバージョンでは出来ないみたいだね
(だからあえて昔の話と書いたのだが……)。

とはいえ1つのフィールドのプロパティ値を何行にも渡って書き出すような
代物で、とても仕様書に添付出来るようなものではなかった事を一言
明記しておく。

それよりはもっと便利な定義書作成ツールがあるので、代わりに紹介
しておく。

AccessTool ドキュメント作成2000
ttp://www.syswat.com/freesoft.html

MDBオブジェクトで、コードも見られる(w)ので、いろんな意味で
オイシイツールだと思う。

ただひとつ問題なのは、このMDBがアクセス2000ファイル形式だという
事なのだが……
>>746
ツール>解析>データベース解析ツール
じゃなかったけか?
749748:03/04/11 08:24
追伸
これでもいいんでねーの?
ttp://hp.vector.co.jp/authors/VA026700/#top
>>748
ほんとだ!

って俺は747なんだけどね。こういう機能に限ってM$はどんどんオプション
にまわす傾向にあったので、まだ削られずに生き残っていた事にちょっと
びっくりだよ。
>>747-750
蟻が糖
752名無しさん@そうだ選挙にいこう:03/04/11 12:28
サブフォームを2つ持つフォームを作りたいのですが、
ウィザードで3つのテーブルを指定するとサブフォームの
指定するウィザードが飛ばされてしまいます。
リレーションは親から各子へ作成してあります。
サブフォーム一つだけだとうまくいきました。
バージョンはAccess2000です。
よろしくお願いします。
>>752
手動で作れ
754名無しさん@そうだ選挙にいこう:03/04/11 12:35
ありがとうございます。
今、手動で作ろうと思い、ヘルプに従ってツールボックスのサブフォームボタンを
クリックしたらAccess2000premiumのCDを要求されました。持ってません。
ほかに方法はありますか?
>>754
買え
756754:03/04/11 12:47
自己解決いたしました。ドラッグするだけで追加できるんですね。お騒がせしました。
一件落着
758名無しさん@そうだ選挙にいこう:03/04/11 15:14
Access2000,win98SEを使用しています。
親レポートと日付でリンクさせたサブレポートを
「区分」フィールドでグループ化しており、
グループの先頭のレコードだけ区分を表示させようとして

Option Compare Database
Dim kbn As String

Private Sub Report_Open(Cancel As Integer)
kbn = ""
End Sub

Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)

If Me.区分 = kbn Then
Me.区分.Visible = False
Else
Me.区分.Visible = True
End If
kbn = Me.区分
End Sub

と書きました。
その日付に複数の区分があると意図どおりに表示されるのですが
区分が一つしかないと全レコードで「区分」が空白になってしまいます。
調べたらフォーマット時の処理を4周していて、
駄目な時は2周目以降は全部falseに、
意図通り表示されるときは最後のレコードと先頭のレコードが不一致なので
trueに行くようです。
どうすれば回避できるのでしょうか?
教えて下さい。
759名無しさん@思考停止中:03/04/11 15:54
ある受注した仕事(受注番号共通)に複数の内訳が含まれている(それぞれ個別に単価設定)
ものを1つの納品書、請求書を発行でき、かつデータ管理できるものを作っています。
1つのフォーム内に内訳(見積明細)を表示でき、かつ納品書・請求書発行ボタンを持つものを作りたいのです。
もちろん内訳を合計して、受注総額を表示できるようなものです。

テーブル1 取引先
テーブル2 受注管理
テーブル3 内訳管理
テーブル4 見積
テーブル5 見積明細

とまず作ってみました。
次に見積明細を出す、クエリを作る段階でとまってしまいました。

問題点
@フォーム作成段階で、見積と見積明細クエリを共有するよう選択しても、サブフォーム選択がでません。
 (見積テーブルと見積もり明細テーブルを選択すると出来ます。)
A見積明細クエリの作り方もいまいち理解できていません。

理想とする完成形
・1つのフォームから、納入先、受注仕事名、内訳を選択できて、選択した内訳の数量、金額を自動計算して総額を表示する。
 消費税額も表示したい。

どなたか救いの手をお願いします。
>758
普通に「区分」を区分ヘッダーに表示じゃいかんの?

>759
ちょっとテーブルに作った項目をさらしてみて。
そしたらこうした方がいいよって言えるよ。
761よろしくお願いします。:03/04/11 23:25
アクセス2000、Win2000を使用しています。
下のようなイベントプロシージャを書いてみたのですが、どうも無理があるようです。
これはレポートをワード形式でメール送信するためのものです。
メールアドレスを5つまで自由に変更できるように、メールアドレステーブルの各フィールドからメールアドレスを取得します。
同様にメールアドレステーブルからメールに記載する内容を取得します。
管理状況テーブルからも年月日の最初の日と最後の日を取得しメールに記載する内容とします。

@とりあえず動くは動くのですが、処理に凄く時間がかかります。
Aまた、一度立ち上がったメーラーのウインドウを閉ると、アクセスを閉じない限り、2度とこのプロシージャは動作しません。
Bそれから、メールタイトルを"管理状況報告書"としたいのですが"管理状況報告・"となってしまいます。
なにぶん独学なもので、とんでもない書き方をしているかもしれませんが、よろしくお願いいたします。
コードは↓です。
762よろしくお願いします。:03/04/11 23:28
Private Sub コマンド26_Click()
Dim m_1 As String
Dim m_2 As String
Dim m_3 As String
Dim m_4 As String
Dim m_5 As String
Dim m As String
Dim n_1 As String
Dim n_2 As String
Dim kf As Date
Dim kl As Date
Dim K As String
m_1 = DFirst("アドレス1", "メールアドレス")
m_2 = ";" & DFirst("アドレス2", "メールアドレス")
If m_2 = ";" Then m_2 = ""
m_3 = ";" & DFirst("アドレス3", "メールアドレス")
If m_3 = ";" Then m_3 = ""
m_4 = ";" & DFirst("アドレス4", "メールアドレス")
If m_4 = ";" Then m_4 = ""
m_5 = ";" & DFirst("アドレス5", "メールアドレス")
If m_5 = ";" Then m_5 = ""
m = m_1 & m_2 & m_3 & m_4 & m_5
763よろしくお願いします。:03/04/11 23:28
n_1 = DFirst("内容1", "メールアドレス")
n_2 = DFirst("内容2", "メールアドレス")
kf = DFirst("年月日", "管理状況")
kl = DLast("年月日", "管理状況")
If kf = kl Then
K = Format(kf, "ggge年m月d日")
Else
K = Format(kf, "ggge年m月d日") & "〜" & Format(kl, "ggge年m月d日")
End If
DoCmd.SendObject acSendReport, "管理状況報告書レポート", "RichTextFormat(*.rtf)", m, , ,"管理状況報告書", n_1 & K & n_2
End Sub
764名無しさん@そうだ選挙にいこう :03/04/12 09:38
ACCESS97 VBA を習得するのにお勧めの WEB SITE 教えて下さい。
(Basic以外のプログラム開発経験あり、アクセス初心者。)
>764
まず、グーグルで検索しろ。頼むから。
766名無しさん@そうだ選挙にいこう :03/04/12 11:45
このあたりから
http://www.accessclub.jp/
>>762-763
「この会社辞めようと思った」スレ向けにピッタリな内容ですね。
この際そんな事はどうでもいいだろ
769名無しさん@そうだ選挙にいこう:03/04/12 21:53
>>762-763
こんな糞コードどないしろと?(w
糞コードとか書く前に、この程度の内容は読み取ってやれよ。
771651です。:03/04/13 00:14
アクセス始めたばかりの初心者が来るところでは無かったみたいですね・・・
出直してきます。
お騒がせしました。
772761でした・・・:03/04/13 00:16
あ。すいません。うえの771は761でした・・・
重ね重ねすいませんでした><
773758:03/04/13 07:29
>>760さんありがとうございます。
質問しておきながらレスが遅れてしまいすみません。
普段なら区分ヘッダでやるんですが、
今回はスペースが取れなくてダメなんです。
774名無しさん@そうだ選挙にいこう:03/04/13 10:47
>>771
別にあなたに責任は無いと思うよ。悪いのはその初心者が書いた
コードすら理解しようとしない回答者の方だと思うから。

実際コードを見ても、アルゴリズム云々を指摘出来る程複雑な事は
していないみたいだから、それが処理時間に影響を与える事は考え
にくい(DFirstがどれだけ作業に負担をかける処理なのかはよく知らん
けど)。

となるとコードの問題というより、SendObjectの先に問題があるんじゃ
ないか? こればかりは個々の環境によっても違うから、なんとも
アドバイスし難い。
>(DFirstがどれだけ作業に負担をかける処理なのかはよく知らんけど)。

集計関数は重いよ。合計とかが使いたいならともかく、最初のレコード・最後のレコード
を読みだすだけならクエリ「メールアドレス」をフォームかDAOかADOで開いて
MoveFirstとかしてそこのアドレス1〜5、内容1・2を読み込めば速くなるかと。
「管理状況」も同じようにね。フォームで開いての方が簡単だけど、Docmd.Closeを
使わないほうが良いみたいだから。新しく覚えるならDAOよりADOが良いみたい。
でもWeb上の情報はまだまだDAOの方が多いね。
楽さ・簡単さだとフォーム>DAO>ADO。お勧め度・将来性とかなら真逆かな?がんば。

"管理状況報告・"に関しては、最後の1バイトが欠けたのかエンコード違いの文字化け
なのか。1バイト欠けるためなら半角スペースでもつけとく、エンコードならメーラーの
設定なんだけど、他で困るかもしれないから"管理状況報告"で我慢して貰うか。

ところでみんな選挙行った?
ACCESS2000 + EXCEL2000で質問しまつ。
(OSも2000でつ。)

目的としては、ACCESSのクエリの条件式の欄に、EXCELで表示されたものを代入したいのでつ。

ACCESSのテーブルとなるデータは既にあるのでつが、そこから集計したい
データを抽出するためのクエリの条件がちょっと複雑なので、
クエリに指定する条件をEXCELに表示させるようにしたんでつ。
(順番は貼り付けるクエリと同じ順番になってまつ。)
これをアクセスのクエリに貼り付けるのにいちいちEXCELをみながら
書き込むのが不便なので、VBAでも使って自動的に書き込めるように
したいのでつが、可能でつか?
可能ならどんなコードを書けばよいでつか?

ACCESSの解説を見てもテーブル操作はしてもクエリは操作してないでつし、
EXCELの本はACCESSに触れてなかったりして、ちょっと困ってまつ。
よろしくお願いしまつ。
DDEを使えばExcelとの間でデータのやり取りはできるが、Accessだけで処理するより手間がかるとおもう。
オレとしてはExcelを使えば問題が解決するという発想がどこから出たか、知りたい。
>>777
とりあえず、レスどうも。
まあ、こんな条件な訳でつ。
クエリの抽出条件は約20あるのだけれど、必要な条件を抽出するためには
いくつかの条件を組み合わせて抽出しないとうまくいかないものもある。

たとえば、欲しいデータを抽出するためには約20個の抽出条件のうち4番目、
7番目、11番目、14番目に条件を設定しないといけない。
また、欲しいデータ2を抽出するためには4番目、8番目、15番目に条件を設定する・・・と、こんな感じ。
いちいちどの条件を組み合わせれば欲しいデータを得られるかを調べるのは
大変だし、他の人にもやってもらう可能性もあるのでメモですませるわけにも
行かなかった。
というわけで、欲しいデータが何かを選択すれば、クエリのどの項目に
どういった条件を入力すればいいか表示するようにしてみた。
といういきさつでつ。
779名無しさん@そうだ選挙にいこう:03/04/14 03:02
>>778
いまいちピンと来ないが、検索条件を求めるフォームを作って、
結果をクエリのソースに与えてやればいいんじゃないの?
>>779
「クエリのソース」の意味がよくわからんが、
クエリの条件の枠にコピー&ペーストするという意味なら問題外でつ。
それだと間違いやすい(項目が多い+紛らわしい項目がある)から
自動で貼り付けるようにしたいという要望でつ。
>>780
フォーム+VBAでできるでしょ
間違いやすいからこそフォームでエラーチェックすればよい
782779:03/04/14 09:26
>>780
だからクエリの条件をいちいち修正させるんじゃなくて、フォーム上で指定
した条件からSqlを生成して、クエリに与えてやればいいんじゃないかって
意味。理由は781に同じ。

あなたの考えに合わせるなら、
欲しいデータが何かを選択すれば、条件が必要な項目「だけ」に
条件が入力出来るフォームを作ってやれば、入力も容易になるし、
打ち間違いも減る。
783名無しさん@思考停止中:03/04/14 11:21
759です。
ご指摘がありましたので、項目を書きます。

テーブル1 取引先・・・取引先ID、社名、郵便番号、住所、電話、FAX
テーブル2 受注管理・・・受注管理ID、受注番号(相手先が指定した番号)、受注名、金額、納期
テーブル3 内訳管理・・・内訳管理ID、受注管理ID、内訳名、金額、数量、納期
テーブル4 見積・・・見積ID、取引先ID、取引先名、見積日付、受注番号、受注名、小計、消費税、税込み金額
テーブル5 見積明細・・・見積明細ID、受注管理ID,内訳管理ID,内訳名、数量、金額

とりあえずこんな感じで作りました。
見積フォームの中に、内訳を表で組み込む意図で作りました。

アドバイスをよろしくお願いします。
>>773
テキストボックスの書式で「重複データ非表示」っていうのがあった筈だけど。
(前行と同じ内容なら表示しない)
785動画直リン:03/04/14 11:47
786773:03/04/14 16:11
>>784
レスありがとうございます。
やりたかったのはこれでした。
感謝です。

…でも何で詳細フォーマットが4周するんでしょう?
787名無しさん@そうだ選挙にいこう:03/04/14 16:25
アクセス97です
CSVファイルをtransfertextでインポートするとき先頭データが不要なのですが、どうすればよいですか?
2行目のデータからインポートしたいです。テーブルのフィールド名も決まっています。
788787:03/04/14 16:44
言い忘れました。今のところインポート後に削除クエリで不要部分を消してますが、
先頭データに変化があった場合対応できなくなるので
789748:03/04/14 16:58
>>788
TransferText メソッドのヘルプに書いてあるよ。
読んでみそ!
ACCESS2000 DAO3.7

非連結でフォームを作成していますが
サブフォームはどうやって組み込めばいいのでしょうか。
791名無しさん@そうだ選挙にいこう:03/04/14 19:12
>>790
ツールパレットから選択しる
サブフォーム用のレコードセットがあれば、それでテーブルを作ったら?
レスありがとうございます
最近access使い始めたばかりで判らない事だらけです

>>791
連結してるサブフォームなら普通に作成できるのですが
非連結での作成方法がよく判らないのです。

>>792
サブフォーム用レコードセットをもとに
フォーム上に表示テーブルを作成すると言うことでしょうか?
794790:03/04/14 21:51
↑すいません790です
795787:03/04/15 09:25
>>789
見つからないんですが
TransferTextのメソッドだけでできることなんでしょうか?
796bloom:03/04/15 09:52
797名無しさん@そうだ選挙にいこう:03/04/15 10:24
>>795
ヘルプの内容ぐらいWEBでも調べられるだろう
798748:03/04/15 14:30
>>795
しょうがないなぁ…
**引用**
DoCmd.TransferText [transfertype][, specificationname], tablename, filename[, hasfieldnames][, HTMLtablename]

hasfieldnames
インポート、エクスポート、またはリンク時に、テキスト ファイルの最初の行をフィールド名として使うには、True (- 1) を
使います。
テキスト ファイルの最初の行を通常のデータとして扱うには、False (0) を使います。この引数を指定しないと、False
(既定値) が使われます。
この引数は、Word の差し込みデータ ファイルに対しては無視されます。このファイルには、最初の行に常にフィールド名
が含まれています。
**終わり**
799787:03/04/15 17:29
>>798
それはわかるんですが、
一行目はデーターとしてもフィールド名としても必要のないデータなので、インポートしたくないわけで。
なので、現状はインポート後に削除クエリで消してますと。
で、実現したいのはVBAとかインポート定義とかでインポート処理の段階で排除できないかと。

hasfieldnames  これを応用すればいいということですか?
>>799
今、大勢の方が『なんだよ〜そういう事かあ!』と
腰砕けになっていると思います(w

1行目がゴミデータということであれば、VBAで
テキストファイルの加工をするコードを書くしか
方法はなさそうですね。
801名無しさん@そうだ選挙にいこう:03/04/15 18:46
>>800
なんでだよ……

>>799
応用も何も、ズバリその為のスイッチじゃないか……
802748:03/04/15 19:43
>>799
えっ?もしかしてフィールドのことじゃなくデータそのものの1行目ってことなの?

そりゃスンマセン…私が間違ってました(鬱
>>799
1案
オートナンバー型のフィールド作っておいて
インポート時に不要行のナンバーを取得しておく
インポート後そのデータを検索して削除というのはどうか

2案
インポートするテキストをTextStreamオブジェクトとして取得。
さらに新規TextStreamオブジェクトを作成し、
インポートするテキストの1行目以外をそっくり書き込んで
作業用のテキストファイルとしてどこかに保存。
インポートは作業ファイルを用いて行う。

3案
インポートするテキストをTextStreamオブジェクトとして取得。
インポート先をレコードセットとして取得し、
テキストの2行目以降を1行づつSplit関数でばらして追加処理をしていく

どれもあんましスマートじゃないが・・・・・・・
> 現状はインポート後に削除クエリで消してますと。
これでいいんとちゃう?
805760:03/04/15 21:17
>759 >783
759を見た段階だと受注管理と見積・内訳管理と見積明細がそれぞれ対応しているのかと思ってたんだけど、
783だと見積明細の下に受注管理と内訳管理が付く、しかも受注管理の下にも内訳管理が付くみたいなんだけど?

┌取引先
見積 金額=見積明細の金額×数量の合計
│┌内訳管理
└見積明細 金額=受注管理の金額の合計? それか 内訳管理の金額×数量の合計?
 └受注管理 金額=内訳管理の金額×数量の合計?
  └内訳管理
こんな感じ?でもこれ変だよ?

 ┌内訳管理 
┌受注管理 金額=内訳管理の金額×数量の合計
取引先  ↑コピー。その際、見積明細を内訳管理へコピー。
└見積 金額=見積明細の金額×数量の合計
 └見積明細 
たとえば、こんな感じで見積出して通ったら受注に見積をコピーして請求書を作成?
もしもこうなら、テーブルはこうかな?

取引先・・・取引先ID、社名、郵便番号、住所、電話、FAX
受注管理・・受注管理ID、取引先ID、見積ID(どの見積から持って来たか)、
      受注番号、受注名、受注日、納期、(小計、消費税、合計)
内訳管理・・内訳管理ID、受注管理ID、内訳名、単価、数量、(内訳納期)
見積・・・・見積ID、取引先ID、見積日付、受注番号、受注名、(小計、消費税、合計)
見積明細・・見積明細ID、見積ID、内訳名、単価、数量
806760:03/04/15 21:18
取引先名は取引先IDから一意に引けるから必要ないよね。
小計、消費税、合計も計算で出せるからテーブルに持つ必要はない。
けど、そこから消費税の端数切捨てとか小計や合計からの値引きがあったりするとテーブルに
持たないといけなかったり。

でも、これは759さんの希望してるのと違う気がする。ん〜俺が流れが見えてないからか。

擬古猫商事さんからテーブル1台椅子4脚のオーダーメイドでの作成依頼がありましたよと。例えば。
で、759さんは見積もりを出します。テーブル10万円、椅子1脚3万円。小計24万円、合計252,000円。

見積フォーム
 取引先  擬古猫商事株式会社▼(コンボBOXで選択する)
 受注番号 1000(手入力)
 受注名  ダイニングセット(手入力)
 見積日付 2003/4/15
  サブフォーム
   内訳名       単価     数量
   テーブル(手入力) 100,000(手入力)  1(手入力)
   椅子(手入力)    30,000(手入力)  4(手入力)
 小計  240,000(単価×数量の合計)
 消費税  12,000(小計×0.05)
 合計  252,000(小計+消費税 以上3箇所をサブフォーム内を入力後
                計算ボタンを押すと計算する)
  [計算ボタン] [見積印刷ボタン] [受注ボタン]
807760:03/04/15 21:19
で、見積印刷ボタンを押すとこんなレポートを印刷っと。

    お見積    平成15年4月15日
 擬古猫商事株式会社様
             株式会社759
 受注番号 1000
 受注名  ダイニングセット
  内訳名     単価    数量
  テーブル   100,000    1
  椅子      30,000    4
            小計 240,000
           消費税  12,000
            合計 252,000

受注ボタンを押すと追加クエリを2つ動かして見積テーブル>受注管理テーブル、
見積明細テーブル>内訳管理テーブルへと。(受注日はDate関数でその日を付けて)
で、受注管理フォームを開いて納期の入力。
納品時に納品書と請求書を受注管理フォームからボタンでレポートを印刷。

って感じで、(説明しにくかったらテーブルと椅子じゃなくて他のでね)流れを
書いて見て。

表がずれないかと自分の仕事が終わってないことが心配。
808名無しさん@そうだ選挙にいこう:03/04/15 22:31
すみません何回も。初めにそう書いてたんですがわかりにくかったのかも
>>800 >>802 例をあげると
・csvの先頭に  ABC,DEF,GHI,
 で、2列目から 001,002,003, ←ここから下が必要

・アクセステーブル(フィールド名はすでにある)
 インポートする度に
ABC,DEF,GHI,
001,002,003,
ABC,DEF,GHI,
001,002,003, となるので削除クエリでABCを検索して削除。

でも、この運用で将来的にABCなどの名称が変更になった時、対応しないと
ダメなので、それなら初めからインポートしなければと思ったわけで。
>>803さんのを参考に検討させていただこうと思いますが、
>>801 ズバリできるんですか? もっと研究してみます。
以前にどっかのサイトでインポート処理時に解決してるのを見た気がして
探したんですが見つからなくて





インポート定義だけでやりたいこと出来ない?
810801:03/04/16 01:01
>>808
まだ解決してなかったのか……

だから[hasfieldnames/フィールド名の設定]がその機能だって書いてる
のに。

このスイッチをTrueにすると、新規テーブルにインポートする時には
先頭レコードをフィールド名に設定し、既存のテーブルにインポートする
時には単に先頭レコードを無視して、いずれも2レコード目からインポート
するんだよ。

つか説明見たら普通はそういう機能と思う筈だぞ。
811名無しさん@そうだ選挙にいこう:03/04/16 01:45
当方これまでVB + ORACLEで開発していたのですが、この度
WindwsXP Pro + Access2000で、他人の作ったプロジェクトを
引き継ぐことになり、Accessを1から勉強中です。

とりあえず、テーブル一覧でもつくりたいのですが、
テーブル数が結構あるので、テーブル名を一括して取得する
方法はあるでしょうか?

ORACLEなら"SELECT * FROM dba_tables"
とかで出来ると思うんですが。

ついでにクエリ名の一覧も取得できたらありがたいです。
>>811
connection.OpenSchema...ADO
catalog.Tables(Views)...ADOX
>>810
falseの時は、先頭行をデータとして認識すると思うんだが・・・・・
もしかして俺のAccessと違う動作をするのか?
>>798
テキスト ファイルの最初の行を通常のデータとして扱うにはfalse
と書かれているようだが、

これを普通に読めば、先頭行はデータとしてインポートされると
なるわけだが・・・・・・・・
814748:03/04/16 08:41
>>808
1.テキストインポートウィザードで「先頭行をフィールド名として使う」にチェックしない
 インポート定義を作成(定義名をTest2 インポート定義とする)

2.CSVファイル名は「test.csv」とし、Cドライブ直下にあるものとす。

3.>>798を参考に以下をコマンドボタン(ここではcmdImportとする)のクリックイベントに
 記述す


Private Sub cmdImport_Click()
DoCmd.TransferText acImportDelim, "Test2 インポート定義", "Test", "C:\test.csv", True
End Sub

以上

キモはインポート定義作成時に"「先頭行をフィールド名として使う」にチェックしない"定義を作成することと
Trueの部分(hasfieldnames)です。
なんだかインポートとエクスポートが逆になっただけで
>>539-565のやりとりと同じことをしているような...
816名無しさん@そうだ選挙にいこう:03/04/16 10:01
>>813
だから、先頭行はいらないんだからTrueにして使えって話だろうに。
817787:03/04/16 10:27
>>816
おお、できました。
インポート定義で先頭をフィールド名に使うにチェックしたらフィールド名上書きになってしまったんで、
VBAでTrueにしても同じことだと思ってました。
みなさんお手数おかけしました。
818名無しさん@そうだ選挙にいこう:03/04/16 11:05
WinXP + Access2000です。

項目A(テキスト型)にパス
(例)C:\dirname\

項目B(テキスト型)にファイル名
(例)FileName.txt

が入力されているとして、クエリで項目A(パス)と項目B(ファイル名)
を結合してハイパーリンク型に変換することはできるでしょうか?

CStrで数値を文字型に変換するような感覚で。

フォームにボタンを配置してVBAで記述すればどうにかなる
のはわかりますが、てっとりばやく、データシートのクリックのみで
該当ファイルを開きたいと思いまして。

ヘルプやぐぐっても方法が見当たらなかったのでよろしくお願いします。
819名無しさん@そうだ選挙にいこう:03/04/16 12:55
>>818
ヘルプで「ハイパーリンク アドレスについて」を読めば判る
UPDATE Test_Table SET Test_Table.Hyperlink = [Folder] & [FileName] & "#" & [Folder] & [FileName];
つーかエクセルで出来るじゃん
821山崎渉:03/04/17 11:32
(^^)
822名無しさん@思考停止中:03/04/17 14:01
アドバイスありがとうございます。
807様のご指摘のような請求書フォームの形を理想としています。
自分なりに作ってみたのですが取引先等の作成は問題なく進みました。
しかし、エラーが出てしまうのです。
フォーム作成において、デザインモードから切り替えると、「式または・・・が複雑すぎて」
というエラーメッセージが出ます。
いかがしたもんでしょうか。
単純にする


つかその程度の内容のフォームがそんな複雑になんかならないって
>>822
エラーの元になってる式
書いてみたら?
825名無しさん@そうだ選挙にいこう:03/04/18 14:30
クエリの抽出条件で、今日から過去1年分のレコードを抽出したいのですが
どのように式を書けばよいのでしょうか
Between ○○○ And Date()
の、○○○の部分がわかりません
>825
DateAddは?
>>825
DateSerial(year(date)-1, month(date), day(date))
では?
828名無しさん@そうだ選挙にいこう:03/04/18 17:28
フォームをエクスポートしてると、
時々「メモリが足りません」と表示されてしまいます。
エクスポートをキャンセルしてアクセスを終了すると、
その後は何事もなかったように、またエクスポートが出来るようになります。
大丈夫なんでしょうか?
環境は、
ウィンドウズ98
オフィス2000(アクセス2000)←これがエラー
オフィス97と共存(アクセス97あり)
サービスパック3まで当てた後、アプリケーションの自動修復をしています。
(その後、オンラインでのパッチ要・不要のチェックをしたら不要と出たので、
何もしてません)

829825:03/04/18 17:53
>>826 >>827
ありがとうございました おかげで解決しました
830825:03/04/18 18:46
度々すみません
条件付き書式で、日付フィールドの値が1年以内のものの背景に色を付けたいのですが
「フィールドの値」「次の値以上」「DateSerial(year(date)-1, month(date), day(date))」
とやってみたのですが上手くいきません
この方法では駄目なのでしょうか?

ちなみに日付データは、日付・時刻型になっています
831名無しさん@そうだ選挙にいこう:03/04/18 22:55
未経験27歳でPGになります。
PGって、思ったより簡単みたいだね。
みんな!応援してね。
http://school2.2ch.net/test/read.cgi/job/1049610473/
>>828
アクセス使ってると、不思議な現象が頻発するが
いちいち気にしていると、生きていけない予感・・・・
>825
それだと開きなおすと勝手に
DateSerial(Year("Date")-1,Month("Date"),Day("Date"))
になってないかい?こうだね。
DateSerial(Year(Date())-1,Month(Date()),Day(Date()))
もしくは826さんのDataadd使うほうだと
DateAdd("yyyy",-1,Date())
834825:03/04/19 12:47
>>833の式をぶち込んだら上手くいきました >条件付き書式
ありがとうございました
835名無しさん@そうだ選挙にいこう:03/04/19 16:16
Access2000を使ってますが、
帳票フォームで、交互に背景色を最後まで塗り分ける方法は
ないでしょうか?
条件書式ですと、レコードがない場合できないので困っております。
836名無しさん@そうだ選挙にいこう:03/04/19 19:42
アクセスで売上管理作っているところなんですけど、
顧客マスターで、顧客コードがあるのでそれを主キーに
しようと思っていたら、どうしても顧客コードを無しに
したいお客さんがあるとかで、顧客コードを主キーに
することができません。(主キーの説明をしましたが
説得できませんでした)

客先名を入れる時に、顧客コードからでも、客先名からでも
振り仮名からでも入れることができるようにしたいそうです。
(だから顧客コードが無いお客さんでも問題ないとかで)

マニュアルどおりの作り方で今まで来たものですから、私には
いい案が思いつかないのですが、どのようなテーブルがいい
のでしょう。
オートナンバーで管理して、顧客名からも顧客コードからも
出せるようなフォームを作ることができるのでしょうか?
837名無しさん@そうだ選挙にいこう:03/04/19 19:49
>>836
他のフィールどに主キーを割り当てる。
もしくは新しく主キーを設定するフィールドを作る。
838名無しさん@そうだ選挙にいこう:03/04/19 20:02
>>837
はい。わかりました。
顧客名かオートナンバーにしようと思います。
でも、もしそうした場合に、フォームから顧客名を
入れる際に、主キーではない顧客コードを使って
顧客名を出すことができるのでしょうか。
839bloom:03/04/19 20:08
840名無しさん@そうだ選挙にいこう:03/04/19 20:17
>>838
できるよ。
841名無しさん@そうだ選挙にいこう:03/04/19 21:02
>>840
どうもありがとう。
何とか調べてやってみます。
>>836
よく使う手は、顧客コードの'9999’あたりを一見さん専用に割り
当てたりはするけど。
プライマリキーはユニークな値によってレコードを識別できれば
よいから必ずしも表面に出す必要はない。
843名無しさん@そうだ選挙にいこう:03/04/19 21:32
アクセス97を最近使い始めたのですが。

一つのレポートに複数のクエリーの結果を反映させたいのですが上手くいきません。
仕様上不可能なのでしょうか?

可能であれば、サンプルが見たいのですが・・・
参考になるURLなどお教え願えないでしょうか。

よろしくお願いしますm(__)m
844名無しさん@そうだ選挙にいこう:03/04/19 21:40
>>842
一見さんではなく、いつも持っていたいデータなので
9999が1つだけだと、やっぱりダメなんですよね。

841の後すぐにgoogleで、「商品名から」とか「顧客名から」という
ようなキーワードでいろいろ検索していたのですが、どうしても
フォームで顧客を特定するのに、顧客コードからも顧客名からも
顧客を選択する方法が見つかりませんでした。

売上伝票フォームに入れる顧客欄で、顧客コードを入れると
顧客名が出るし、顧客名を入れると顧客コードが出るように
したいのです。

840番さんができるとおっしゃっていましたが、どうしても
わかりません。どのような方法をとったらいいのでしょうか。
>>844
それなら、9万とか90万台を一見さん用にすれば良いだけ

検索条件に
=[テキスト1]
もしくは
Like "*" & [テキスト1] & "*"
846名無しさん@そうだ選挙にいこう:03/04/19 21:53
みなさん すいません 教えて下さい 

下記の検索文字テーブルと検索対象テーブルを比較して検索文字テーブル存在する
検索対象テーブルのデータ前後に決まった文字列を可能なのでしょうか

・検索対象テーブル
 [内容]
  可能表現には人が意志を持って何かをする

・検索文字テーブル
 [内容]
 可能表現
 人が
 意志を
 持って

・検索結果格納テーブル
 [内容]
  <A>可能表現<B>には<A>人が<B><A>意志を

<B><A>持って<B>何かをする。

最終的に HTMLに変換したいので宜しくお願いいたします
847845:03/04/19 21:54
「検索条件」じゃなくてクエリの「抽出条件」だった・・・
848名無しさん@そうだ選挙にいこう:03/04/19 22:09
>>843
必要なのは複数のクエリーの結果を反映させたものではなく、必要な
データでしょ? どんなデータが必要かをきちんと整理して、一つに
まとめるんだよ。

選択条件を増やすのならAND、OR条件を使えばいいし、選択テーブル
を増やすのならセレクトテーブルを追加すればいい。

よほど無理な事を考えているのでない限り、困る事はそうそう無いはず
だよ。
849名無しさん@そうだ選挙にいこう:03/04/19 22:31
>>848
ありがとうございます。
もすこし考えをまとめてみます。
>>846
マズハニホンゴノブンショウノカキカタヲオボエテネ(ハァト
851山崎渉:03/04/20 05:45
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
852名無しさん@そうだ選挙にいこう:03/04/21 07:36
mdbファイルのパスワードを忘れてしまったのですが、解除出来ますか?
853名無しさん@そうだ選挙にいこう:03/04/21 09:12
>852
脳内仕様書で創り直して下さい。
854bloom:03/04/21 11:07
855名無しさん@そうだ選挙にいこう:03/04/21 11:24
大人の出逢いから ピュアな出逢いまで・・・。
素敵な お相手が貴方を待っています!
もちろん 女性は完全無料です!
http://www.sweet.st
856名無しさん@思考停止中:03/04/21 11:56
どうやら、エラーの原因は見積明細サブフォームにテキストを直接入力していることが原因のようです。
見積明細クエリからなる見積明細サブフォームにある、受注内訳のフィールドに日本語を直接打ち込みたいのですが出来ますでしょうか?
受注内訳フィールドはどこから出てきたんだ
858852:03/04/21 16:11
>853
貴方の脳内仕様書を見せてください。
私のは少ないのですが、貴方のはページ数多いはずですよね。
お前の仕様書を他人に尋ねてもわかるわけないだろ
>>852
あなたの質問は、エクセル・アクセスetcで散々既出な質問の上、
ここの様なBBSでは「さぁ、ないんじゃない?メーカに聞いてみたら?」
以外の返答は、してはいけない不文律となっております。

MSに聞いて素直にあきらめましょう。
それでも、納得いかなければ、google当りに望みをかけましょう。

お仕事はかどるといいですね、では、とっとと帰ってください。
861名無しさん@そうだ選挙にいこう:03/04/21 16:50
つまり、パスワード忘れた >>852 がアホだということで終了
862bloom:03/04/21 17:08
>>852
どっかに有料で解除してくれる業者があったような…
864名無しさん@そうだ選挙にいこう:03/04/21 17:58
>>852
漏れが解除してやってもよいが(w
865 :03/04/21 18:23
■剣道の起源は韓国にあり!?
http://www.geocities.co.jp/Athlete-Acropolis/6963/

866名無しさん@そうだ選挙にいこう:03/04/21 23:07
おながいします

ACCESS XP
レポートにWEB上の画像をレイアウトして表示したいのですが、
苦戦しています。具体的にはW自社のebにある商品写真をレポートで
レイアウトして印刷したいのです

いままでやってみたこと
 ・レポートの中に画像ボックスを配置してレコードソースに
  アドレスを指定 http://www.abc.com/aaa.jpg
  ローカルなネットワーク内だとOKだけどネットになると参照できない
 ・ActivXコントロールのマイクロソフトウェブアクセスを使う
  フォーム内に配置するとうまく動いてくれるが、サイズ調整が不可
  レポートに配置すると表示されない

こまってしまいました。うまい方法ないでしょうか?
867名無しさん@そうだ選挙にいこう:03/04/21 23:25
おすすめ参考書なんてありますか?
できるシリーズ
「住所録を作ってみよう」くらいの簡単な内容の本をヘルプ引きながら
一通り完遂すべし。後は自分の目的別にどうとでも応用できるんでは。
受発注システムがどうのいってるのは大概使い物にならない。
870名無しさん@そうだ選挙にいこう:03/04/22 12:16
みなさん すいません 教えて下さい 

下記の検索文字テーブルと検索対象テーブルを比較して検索文字テーブル存在する
検索対象テーブルのデータ前後に決まった文字列を可能なのでしょうか

・検索対象テーブル
 [内容]
  可能表現には人が意志を持って何かをする

・検索文字テーブル
 [内容]
 可能表現
 人が
 意志を
 持って

・検索結果格納テーブル
 [内容]
  <A>可能表現<B>には<A>人が<B><A>意志を

<B><A>持って<B>何かをする。

最終的に HTMLに変換したいので宜しくお願いいたします
こんなのコピペして面白いと思ってる奴のセンスを疑うな
872名無しさん@そうだ選挙にいこう:03/04/22 12:52
よろしくご指導願います。
Access97を使用してます。

モジュールで郵便番号フィールドのデータの更新(置換)を考えてます。
 @@@-@@@@ → @@@@@@@ のように "-"を""に置換です。
又、クエリでも同様の処理を考えております。

短文ですがよろしくお願いします。

>>872
UPDATE テーブル SET テーブル.フィールド = Left([テーブル]![フィールド],3) & Mid([テーブル]![フィールド],5);
874名無しさん@そうだ選挙にいこう:03/04/22 13:26
>>845 さん
ありがとうございました。(返事が遅くなりました)

アドバイスどおり、9万番台を一見さんにしました。

それから、顧客名から顧客コードを探すための選択クエリ
(顧客名が左で顧客コードを右に配置したもの)を作って、
顧客名をコンボボックスで選べてその結果2列目を表示して
顧客コードを探せるようにしました。
後は出てきたコードを本当のコード欄にコピペします。
きっと変な方法だと思いますけど、今のところはこのくらいが精一杯なので。

>検索条件に
>=[テキスト1]
をやってみましたが、まだ意味のわからない状態です。
もっと賢くなってから再度やってみます。報告まで。
875名無しさん@そうだ選挙にいこう:03/04/22 17:53
>>873さん、ありがとうございます。大変助かりました、ただ、私の言葉足らずで
もう少し複雑?な処理が有るのですが・・・。
 
 @@@--@@@@ → @@@@@@@
 @@@ @@@@ → @@@@@@@
 @@@ーー@@@@ → @@@@@@@

などです。つまり完全に数値データのみにしたいです。
大変恐れ入りますがよろしくご指導お願いいたします。 
 
UPDATE テーブル SET テーブル.フィールド
= Left([フィールド],3) & Right([フィールド],4)
WHERE ((Len([フィールド])>"3"));
>>875
1文字ずつチェックして数字のみ取り出す関数の一例

Public Function ZipNumber(ZipCode As String) As String
Dim i As Integer
Dim w As String

ZipNumber = ""
For i = 1 To Len(ZipCode)
w = Mid(ZipCode, i, 1)
If IsNumeric(w) Then
ZipNumber = ZipNumber & w
End If
Next i

End Function
878名無しさん@そうだ選挙にいこう:03/04/22 19:53
ACCESSのフォームについて教えてください。

フォームにおいて、画像(固定の画像ではなくて、レコードのデータの一つとしての画像)
を表示させるボックスを作ったときに、
そのボックスへデータを取り込むための、いわゆる「ファイルを開く」のような、
ファイルを選ぶウインドウを開くコマンドボタンを作るにはどうすればよいのでしょうか?
879名無しさん@そうだ選挙にいこう:03/04/22 21:08
>>878
ACCESSのバージョンは?
2002ならFileDialogオブジェクトを使ったら簡単かも。
880名無しさん@そうだ選挙にいこう:03/04/22 21:21
アクセス2000です。
よろしくお願いします。
クエリで1からの連番フィールドを追加することは可能なのでしょうか?
>>880
可能です
882880:03/04/22 21:48
>>881
すばやい解答ありがとうございます。
その方法のヒントでもいいですのでお教えくだされ。

基本的なことなのでググルことを進める
SQLほんをいっさつかってから。
884878:03/04/22 22:10
>>879
返事が遅れてすみません。
ACCESS2000です。

2002でそんな機能があるとは知らず、全てのACCESS共通で質問できるかと思ってしまいました。
885動画直リン:03/04/22 22:19
886名無しさん@そうだ選挙にいこう:03/04/22 22:27
>>884
2000ならAPIを使ってみればどうでしょう。
「GetOpenFileName API」あたりでググってみれば目的の機能が見つかるはず…
887名無しさん@そうだ選挙にいこう:03/04/22 22:46
ACCESS97 で、

テーブル上で計算したいのですが・・・やり方がよく分かりません。
>>887
テーブル上では無理だ
889878:03/04/22 22:52
>>886
仰せの通り検索してみましたら、VBAを超えた(?)自分の知らない世界が…

すぐに使えなくとも、いずれは一つ前に進めそうです。
お返事いただき、ありがとうございました。
890名無しさん@そうだ選挙にいこう:03/04/22 23:03
大人の出逢いから ピュアな出逢いまで・・・。
素敵な お相手が貴方を待っています!
もちろん 女性は完全無料です!
http://www.sweet.st
891名無しさん@そうだ選挙にいこう:03/04/22 23:04
>888
887なんですが。

できないならテーブルデータをエクセルに吐いて計算してテーブルに戻したいです。
スマートなやり方はないのでしょうか・・・
>891
普通にインポートとエクスポートでいいのでは。

それ以前に、なぜクエリーじゃいけないの?
893名無しさん@そうだ選挙にいこう:03/04/22 23:28
>892

ありがとうございます。

初心者なものでクエリーを使いこなせず。
悩むこと半日なのです。

また、クエリーで計算してレポートにする術をいまいち理解できず。
エクセルに渡せば済むかなと。
>>893
まずは本を読むか、ある程度知ってる人に聞くかしないと、
そのレベルの質問じゃ煽られるだけだよ。
>>893
本でも買って勉強しる
>>893
http://www.mahoutsukaino.com/
こことかわかりやすいので、
一通り勉強された方が後々の運用が楽だと思いますよ。
897名無しさん@お腹いっぱい。:03/04/23 10:01
質問させてください。

テーブルなどオブジェクトのプロパティで「隠しオブジェクト」属性にチェックを入れ、
Accessのツール→オプション→表示で「隠しオブジェクト」にチェックを入れると
当該オブジェクトは非表示状態になりますが、別のmdbを開いてもツールからの
設定が有効なため隠しオブジェクトが非表示になってしまいます。

起動時にVBAかマクロで「ツールからの設定」をオンオフできるでしょうか?

せっかく非表示にしていても他のmdbを開いて「ツールからの設定」から「隠しオブジェクト」に
チェックされると非表示設定をしていたmdb(mde)の「隠しオブジェクト」が見えてしまうので…
>>878
ども。886さんの言われる GetOpenFileName APIでも、もちろん可能ですが
ツール(T) →ActiveXコントロール(X) →Microsoft Common Dialog Control
として、コモンダイアログをフォーム上に配置した方が簡単だと思いますよ。
他のテキストBOXなんかと同じ要領でプロパティの設定もできますし。
899動画直リン:03/04/23 10:32
>897
「隠しオブジェクト VBA プロパティ」でぐぐる。
質問する前にぐぐるくらいしておいても損はないぞ。
>>898
つか878がそのコントロール持ってるとは限らないし、持ってたとしても
使える権限があるかわからないし。
902898:03/04/23 12:01
>>901
ご指摘ありがとうございます。
Microsoft Common Dialog Control (Comdlg32.ocx) はVBのランタイムですから
環境によっては無いかもしれません。しかし入手は容易ですから、持っていても
損のないコントロールだと思います。(言葉足らずで正直スマンカッタ…)
903名無しさん@そうだ選挙にいこう:03/04/23 14:12
なんでみんなExcelのGetOpenFileNameとかGetSaveAsFilenameなんかを使わないんだ?
Access入ってるならExcelは大概入ってるだろうに。

単にCreateObjectすれば使えるんだから、ややこしいAPIとか、実行環境に入ってるかどうか判らないような
OCXとか使ってるより良いような気がするが。
904動画直リン:03/04/23 14:25
>>903
まあ使ってる人も当然いるでしょう。ただ、環境に依存するという
意味ではOCXと大差ないから、あまり表立って言わないだけで。
>>903
いいこと教えてもらった。ありがとう。
こういうのって知らなきゃ知らないでいけるからなぁ。

参照設定とDim obj as New Excel.Applicationでいけるのか。
機会があれば使ってみよう。
907名無しさん@そうだ選挙にいこう:03/04/23 17:57
893です。
ありがとうございました。
908動画直リン:03/04/23 18:25
909878:03/04/23 18:58
>>898-903
昼間仕事をサボりながら、昨日教えていただいたAPIをつらつらと勉強していたんですが、
新たな発見がたくさんありました。使いこなせたらかなり便利そうですね。

ただ、そうなるまでにはかなり時間がかかりそうなので、
当面の問題には一番簡単そうな903さんのやり方を拝借しようかと思います。

色々と教えていただきありがとうございました。
910名無しさん@そうだ選挙にいこう:03/04/23 22:27
売上伝票のフォームに、日付、顧客IDを入れる欄があるのですが、
顧客名を入れるコンボボックスを作って、顧客名を選択できるように
しています。

コンボボックスの▼の印をクリックして、出てきた顧客データを
マウスで選択する際には問題ないのですけど、▼の印をクリックした
後、「↓」キーで顧客名を選択して「エンター」キーを押すと、
見積書の次のページに行ってしまいます。
なんでなんでしょうか。

access2000を使っています。
入力にエンターを使うのは素人
ACCESSを選択する時点で素人だろ。
913名無しさん@そうだ選挙にいこう:03/04/23 23:09
ムダにややこしいツールを使いたがるのは素人
煽りじゃなくマジ質問です。
フリーの開発環境やRDBMSがたくさんある中で、JETを選択す
る理由はどんなのがあるかな。
>>914
調べ物が楽
これが最もでかい
>914
915は確かにでかい。あとプラスして
・最初からPCに入ってる(入ったのしか買わない)
・上司でも(名前だけだが)あたりまえに知ってる
・上司の頭の中ではデータベース=Access
田舎の小さな会社なんでそんなもんだな。
作り手もド素人なうえ、事務仕事と半々なんて状況。

大体選択してるわけじゃなくて、それしか知らんのだからなぁ。
M$の思うツボなんだろうけどね。
>>916

> 最初からPCに入ってる

その通り、Accessがない環境でも、MS-Office製品のどれかが入っていればOK。


# フリーで利用可能という意味では、MSDEという選択肢もあるが。
スタンドアロン用途に限れば最強ということでよろしいか?
>>918
同感。
同時使用さえなければ、ある程度レコード件数が多くなっても、
快適な速度で動くし。
どこかにVBの日本語版ヘルプの完全なの落ちてないかな?
今のマシンのVBA用のヘルプ、検索で引っかかっても肝心のドキュメントが
表示されないんだけど・・・・・・ (ハァ
921名無しさん@そうだ選挙にいこう:03/04/24 13:48
>>910 ですけど
コンボボックスで出てきた項目をマウスではなく
キーボードで選択するのに、エンターを押しては
いけないということ?
候補までカーソルを下げていき、これ、と思ったところで
エンターを押すと、レコードの移動ボタンを押して次の
画面に行った状態になるので、次のレコードの中のデータが
変わってしまうんです。
>921
まず>>911 メール欄
他にはキー入力関係のイベントを使う
>>921
正直、そのものを見ないとどんな問題か
見当つかない。

タブ移動順を見直すか、移動ボタンはずすかしてみたら?
手持ちのフォームで試してみたけど>>921のような現象は出なかった。
(出られても困るが・・・・・)
>>921
単に、そのコンボボックスがタブオーダーの最後になってて
フォームのENTERでの移動が全てのレコードになってるだけじゃないの?
>>920
やっぱりヘルプ関係は昔の方が充実していた気がする。

そんなわけで、歴代オフィスのヘルプを抜き出して保存する為だけに、
昨日クリーンな環境を1つ作った。

これからここに、歴代オフィスをバージョン順にインストールし(アクセスなら
1.1から)、ヘルプを媒体に保存してアップデートという作業を繰り返す。

エクセル4とワード5の媒体が既に逝ってたのが癪だが(VBA入ってないけど)。
>>920
くれくれタコラ
ヘルプファイルだけでも固めてどこかにあげてクレクレ
いや、クダサイ(w
>>927
CDからインストールしなさい
つかネットでMSDN見りゃいいんじゃん?
>>927
いや、インストール時に関係しそうな
ヘルプはみんなチェック入れてるんだけど・・・

表示されないキーワードのドキュメントって
製品VB用のヘルプ内容っぽいから、
プロフェッショナル版もしくはOfficeだけでは全部のヘルプ
入ってないんだと思ってたんだが、違うのかな?
>>929
入会しなくても見れるの?
933>>932:03/04/24 17:32
おっ、みれるYO
感謝感激
ありがとう!
そうか、MSDN=30万円の先入観が強すぎた・・・・・
934名無しさん@そうだ選挙にいこう:03/04/24 17:42
>>911, >>922, >>924, >>925 さん
ありがとおぉ!
言われたとおりでした。タブオーダーの最後になっていた。
プロパティのタブストップをオフにしました。
うれしいよー。
>>911さん、メール欄に答えがあるとは思ってなかった。
  意地悪だなぁ。けど、ありがとね!)
935926:03/04/24 21:20
アクセス1.1の媒体も駄目だった。つーかFDDが逝ってるっぽい。

とりあえずヘルプはデコンプ出来たので、次にオフィス4.3をインストール
した。乗り換えUG版だったので、乗り換え対象ソフトを探すのが激しく
面倒だった。

この頃のマクロはアプリごとにWord Basic、Access Basicという具合に
異なっている。パワーポイントにマクロはまだ無い。

注目のVisual Basicはこのバージョンのエクセルから登場。OLE2にも
対応し、Visual BasicからもWordなどのオブジェクトを参照出来るように
なった(ちなみにExcel 4.0 マクロの記録、編集、実行も依然サポート
している)。

あとソフトの起動がバカっ速い。
936名無しさん@そうだ選挙にいこう:03/04/25 10:49
初歩的な質問で済みません。
コンポボックスでテーブル参照したら、
参照先テーブルの列順でなく、昇順ソートがかかった
コンポボックスの選択になるんですが、どのようにしたら
参照先テーブル列のままの順番で表示できるようになるのでしょうか?
937名無しさん@そうだ選挙にいこう:03/04/25 11:30
>>936
クエリかSQLで好きな順に並べろ。
未だにテーブルの格納順とオーダーについて理解できない香具師もいるのか?
>>938
別にカリキュラムというわけでもなないので
いまだにとか言われても(w

常に、分からない人は存在していると思われ・・・・・
そろそろ次スレ木ノボンン
941名無しさん@そうだ選挙にいこう:03/04/25 19:30
942名無しさん@そうだ選挙にいこう:03/04/25 19:59
国内10件の検索サイトに一括登録無料
国内3000件の掲示板に一括書き込み
リンクスタッフ無料登録1000円プレゼント
アクセスアップ最強サイトしかも安価で登録
http://accessplus.jp/staff/in.cgi?id=9879
http://accessplus.jp/staff/in.cgi?id=9876
http://accessplus.jp/staff/in.cgi?id=9877
http://www.hptouroku.com/cgi-bin/affiliates/clickthru.cgi?id=7064057
943bloom:03/04/25 20:25
944880:03/04/25 23:10
おねがいします。アクセス2000です。
shell関数でエクセルのテンプレートを使用しての新規ファイルの起動は可能でしょうか?

Shell("C:\Program Files\Microsoft Office\Office\EXCEL.EXE""C:\Documents and Settings\Administrator\Application Data\Microsoft\Templates\test.xlt""", vbMaximizedFocus)
このように書いてみたのですが、ファイルがありませんと出ます。
記述に問題があれは指摘お願いします。

ちなみにHyperlinkAddressプロパティを使用するとテンプレートファイル(test.xlt)そのものが立ち上がってしまうのでダメでした。


>>944
試してないけど

Dim oXLS As Object
Set oXLS = CreateObject("Excel.Application")
oXLS.Workbooks.Add("C:\Documents and Settings\Administrator\Application Data\Microsoft\Templates\test.xlt")
oXLS.Visible = True
oXLS.UserControl = True
Set oXLS = Nothing
946944:03/04/26 00:36
>>945
ありがとうございます!!
ちゃんと動きました。感謝です。
947926:03/04/26 02:59
なんとか最新版までのインストールが完了した。

DAOとADOのヘルプが充実したのが喜ばしい。
DAOイラネ
Jetで動かしている範囲では、DAOの方が速いと聞いた事があるが
誰か真偽のほどを知らないかな??(ニヤリ
DAO生かしておくと、混乱するから
成仏させてやってほしい・・・・・・・
951名無しさん@そうだ選挙にいこう:03/04/27 18:50
おねがいします。アクセス2000です。
エクセルの TRIM関数と同じ動きをしてくれる関数は無いでしょうか?
色々探したのですが、無かったんです。
方法としてはスペース2つ分を1つ分に置き換えるを出来なくなるまで
繰り返すという方法もありますが、何回もやるはめになるんで・・・
AccessにもTrim関数あった気がするけど
動作違ったっけ?
953bb:03/04/27 19:03
        ∧∧  ミ _ ドスッ
        (   ,,)┌─┴┴─┐
       /   つ.;ダブダブ-│
     〜′ /´ └─┬┬─┘
      ∪ ∪      ││ _ε3
               ゛゛'゛'゛
おかずなら過激に
 http://www.dvd01.hamstar.jp

>>951
見つからないどころか、クエリ式にすら使えてしまうわけだが
>>951
勉強不足ですね、出直しましょう
っていうか、普通にUPDATEしろよ。
特にどうってこともない、「フォームを開く」ボタン
ボタンAを押すとフォームAが開く
ボタンBを押すとフォームBが開く
〜 〜
で、ある日ある時、ボタンAを押したらフォームDが開いちゃった。

目の前に並んでいるボタンの中に、フォームDを開くボタンDは、ない。

こんな経験をお持ちの方、いらっしゃいますか?
当方Win2K、AcKです。
958名無しさん@そうだ選挙にいこう:03/04/28 00:01
>>957
言いがかりはやめてください。
そんな事気にしてないでさっさと書き換えろよ
あ、いや、僕も最初は見なかったことにしたんです。
それによって何かデタラメなデータが入力されたとか、実害があったわけじゃ
ないし。
一週間ほどおいて、つい昨日、また同じような現象に出くわして。
やっぱり実害はなし。
焦りとか怒りとかじゃなく、ありゃ〜、また座敷わらし見ちゃった、
みたいな不思議な気分で。
他にも同じような気分を味わっている人がいたら、ちょっとは安心かなと
思ったもので。
961名無しさん@そうだ選挙にいこう:03/04/28 00:14
>>960
コード見直せ。
962bloom:03/04/28 00:25
963957:03/04/28 00:33
ええと・・・
ちょっと長くなるけど、許してください

そのフォームにはボタンが8つほど、プラス、ダミーコントロール(テキストボックス)があります。

Private Sub Cmd1_Click()
[ダミー] = 1
DoCmd.GoToControl "ダミー"
End Sub

Private Sub Cmd2_Click()
[ダミー] = 2
DoCmd.GoToControl "ダミー"
End Sub

Private Sub Cmd3_Click()
[ダミー] = 3
DoCmd.GoToControl "ダミー"
End Sub

・・・
964957つづき:03/04/28 00:34
Private Sub ダミー_Enter()
長い長い処理
で、その処理の後
Select Case [ダミー]
Case Is = 1
DoCmd.OpenForm "フォーム1"
Case Is = 2
DoCmd.OpenForm "フォーム2"
Case Is = 3
DoCmd.OpenForm "フォーム3"
・・・
End Select
End Sub

1〜8どのフォームを開く際にも、事前に同じ処理が入るので、
こういう書き方にしたんですが、何か関係ありそうでしょうか?
当たり前だけど、Select Case [ダミー] の時点でちゃんと[ダミー]の値が
目的の値になってなかったとしか言えない

コントロールの値を使うんじゃなくて、普通に変数使うようにしたら?
つーかもしかして、変数の受け渡し方とか知らないんじゃ? って気がしてきた。
ダミーコントロール消して、こうしろ↓
Private Sub Cmd1_Click()
MyOpenForm 1
End Sub
Private Sub Cmd2_Click()
MyOpenForm 2
End Sub
:
Private Sub MyOpenForm(byval n as Long)
長い長い処理
Select Case n
Case 1
DoCmd.OpenForm "フォーム1"
Case 2
DoCmd.OpenForm "フォーム2"
:
End Select
End Sub
親切な事だな
968名無しさん@そうだ選挙にいこう:03/04/28 00:56
>>965-966
同意。
969957:03/04/28 01:03
か、かたじけないです。
それ、直前の書き込みしながら、ほんのちょっとだけ近いこと考えてました。
何で自分はこんな書きかたしたんだろうって。

Private Sub MyOpenForm(byval n as Long)
↑これほどスマートなやり方は知りませんでしたけど

「長い処理」ってのは、Subとして1個書いておけば
それぞれのクリック時に使うことができるんですよね
Private Sub Cmd1_Click()
長い処理
DoCmd.OpenForm "フォーム1"
End Sub
みたいなかんじで。
どう考えてもダミーは要りません
変数とかSubとかFunctionって、これをつくりながら身につけたテクなんで
あらためて見返してみると、全体にかなり回りくどいことやってます。

何だか長々と失礼しました。
>>966
非OO的糞コードの典型。
仕変のたびにCase文が増えて、スパゲティ化が確実。

分岐を使わずに記述する方法がいくらでもあるだろうに・・・。
こんにちは。
質問というか確認というか。
Access97で、過去の売上実績を保存しています。
データベースを検索した後のクエリを使って、エクセル出力させる機能を追加しようと思ったのですが、
-----
Private Sub Excel_Click()
On Error Resume Next

MsgBox "過去のデータをエクセルに出力します"
DoCmd.OpenForm "メッセージ"
DoEvents
Kill "C:\honyarara.XLS"

DoCmd.TransferSpreadsheet acExport, 8, "Q_honyarara表示", "C:\honyarara.XLS"

DoCmd.Close acForm, "メッセージ"
DoEvents
MsgBox "Cドライブの直下に C:\honyarara.XLS のファイルを出力しました。ファイルを確認して下さい"
End Sub
------
ただ、ユーザ配付のソフトのため、MDE化しています。

MDEだと、エクセル出力できないんでしたっけ……?
972名無しさん@そうだ選挙にいこう:03/04/28 11:38
>>970
ACCESSレベルなら、これで十分。
ACCESSが糞だから。
そういう問題でもない
>>970
一瞬間違えてマ板のスレ覗いたのかと思ったよ。
ところで970は>>966はどうすれば綺麗なコードになると
考えてるのか聞きたい。アオリとかでなく自分が勉強したいから。

自分は引数をフォーム名にしちゃえばSelect Case使わないし
楽なんじゃないかと思ったんだが…どうなんだろう。
>>974
ぱっと思いつくのは、フォーム名を引数で渡すか、WithEventでイベントを委譲する、
のどちらか。
On Error Resume Next
まず、ここに非難が集中するとみたw
977名無しさん@そうだ選挙にいこう:03/04/28 12:56
そこまで理解できるようになると、自然とACCESSなんか使わなくなる。
974>975
レスさんくす。WithEventって初めて見たので調べてみた。
ここのスレは本当に勉強になる。

素人がちまちま他の仕事の片手間にやってるので
変に知識が片寄ったり、当り前の事知らなかったり…。
自分程度の知識でも無理矢理モノが出来上がるあたり
Accessって実は怖いモノなんじゃないかと思ってたりするよ。
>>978

> Accessって実は怖いモノなんじゃないかと思ってたりするよ。

(1) ファイルがオブジェクト単位で物理的に分かれていない。
(2) ファイルを開いただけでタイムスタンプが書き換わる。
(3) インポートしたオブジェクトのタイムスタンプはインポート時点のシステム日付となる。
(4) 1つのモジュールを更新すると、変更していない他のモジュールのタイムスタンプも書き換わる。
  (Access 2000以降)

といった問題があり、バージョン管理が非常にやりにくい。
>>979
Accessじゃなくてもタイムスタンプでバージョン管理はしないと思う。
981名無しさん@そうだ選挙にいこう:03/04/28 18:33
まぁACCESS厨のやることだ、大目に見てやれよ。
982名無しさん@そうだ選挙にいこう:03/04/28 18:44
>>981
>979はアクセス云々以前に、単なるど素人だと思うが?
ビソ板だからな
984名無しさん@そうだ選挙にいこう:03/04/28 22:43
winxpとaccess2000を使用してます。レポートを印刷(Postscriptにて)する際、ユーザー定義が反映されないはなぜですか?Wordも同様です。adobeのバグ?Offiseのバグ?よろしくお願いします。
PS win98とOffise97の組み合わせが一番安定しているような・・・。
985名無しさん@そうだ選挙にいこう:03/04/28 23:16
ACCESS2000 SP-3をWinXPで使用していますが、
フォーム上のコマンドボタンのフォントを
HGP創英角ゴシックUBなどにすると、
文字がつぶれるというか、荒くなってしまいます。
同じ環境の別のパソコンで見たときは、正常なのですが。
>>985
XPはよく知らないけど、スクリーンフォントの縁を滑らかにすればいいんじゃない。
(meの場合はディスクトップで右クリックしてプロパティ−設定)
987名無しさん@そうだ選挙にいこう:03/04/30 00:01
>>985
そんな変なフォント使うな。
次のスレを準備致しますので、少々お待ち下さい
順次、次スレに移動の方よろしくお願いいたします
ACCESS総合相談所 その8
http://pc2.2ch.net/test/read.cgi/bsoft/1051630268/
990名無しさん@そうだ選挙にいこう
>>985
デスクトップで右クリック−プロパティ
−デザイン−効果
に「スクリーンフォントの縁を滑らかにする」
があり、うまくいきました。
ありがとうございました。