ACCESS総合相談所 その9

このエントリーをはてなブックマークに追加
1スレ立ててよぉ・・・
質問される方へ
・OS、ACCESSのバージョンを明記してください
・質問内容は具体的に書いてください
 テーブル/フォームの構成、クエリ、VBAの内容など差し支えない
 範囲で詳しく書くと、早く回答が得られるかもしれません
 (聞き返さなくても詳細が把握できる質問が望ましいです)
・事前にヘルプ等で調べられる範囲は調べてください

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

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

過去スレッドリンクは>>2-10あたり
2リンクだよぉ・・:03/08/26 01:23
・歴代スレッド
- 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
ACCESS総合相談所 その6
http://pc2.2ch.net/bsoft/kako/1037/10378/1037856185.html
ACCESS総合相談所 その7
http://pc2.2ch.net/bsoft/kako/1043/10439/1043996834.html
3関連スレッド:03/08/26 02:33
ビジネスsoft板
【玄人】素人ACCESS相談所【禁制】
http://pc2.2ch.net/test/read.cgi/bsoft/1047052026/
もう『Access2002』使ってる人いるっしょ?集合!!
http://pc2.2ch.net/test/read.cgi/bsoft/1006147865/
SQL ServerとAccessの安定性は?
http://pc2.2ch.net/test/read.cgi/bsoft/997258157/
ACCESS2000の分かりやすい本
http://pc2.2ch.net/test/read.cgi/bsoft/994154155/
EXCEL,ACCESSで曖昧な表現を。
http://pc2.2ch.net/test/read.cgi/bsoft/1002267900/
Access2000+SQL Server難しい・・・(´д`;)
http://pc2.2ch.net/test/read.cgi/bsoft/1002096284/
microsoft access で成績証明書作成
http://pc2.2ch.net/test/read.cgi/bsoft/1054963223/

データベース板
  D  A  O  v s  A  D  O  
http://pc2.2ch.net/test/read.cgi/db/1057233936/
ADO DAO など接続方法について
http://pc2.2ch.net/test/read.cgi/db/1059027812/
Microsoft Access
http://pc2.2ch.net/test/read.cgi/db/1056952414/

プログラム板
Access使い集合! Ver2.0
http://pc2.2ch.net/test/read.cgi/tech/1032402846/
WordとAccessで年賀状
http://pc2.2ch.net/test/read.cgi/tech/1041070946/

クソスレもたくさん含まれています。ご注意ください。
>1、乙
5前スレの1:03/08/26 08:40
>1
ごめんなさい、お世話になります
忙しくて立ててなかったです、ありがとうございました
乙です。いつもROMって勉強しています。
7 :03/08/27 10:05
>>6
何か書き込んでください。
Access に関係したエッチねた大歓迎です。
8名無しさん@そうだ選挙にいこう:03/08/27 15:40
Accessランタイムについて教えて下さい
Accessをインストールしなくてもランタイムが有れば
動作させることが出来ると聞いたのですが
ライセンス料は必要なんでしょうか?
あと複数のランタイムを同一のpcに入れて使用することは出来るんでしょうか
ランタイムに包括されているからACCESSなくてもOKです
ライセンスもOK(dev版は購入してね)
同一PCでも問題なしです
ただ、仕様変更するとランタイム入れ直しが・・・
小規模開発で頻繁に仕様変更無ければリーズナブルではないでしょうか

現バージョン→新バージョンにうpデートするようにすると便利かも?
簡単に出来るのかな?難しそう・・・やったことないので分かりません
108:03/08/27 16:27
>>9
ライセンスの問題が無ければ使ってみたいと思います。
現バージョンで使用しているものに手を出せないので
新しいバージョンを入れてやってみます。
ありがとうございました。
11名無しさん@そうだ選挙にいこう:03/08/27 18:10
>>9
> ただ、仕様変更するとランタイム入れ直しが・・・

これ、詳細ギボンヌ
12名無しさん@そうだ選挙にいこう:03/08/28 18:03
新参者ですがお世話になります。
Access2000でレポートの印刷レイアウトそのままをメールに添付して送るシステムを作っています。
最初PDF化しようとしていたのですが、Distillerやサードパーティのツール等を
使うも上手く行かずにスナップショットでの出力でお茶を濁そうという言うことになりました。

ところが、いざスナップショットにしてみるとライセンスフリーで提供されているはずのスナップショットビューアが
今現在どこのサイトにも見当たりません。
公開中止というワケでも無さそうですし・・・。
という具合に困っております。

スナップショットビューアの行方または、印刷データをPDF化する素敵な方法等について情報をお持ちの方
いらっしゃいましたらご教授願えませんでしょうか。
よろしくお願いします。
>>12
CD-ROM内をSNAPVIEW.EXEで検索
>>12
微妙にすれ違いの香りが・・・・・

この辺か?

1必読!★スレッド立てるまでも無い質問Ver.29★
http://pc2.2ch.net/test/read.cgi/software/1061050489/l50
15名無しさん@そうだ選挙にいこう:03/08/28 21:53
>>13
あっちこっちの会社への配布用なんで、Web上に無いまでも
インストーラ込みのモジュールが欲しかったんです。

>>14
スレ違いですかね・・・すいませんです。^^;
誘導サンクス!
16名無しさん@そうだ選挙にいこう:03/08/28 21:56
いきなりですが質問いいですか?
今仕事でACCESSでVBAプログラム書くことになったのですが
ADOとDAOってどちらを使ったほうが良いのでしょうか。
今作成しようとしているのはとくにC/Sとか大げさな処理はなく
ACCESS内の機能だけでデータベースを処理していくだけです。
他のサイトを見ていたらMSはDAOではなくADOの方に開発投資しているとか
書かれていたのでどちらがいいのかなぁと思いました。
今後のことを考えるとADOで記述したほうがよろしいのでしょうか。。

ACCESSは2002、OSはWin2kです。
よろしくお願いします。m(_ _)m
17名無しさん@そうだ選挙にいこう:03/08/29 01:25
ACCESS2002のデーターをWEBで観覧、修正などするのは難しいでしょうか?
18名無しさん@そうだ選挙にいこう:03/08/29 01:44
>16
好きな方で良いよ。
自分はADO派。
でも処理によってはDAOを使わざるを得ないけどね
19 :03/08/29 03:55
>>18
あ〜漏れも ADO 派ですね。
あまりバックエンドのデータベースエンジンに依存した書き方をしないように心がけようかと。
DAO って基本的に Jet データベースエンジンのためのものですよね?
>>16
今後ActiveServerPagesとかMSDEをやる可能性があるのなら、ADOにしておいたほうがよいかも???
ただ、MDBのAccessのフォーム内部プログラムはDAOじゃないとだめだったっけ?

21名無しさん@そうだ選挙にいこう:03/08/29 17:40
フォームで入力したデータを、レポートに出力する際に、サブレポート(フォーム)の
部分が、逆さまになってしまいます。
例えば、1、2、3の順でフォームに入力すると、3、2、1とレポートに出力されてしまいます。
まあ、最初から3,2,1とうてば1,2,3と表示されるので何とかなるのですが、
ややこしいので、回避する方法を考えているのですが、ありますか?
>21
サブフォームのレコードソースを開いて当該フィールドを
昇順にすれば?
2321:03/08/29 19:14
>>22
それは、フォームには関係なくないですか?
とりあえず、いまやってみても直りませんでした。。
\\\PC00\Data\Data.mdb 中にあるTbl_Hogeを、
こっちのPC中のProgram.mdbにリンクテーブル
として引っ張ってくる。

これをできれば手動ではなく、ボタン一発で
出来るようにしたいんですが
VBAでどう書けばいいんでしょう。
(権限に関しては取りあえず問題にしなくていいです。
お互い何でもありのadministratorってことで)
2524:03/08/29 19:33
ごめんなさい。
マクロをいじってたら「データベース変換」
って項目で、何だかそういうのがありました。
これでいけそうです。
では
26名無しさん@そうだ選挙にいこう:03/08/29 21:56
>>21
サブフォームのレコードソースを
テーブルでなくクエリーにして
該当部分を昇順にすればよいはず。
レコードソースに直接SQL文を書いてもいいが。
2716:03/08/30 03:22
皆様ありがとうございます。
あれからも色々調べてみたのですが
どうもDAOはマイクロソフト側でもサポートはしない体制のようですね。。。

20さんもおっしゃっていたASPやMSDEなどを考慮するのであれば
たしかにADOのほうがよいと思いました。
ですが、今回の仕事は完全にACCESSだけで行える処理のようで
データソースも設定することもないくらいのもののようです。
こうなるとADOって意味なくなりますよね(T T)

なので今回はDAOで記述することにしました。
なんとなくどっちにしようかなぁと、かなり悩んでいたのですが皆さんのおかげで
ふんぎりつけることができそうです。

18さん、19さん、20さん
ありがとうございましたm(_ _)m
またこれからなにかありましたらよろしくお願いします。
28ゆういち:03/08/30 03:22
Access2000で作成したDBを
HPで公開することを考えています。
将来的には何千件という店舗の営業時間を
データにするのですが、

ネットからのアクセス時に開店している店を
Hitさせるには、
データ入力時にどのように入力すればよいですか?
関数の使い方がいまいちよくわかりません。

よろしくお願いします。
29一定時間後に終了:03/08/30 07:20
操作をしなくなってから一定時間後に Access を終了させるようにしたいのですが、
これってフォームのタイマーイベントを使う方法しかありませんか?
Access 2000 を使っています。
30名無しさん@そうだ選挙にいこう:03/08/30 08:50
>>28
WEBのことはよくわからんが、
メインフォームを開くイベントで
TIME関数を表示するテキストボックスを
作ればいいんじゃない。
>>28
俺もWebの事は良く解らないから、普通のクエリで説明。

テーブルに開店時間・閉店時間の各フィールドを作成。
定型入力ウィザードで時刻(S)を指定しておけば入力が楽。
入力フォームのテキストボックスの書式にも時刻(S)を指定。

選択クエリで where time() between 開店時間 and 閉店時間
と絞り込めば、現在、開店中の店だけ絞り込める。
>>28
> データ入力時にどのように入力すればよいですか?
データの持ち方のこと聞いてるのか ?
>>31 が言うように、開店時刻/閉店時刻を持てばいいと思うが。
まあ、定休日とかの情報もいるだろし、店によっては曜日毎に閉店時間が違ったりすることもあるだろうな。
ここら辺で、どこまで DB 側でサポートして、どこまで運用でカバーするかを決めるのが腕の見せ所だろ。

> 関数の使い方がいまいちよくわかりません。
何を訊きたいのかよくわからん。
SQL の話か ? Web の話か ?

>>29
> これってフォームのタイマーイベントを使う方法しかありませんか?
って訊かれたら、「いいえ、他にもあります。」としか答えられないが。
タイマーイベントでなんか不満なのか ?
33名無しさん@そうだ選挙にいこう:03/08/30 19:01
Access 2000 を使っています。
フォームにレコードセットが関連付けられている場合、
そのレコードセットの型は DAO.Recordset であって、ADODB.Recordset ではありませんよね?

Microsoft は DAO から ADO, ADOX, ADO.NET に移行している気がするのですが、
現行の (Access 2000 より新しい) Access でもフォームに関連付けられているレコードセットは
DAO の Recordset なのでしょうか?

基本的に ADO でプログラムを書いているのですが、
部分的に DAO が出てくるのが気持ち悪くて。
34名無しさん@そうだ選挙にいこう:03/08/30 19:40
Microsoft Office XP Developer
フォームおよびレポートの基になるデータ
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/modcore/html/deovrthedatabehindformsreports.asp

ここのコードを見る限り、フォームの Recordset プロパティに ADODB.Recordset 型のオブジェクトを代入しています。
Access 2002 では フォームの Recordset プロパティはもはや DAO のレコードセットではなく
ADODB のレコードセットなのでしょうか?
3521:03/08/31 00:05
だいぶ間が開いてしまいましたが、いまだにやっています。
結局クエリのどの項目を昇順、降順にしても、フォームで入力したことは
レポートでは逆さまの順番で写ってしまいます。

やりたいことをもう一回書くと、フォームのサブフォーム部分に入力する商品情報が
データシート形式なんですが、1,2,3の順で上から入力すると、レポートのサブレポ
部分では3,2,1の順で表示されてしまう事を直したいということです。

なお、フォームからレポートを開く際には
Praivate Sub レポート_Click()
Me.Refresh
DoCmd.OpenReport "R_メイン", acViewPreview
, "管理番号" = '" & Me!管理番号 & "'"
End Sub

で開いてます。。
>>35
レポート上のサブレポートのレコードソースは何になってる?
テーブルなら一度削除して「...」でビルダー(クエリデザイン)開いて
同テーブルで当該フィールドを昇順にすれば?
3721:03/08/31 01:39
>>36
そもそも、大元はテーブルなんですが、それと全く同じクエリをテーブルから作って
サブレポのソースはそのクエリになっています。
それで、登録した順にレポートに記載したいので、オートナンバー
で番号振って、それを昇順にしているのですが、どうやっても結果が変わらないのです。。
3836:03/08/31 02:34
>>37
それじゃサブレポートをデザインモードで開いて
メニューの表示から「並べ替え/グループ化」を選択
開いたウインドウでフィールドと並べ替え順序を設定してみて!
39名無しさん@そうだ選挙にいこう:03/08/31 03:05
インデックスって Seek メソッドを使ったときにしか意味がないものなんでしょうか?
ADO の Find メソッド、 DAO の FindFirst メソッドなどを使ったときには、
インデックスの効果は発揮されないんでしょうか?
40名無しさん@そうだ選挙にいこう:03/08/31 03:39
ADO のレコードセットのブックマークと、
DAO のレコードセットのブックマークって、
相互に代入不可なんですね…ショボーン
41名無しさん@そうだ選挙にいこう:03/08/31 05:41
Access 2000 における Recordset プロパティの説明
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/off2000/html/acproRecordset.asp?frame=true
Access 2002 における Recordset プロパティの説明
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbaac10/html/acproRecordset.asp?frame=true
MSDN での説明を見る限り、 DAO のレコードセットの場合も ADO のレコードセットの場合もあるみたいですねぇ。
42名無しさん@そうだ選挙にいこう:03/08/31 06:57
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dao360/html/daobjrecordset.asp?frame=true
DAO 3.6 のリファレンスなんて、すでに TOC から削られていて ツリーと同期しない…(泣
かろうじて MSDN の検索からたどれますが…
43Treiber ってなんですか?:03/09/01 18:09
OLE DB のデータソース(とうかプロバイダ?)で、
Microsoft Access - Treiber (*.mdb) というのがあるんですが、
Triber ってなんですか?

それと、データソースを追加するときには
「 ODBC Data Source Administrator 」 ってウィンドウを開きますが、
なんで「ODBC」なんでしょうね…

OS は Windows XP Professional 英語版です。
44Treiber ってなんですか?:03/09/02 11:47
ODBC接続によるCalcデータ処理
http://openoffice-docj.sourceforge.jp/document/tips/d-1002.html

Driver do Microsoft Access (*.MDB)
Microsoft Access Driver (*.MDB)
Microsoft Access-Treiber Driver (*.MDB)

ますますどれ選んでいいかわからなくなってきた…

*.mdb ファイル用の OLE DB プロバイダには3種類あるってことでしょうか?
45名無しさん@そうだ選挙にいこう:03/09/02 13:11
タブコントロール内の一番上にコンボボックスを設置しています。
コンボボックスには自動ドロップダウンを採用しています。
そうすると、裏側のタブコントロールから移動してきたときに、
コンボボックスに自動でフォーカスが移ってしまい、勝手に
ドロップダウンが表示されて、ドロップダウンの下にきてるコントロールが
見えなくなってしまって、困ってしまいます。
自分としては、裏側のタブコントロールから移動してきた場合に限り
一番上のコンボボックスに自動ドロップダウンさせないようにしたいのです。
ちょっとしたことなのですが、解決したいです。
アドバイスお願いします!
46名無しさん@そうだ選挙にいこう:03/09/02 13:18
>>45
自動ドロップダウンはやめにして、
条件に応じてDropDown メソッドを呼び出すようにしたほうがいいんじゃないかなぁ。
47名無しさん@そうだ選挙にいこう:03/09/02 13:24
>>46
なるほど!なんとなく分かります。
もうしわけないのですが、こちら完全初心者なので少し解説をお願いしても
よろしいでしょうか?
条件に応じてDropDownメソッドを呼び出すとは
具体的にどうすればいいのかちょっとわからないので。
お願いします!
48名無しさん@そうだ選挙にいこう:03/09/02 13:32
>>47
あらかじめ言っておくと、もし VBA 使えない人なら、あきらめてくれ。
コントロールの名前が cbCategory だとすると、
フォーカスを取得したときに cbCategory_Enter() が呼び出されるから

Private Sub cbCategory_Enter()
Me.cbCategory.Dropdown
End Sub

でドロップダウンできる。

もしかしたら AutoExpand プロパティを操作することでも似た様な事が出来るかもしれない。
49名無しさん@そうだ選挙にいこう:03/09/02 13:34
>>48
条件に応じてってことは、直前にいたタブ(というかページ)に応じてってことだから、
そのページがフォーカスを取得したときに Me.cbCategory.Tag にでもその旨を記録しておけばいいと思う。
ちなみに Tag プロパティってのはコントロールごとに用意されているメモ代わりに使える変数。
50名無しさん@そうだ選挙にいこう:03/09/02 13:40
>>45
というか、「自動ドロップダウン」なんてのがあったんだ…
漏れ、 Access 2000 なんだけど、ないような…
51名無しさん@そうだ選挙にいこう:03/09/02 13:41
あと、だれか Treiber って何なのか、おしえて…
52名無しさん@そうだ選挙にいこう:03/09/02 13:41
休憩時間が終わったから、またね〜
5345:03/09/02 13:49
>>50
Private Sub Excel_Enter()
'ドロップダウンを自動表示
Excel.Dropdown
End Sub
5445:03/09/02 13:51
46さん ありがとうございます 勉強しておきますね
55名無しさん@そうだ選挙にいこう:03/09/02 13:52
>>53
え?つーか、そこまでやってるんなら、
それに条件分岐つければいいだけかと…
5645:03/09/02 13:56
あ 条件分岐がわからないんですよね すいません
57名無しさん@そうだ選挙にいこう:03/09/02 14:03
>>56
ページの切り替えの際にもイベント発生するでしょ?

Private bDropDownShitai as Boolean

Private Sub Form_Load()
bDropDownShitai = False
End Sub

Private Sub pgUra_Click()
bDropDownShitai = True
End Sub

Private Sub cbCategory_Enter()
If bDropDownShitai = True Then
Me.cbCategory.Dropdown
End If
End Sub

とかでいいんじゃないかと。
ドロップダウンするべきか否かを適当な Private 変数に記憶しておいて、
その値はフォームがロードされた時点で False にしておいて、
別のページに移ったときに True にしておく、と。

ちなみにこのコードで期待通りの動作をするかどうか、チェックしてません。
58名無しさん@そうだ選挙にいこう:03/09/02 14:04
>>57
あと一度ドロップダウンした後は bDropDownShitai = False とかしておけばいいんじゃないかな。
5945:03/09/02 14:10
ありがとうございます 試してみます!
コードまで書いてもらってすいませんでした!
頑張ります。
6045:03/09/02 14:41
最後の
Private Sub cbCategory_Enter()
If bDropDownShitai = True Then
Me.cbCategory.Dropdown
End If
End Sub
のbDropDownShitaiってところに変数が定義されてませんのコンパイルエラーが
でるんですよね。
61名無しさん@そうだ選挙にいこう:03/09/02 15:17
winXP,access2002を使っています。
クロス集計クエリで行見出しに顧客名、列見出しに取引日(月にまとめる)を設定し
月毎の顧客別売上クエリを作りました。
これをフォームで直近の3ヶ月だけ表示したいのですがどのようにすればよいでしょう?
現在の月を判断し必要な列だけを取ってくる方法がわかりません。
教えて下さい。
62名無しさん@そうだ選挙にいこう:03/09/02 15:22
>>61
Date 型の変数から月、日、曜日などを取り出す関数は、
Month, Day, Weekday が用意されていたと思うが。
63名無しさん@そうだ選挙にいこう:03/09/02 15:23
あと、必要な「行」?
6461:03/09/02 15:39
>>62
レスありがとうございます。言葉が不足でした。
出来上がったクエリは顧客コード、顧客名、1〜12月の14個のフィールドがあります。
これを顧客コード、顧客名、直近の3ヶ月(今なら7〜9月、来月になったら8〜10月)の
5つのフィールドだけをフォームに表示したいのですが
該当テキストボックスのコントロールソースに「Month(Date())月」などと書くと
エラーになってしまい、レポートのように詳細のフォーマット時イベントもないので
(レポートだったとしてそれで出来るか分りませんが)困っています。
引き続きよろしくお願いします。
65名無しさん@そうだ選挙にいこう:03/09/02 15:42
それは表の作り方に問題があるんじゃないかなぁ。
1〜12 のフィールドを作るんじゃなくて、
つきのフィールドをひとつ作ってそこに 1〜12 までの値を入れるようにしたほうがいいとおもう。

え?もう運用開始しているから無理って?
>>64
書き方が悪いんだよ。
コントロールソースに
=Month(date())-2 & "月"
=Month(date())-1 & "月"
=Month(date()) & "月"
とそれぞれ書いてみ。
6766:03/09/02 16:51
それと、余計なお世話かもしれないが
年末年始を挟む場合はどうするつもりだ?
年号から入力した方が良いと思うぞ。
そうなったらソースの指定が複雑になって来るから
VBAでコード書いた方が楽になる。
Month(Date())が1と2の場合は分岐が必要になってくるだろう。
6861:03/09/02 17:20
>>65
レスありがとうございます。現在格闘中です。運用はまだです。
>つきのフィールドをひとつ作ってそこに 1〜12 までの値を入れるようにしたほうがいいとおもう。
結局Month(date())でWhere条件で抜き方が分りませんでした。
「前々月」「前月」「当月」の3つのクエリを作ってくっつけようとも試みましたが
売上がコンスタントに発生しない顧客が拾えないという事態になりました。

>>66
テキストボックスに金額ではなく
7月・8月・9月と表示されます。
=Month(Dateadd("m",-2,Date()))でも一緒でした。
フィールド名が紛らわしいからでしょうか

もう少し頑張ってみます。
6944:03/09/02 18:20
なんだか SQL Server のスレッドのほうがふさわしい気がしてきました…
つーことでそっちに移動します。
7061:03/09/02 18:45
出来ました。
1〜12月のフィールドを非表示にして前々月・前月・当月の3つの非連結テキストボックスを作り
フォームの開くときイベントに

Me.前々月.ContorolSource=Month(Dateadd("m",-2,date)) & "月"

でうまくいきました。ありがとうございました。
71名無しさん@そうだ選挙にいこう:03/09/02 22:51
Access 2002 をお使いの方にお聞きしたいことがあります。
Access プロジェクト(拡張子 *.adp)を開いて、
めにゅーから 「ファイル」→「外部データの取り込み」 を開くと何がありますか?

Access 2000 だと「インポート」しかないのですが、
Access 2002 では「リンク」も追加されているのでしょうか?
72名無しさん@そうだ選挙にいこう:03/09/03 02:00
済みません、ちょっと教えてください。

海外から Access97のファイルだという MDB ファイルが送られてきました。

ところがWindows NT4.0や Windows 2000 の 日本語版 上で 
Access97日本語版を起動して そのMDB File を開こうとしたのですが
Access97のファイルとして認識しません。

英語版の Access97で作成された 
MDBファイルを開く方法はあるのでしょうか?

英語版のAccess がインストールされている英語版のWindows PCで開け
ということなのでしょうか?
74名無しさん@そうだ選挙にいこう:03/09/03 14:05
どなたか教えて下さい。 テキストボックスで
文字の間に含まれる空白を、取り除きたいのですが。
よろしくお願いします。
>74
「Access 文字列 空白 取り除く」でぐぐってみれ
76名無しさん@そうだ選挙にいこう:03/09/03 15:06
それが判ればネェー
77名無しさん@そうだ選挙にいこう:03/09/03 21:01
 実は、アクセスのレポート作成において教えていただきたいことがあります。
1対多の関係で、多側を横に一覧表示したいのですが!!
>>>
(exp)
 MS-OFFICE 1.WORD 2.EXCEL 3.ACCESS
上のような形で、レポートを作成することは可能なのでしょうか??
 MS-OFFICE
1.WORD
2.EXCEL
3.ACCESS
このようなレポートは、作成できるのですが・・・。
どなたか、よきアドバイスをお願いいたします。
78名無しさん@そうだ選挙にいこう:03/09/03 22:04
追記
ちなみに、バージョンはMS-ACCESS 2000です。
ついでに、AGE
79名無しさん@そうだ選挙にいこう:03/09/03 23:54
>77
VBAが使えるなら、不可能ではないけど・・・
わかるなら自力で解決できているよね・・・
80名無しさん@そうだ選挙にいこう:03/09/03 23:58
>77
あ、つっこみ忘れてた!

expってEXamPle(例)ってこと?
素直に読んだら、EXPerience(経験)なんだけど
81名無しさん@そうだ選挙にいこう:03/09/04 02:57
>>73
ありがとうございました。
さっそく試してみます。
DAOを使わざるを得ない場面ってどんな場面?
DB板にあったコレ
http://pc2.2ch.net/test/read.cgi/db/1056952414/90-
テーブルでダブルクォートを2つ続けて直接入力する方法

気になるんだが、誰か知らないか?
>>83
そんなマルチポストなんか放っておけばいいっすよ

オイラは知らんけど
ふと気づくと初心者スレが死亡している・・・・・・
まあ、いいやな。
86名無しさん@そうだ選挙にいこう:03/09/04 20:05
【玄人】素人ACCESS相談所【禁制】
http://pc2.2ch.net/test/read.cgi/bsoft/1047052026/993
http://pc2.2ch.net/bsoft/kako/1047/10470/1047052026.html

誰も 1000 ゲットしてない…
8777:03/09/04 22:43
>79
(exp)=例どす。deutschでは、Beispiel
ein gutes beispiel(よい例を教えてください。m(__)m)

8877:03/09/04 23:46
>79
早く突っ込んでクレ〜〜〜ッッっ!!
コードも教えて!
エディター使えば何とかなるんでヾ(@⌒ー⌒@)ノ
8977:03/09/04 23:57
>79
禿
90名無しさん@そうだ選挙にいこう:03/09/05 09:12
アクセスで残高計算するうまい方法をどなたかお教え下さい。

最近、会社(自営業)の金銭出納帳簿をアクセスで作成してみようと
試みたんですが(従来はエクセル)。日付、但し書き、入出金相手先、入金、出金
の項目を正規化してテーブルを作成したものの、残高と言うのは、
残高(n)=残高(n−1)+入金(n)−出金(n)で計算する必要が有る為
クエリ等では計算出来ません。しょうがないので、今んとこ、残高以外のデータを
一ヶ月単位で抽出し、エクセルにエクスポートしてエクセルシートの方で残高の列を
追加してます。何らかの方法で、上の残高計算をアクセスで出来る裏技をご存じ
でしたら、どなたかお教え下さい。
>77
例えばテーブルAのフィールドAに対して、テーブルB/C/D/E…の値を
取って来てそれを
テーブルAのフィールドA1に対応する値:B1 C1 D1 E1…
テーブルAのフィールドA2に対応する値:B2 C2 D2 E2…
と言うことなのかな?
そうだと仮定するして、どのようなやり方にでも対応できる方法だと、
1)臨時で書き込むテーブル(Temp)を用意する
2)レコードセットでTempテーブルを開く
3)テーブルAのA1に対応する値を取り出す(方法はいろいろ、クエリーで
 一度テーブルに吐き出すか、レコードセットでループで探すとか…)
4)Tempテーブルに見つけた値を入れ込んでいく
5)値を入れ込み終わったら、Tempテーブルを更新する
6)テーブルAのフィールドA2に対応する値はA1と同じ要領で行う。
 以下、ループでテーブルAの必要なレコード全部に対して行う。
(こんなことしなくても、クロス集計とかユニオンで集計出来ないかな?)
このまま、レポート表示すれば横一列になるだろうし、
縦にしたければ、レポート表示で表示させたいフィールドを縦に並べれば
縦に表示できると思うけれど…

以上でよろしければ必要なコードは自分で調べてください。
テーブルの状態とかどのように値を集計するか良く分からないから、
これ以上はアドバイスできない。
9291:03/09/05 13:06
>91で
「テーブルAのフィールドA1」「テーブルAのフィールドA2」は値A1と値A2でした。
フィールドと言う言い方は不味いですね。
1対他の1に対応する値と言うことです。
>>90
パラメータnを与えたらn-1の残高を返すクエリを作っておいて、
それを結合して計算すれば良いのでは。
あるいはサブクエリでも。
94名無しさん@そうだ選挙にいこう:03/09/05 16:57
XP、access2002を使っています。
クエリをCSV形式で添付ファイルにして
メールで送ろうとしているのですが
Sendobjectなどで直接CSVで送る方法があれば教えて下さい。
今のところはTransferTextでCSVファイルをデスクトップに落とし
手動でメールに添付するしかないのかなと思っています。
95名無しさん@そうだ選挙にいこう:03/09/05 21:04
>94
自分はBASP21でしてる
9690:03/09/05 21:57
>>93
アドバイスありがとうございます。少し試行してみます。
97名無しさん@そうだ選挙にいこう:03/09/06 19:12
ADOで取得したレコードセットを非連結のデータシートビューに表示したいのですが、
そんなことって可能でしょうか?
取得した1レコードだけならコントロール名を指定して表示させる事ができるのですが、
Me( hoeghoge_name ) = .Fields(cnt)
データシートビューにどんどん列を追加していきたいのです。
98名無しさん@そうだ選挙にいこう:03/09/07 20:48
マクロで、アクションクエリを実行したいのですが、例えば削除クエリを実行したときに、
「削除しますがOKですか?」で、YesかNoかを選ばせるウインドウが出ますよね。

これを自動でYes選択とさせるように設定(マクロに埋め込む)することはできますでしょうか?
要は、マクロボタン一つ押すだけで、あとは何もしないですむようにしたいのです。
よろしくお願いいたします。

Access2000です。
>>98
ネタか?
マクロのアクションに「メッセージの設定」ってのがあるだろ。
削除クエリの実行よりも前にメッセージの設定で
メッセージの表示を「いいえ」にしとけ。
>>98
マクロの「クエリを開く」の前に
「メッセージの設定」をいれてやり、「いいえ」にすれば
メッセージはでません。

また、オプションでも設定は可能です。
10198:03/09/07 23:27
丁寧なアドバイスありがとうございます。
ネタではなく、本気で聞いてました(汗
102名無しさん@そうだ選挙にいこう:03/09/08 07:21
>>98
[ツール]-[オプション]-[編集・検索]
でアクションクエリーのチェックをはずす。
こうしておけば、すべてに対してメッセージは出ない。
10394:03/09/08 11:01
>>95
遅レスですがありがとうございます。
こんなたいそうなもの使いこなせるか判りませんが
がんがります
104名無しさん@そうだ選挙にいこう:03/09/08 19:09
ボタンの色をかえたいんですけど、どうすればいいでしょうか?
あのグレーの色にしかならないんでしょうか?

教えてください。お願いします。
105名無しさん@そうだ選挙にいこう:03/09/08 22:27
クエリに
[死亡年月日]と[生年月日]がそれぞれあって
それぞれ[死亡年月日]−[生年月日]で死亡時の年齢を出して
また[死亡年月日]に書かれていない場合現在の年齢を出すにはどうすればいいのでしょうか?
106名無しさん@そうだ選挙にいこう:03/09/09 06:22
>>105
[死亡年月日]の部分を下に置き換えるといいと思う。
IIf(ISNULL([死亡年月日]),Date(),[死亡年月日])
>>105
年齢: Iif(IsNull([死亡年月日]),DateDiff("yyyy",[生年月日],date()),DateDiff("yyyy",[生年月日],[死亡年月日]))
108名無しさん@そうだ選挙にいこう:03/09/09 12:27
DateDiff("yyyy", Nz([死亡年月日], Date()), [生年月日])
かな?
>>108
それだと年齢がマイナスになる。
DateDiff("yyyy", [生年月日],Nz([死亡年月日], Date()))
>>107の書き方でも桶
110だいす:03/09/09 13:34
フォームに入力された値を元にクエリを実行しているのですが、
クエリ実行時にフォームに値が入っていないと、「パラメータ入力」ウィンドウが開き
値の入力を要求されます。
これを出さないようにする方法はないでしょうか?
>>110
フォームの値を元にクエリを実行するのに
値が入ってないとは何事だ!
クエリが実行出来ないの当たり前じゃんよ。
>>110
クエリ実行前に入力チェックを行うのが筋じゃないかと。
その時にエラー停止させるなりデフォルト値を設定するなりすれば。
113名無しさん@そうだ選挙にいこう:03/09/09 15:06
98SEでAccess2000を使っています。
MSDEの勉強をしようと思い
MSDEのインストールをしましたが途中でフリーズして強制終了しました。
再インストールしようとすると
「MSDEはインストール済みです。MSDEセットアップはメンテナンスモードをサポートしません」
のメッセージが出ます。アンインストールしようとすると
「D:\MSSQL7\Uninst.isuが有効でないか破損しています」と出てアンインストールも出来ません。
Office修復後も変わりません。
どうすれば動くようになるのでしょう。また、動かすのが無理ならアンインストールする方法を
教えて下さい。よろしくお願いします。
>>113
それ、自分も何度か経験あります。
アンインストール状態にするにはMSSQL7のディレクトリ削っただけではダメで、
MSSQL7を含むレジストリをregeditで検索して消した気がします。
色々と調べて他にやる方法が無ければ、OSの再セットアップも覚悟で試してみて下さい。

MSDEのセットアップはよくフリーズするのでとても慎重になります。
出来るだけ余分なプロセスを終了させてやった方がいいですね。
115114:03/09/09 17:03
>>113
"MSSQL7を含む"ってのは違ったかもしれません。
"SQL"で検索しながらSQL Serverのレジストリを推測しながらだったかもしれません。
かなり前のことで記憶が曖昧ですみません。
とにかくregeditでアンインストールできました。
>>114さんレスありがとうございます。
regeditってはじめて知りましたが
思い切ってやってみます。
117 :03/09/09 19:53
Accessで
年月をグループ化して集計したいのですが
年月: DateSerial(Year([Date]),Month([Date]),1)

ですると集計される月の表示が2003/9/1みたいに日まで表示されます
これを2003/9みたいに年月だけ表示するのにどうすればいいのでしょうか?

最後の1がいらないと思いますが、取ればエラーになるし・・・
>>117
Format([Date]."yyyy/m")
119118:03/09/09 20:32
間違えた。
Format([Date],"yyyy/m")
120名無しさん@そうだ選挙にいこう:03/09/10 21:45
レポートファイルを OutputTo メソッドを利用し、snapshotに出力するように
動的にPDFファイルに出力することは可能なのでしょうか?
デフォルトのプリンターをPDFにして、通常通り印刷を行いPDFを作成すると、
ファイル名がレポート名になり、確認ダイアログも出てしまうので、レポート
名を自動で生成し、確認ダイアログも出さないようにしたいのです。
ACCESS2002を使用しております。

#snapshotからPDFに変換を行っても良いのですが、変換ツールが見つからな
かったので・・・
121名無しさん@そうだ選挙にいこう:03/09/10 22:22
クロス集計クエリで、
カウント数の表を作ったとき、
ゼロの項目を、「0」と表示させることはできるのでしょうか?
空白になってしまい、プロパティをいじくってみても「0」表示にできません。

>>121
デザインモードで開き「行列の入れ替え」欄に「値」とあるフィールドを

フィールド名:IIf(IsNull(Count([テーブル名]![フィールド名])),0,Count([テーブル名]![フィールド名]))

とし、「集計」欄を「カウント」から「演算」に変更する。
123名無しさん@そうだ選挙にいこう:03/09/11 11:07
質問です。Windows2000でAccess2000を使っています。
サブフォームに埋め込んだクエリのデータシートにフィルタをかけたいのですが、
条件は、テキストボックスでL_NO, K_ID, TOYODAY_S, TOYODAY_Eを入力して、条件を決定しています。
検索ボタンを押すと、下記のコードが実行されるようにしました。

strLike = "[L_NO] Like '" & Me!L_NO & "*' AND [K_ID] Like'" & Me!K_ID & "*'" & _
" AND ([T_KIROKU] Between #" & Me!TOYODAY_S & "# AND #" & Me!TOYODAY_E & "#)"

Me!埋め込み22.Form.Filter = strLike
Me!埋め込み22.Form.FilterOn = True

ところが、このコードを実行すると、抽出条件の入力ダイアログが表示され、
BETWEEN以下に指定したいテキストボックスの条件を実行してくれません。
理由がわからず困っています。わかる方おしえてください。
124123:03/09/11 11:43
ごめんなさい。[T_KIROKU]のフィールド名の指定が違っていました。
正しいフィールドにしたらちゃんとうごきました。
>>123
>抽出条件の入力ダイアログが表示され
この時点でMe上(フォーム上)にそのテキストボックスなりが
存在しないのでは?
strSQL = "SELECT * INTO [Excel 8.0;DATABASE=C:\test.xls].[顧客] FROM T顧客;"

上記のクエリをADOに対して実行し、MDBのテーブルをEXCELにエクスポートしようとしたら、
「数値フィールドがオーバーフローしました。」ってエラーが出ます。

顧客番号が15桁あるからなのではと思うのですが、
どうしたら文字列としてエクスポートさせられるのかわかりません。
よろしくお願いします。
>>126
ん?
今、試してみたけど、ちゃんと出力出来たぞ。
その顧客番号のフィールドサイズは何になってる?
十進型じゃないと無理だよ。
つーか長整数型だと、15桁の数値は入力すら出来ないハズだけどな。
128126:03/09/11 17:34
>>127
顧客番号のフィールドは、文字列です。

・・・あれ?

と思っていたら、倍制度浮動小数点数でした。
どうも、誰かが型を変更したようです。
ほかの数字からなる文字列型も、すべてそれに変えられていました。
文字列に直したら、オーバーフローエラーは出なくなりました。
どうもありがとうございました。


文字列が主キーで悪かったな!>>誰か
>>128
誰かがって 言い訳臭いです。
130121:03/09/11 20:55
>122さん

できました。ありかどうございました。
主キーが文字列って、ぜんぜん悪くないっしょ
バーコードとかさ
普通のJANだって長整数じゃ足りないし、本とかCDのバーコードはアルファベット
まで入ってるよ
普通は別フィールドにID振るけどな
エクセルのデータベースをアクセスのテーブルに取り込む事は可能ですよね?
>>133
可能です。
としか答え様がないが?
普通にインポートしてみ。
135126:03/09/12 11:11
ところで、Accessのパフォーマンスは、
文字列型のキーと、数値型のキーでは、どちらが早いのでしょう?
もしも数値型であれば、別でID持たせることも検討してみたいと思います。

ちなみに、「誰か」は特定していますが、個人名をさらしたくなかっただけでう>>129
>>135
どれだけパフォーマンスに違いが出るかわからないけど
数値の方が管理し易い事ないか?
リレーション組んでる場合、外部キーも15桁の文字列って事だよな。
そうなると、データ件数によっては違いが出てくるかも。
普通に正規化の手続き踏んで逝けば、自然と数値型になると思うけどね。
間違って重複データを入力して、エラー起こす可能性もあるし。
レコードを特定する為のIDはオートナンバーで勝手に番号を振ってもらって
Accessで管理してもらった方が楽ではある。
137名無しさん@そうだ選挙にいこう:03/09/12 14:35
ACCESS2000です。
チェックボックスにチェックを入れたレコードのフィールドを使用不可に。
チェックが入っていなければ使用可にしたいのですが、

If [Check_box] = True Then
[TXT_A].Enabled = False
Else
[TXT_A].Enabled = True
End If

上記のように書くと他のレコードにまで反映されてしまいます。
つまり、1レコード目だけ使用不可にしたいのに、1レコード目にチェックを入れると
全レコード使用不可の状態になってしまいます。

解決方法をお聞かせください。
初心者ですがよろしくお願いします。
138126:03/09/12 14:57
>>136
そのキー値は、実際の業務で一意の値として使われているものなので、
あえてキー用のフィールドを作らなくてもいいかな、と判断したわけです。
正規化の手続きを踏んでいった上で、文字列型がキーになりました。
139名無しさん@そうだ選挙にいこう:03/09/12 15:36
初めて書き込みします。 win98se,access2000です。

質問させて下さい。 テーブルにフィールドA、フィールドBがあるとします。
フォームにはテキストボックス1、テキストボックス2があります。

フォームのテキストボックス1の値を参照し、条件分岐でフィールドA、フィールドBの
どちらかをテキストボックス2に表示させる事は出来ますか?
フォームにはフィールドA,B共表示されていません。

IIFでやってみたらname?とかいうエラーが出ました。
どなたか原因をお教えいただけないでしょうか。 よろしくお願いします。
>>137
非連結のチェックボックスだとそうなる。
どうすればいいかはわからないけど
1.単票フォームなら気にならない
2.レコードソースにチェックボックスを作る
3.>>141が教えてくれる方法でやってみる
>>137
それ、無理だと思う。
条件付き書式で表示色とかをレコード毎に指定することは
出来るけど。

>>139
単票フォームか帳票フォームかで状況が大きく変わるが。
帳票フォームなら、>>137のと似てるけど、このレコードは
フィールド1、次のレコードはフィールド2ってな訳には逝かない。
単票フォームなら何とかなりそう。
142141:03/09/12 19:26
>>139
あ、ちょっと勘違いしてた。
取り敢えずテーブル構成書いてみ。
クエリ組んでるならそのクエリも。
>>142
 レスありがとうございます! access初心者なもんで、参考書片手にひーこら作っているのです。
 プロパンガスの配送と検針(メーターを見る)をaccessで記入&レポート印刷出来れば、と思ってます。
 テーブル構成は、

  検針T(テーブル) 1月1回目交換 1月2回目交換 1月3回目交換 2月1回目交換 ・・・・
  1月入力(フォーム) 交換コード 前回検針 今回検針 顧客名等 ・・・・

 ボンベの交換が1回目で終わる客もいれば3回交換するお客も居るのです。
 なので、今回検針を入力したときにそれが1回目なのか2回目なのかを見分けるのに
 交換コードも同時に入力(20030101など)するようにし、前回検針には最後に交換した
 検針データを表示させたいのです。

 とても分かりづらい説明だとは思いますが、自分の頭ではこう説明するしかありませんでした。
 クエリーですが、この場合には使う必要はない(というよりあまりクエリーを分かってない)と
 思い、使っていません。

 もしも説明するのがお手数でしたら、「この参考書を読め!」とか「このサイトを見ろ!」
 などでもかまいませんので、よろしくお願いします。
  
144名無しさん@そうだ選挙にいこう:03/09/12 22:38
>>135
目的がわからないが、チェックボックスにチェックのないものだけ
表示させてデータ処理するという対策ではまずいの?
>>137,141
俺のは、ACCESS97だけど
気になったんで確認してみたが帳票フォームでも
下のイベントプロシージャは普通に使えたぞ。
Private Sub テキスト1_Exit(Cancel As Integer)
If テキスト1 = 0 Then
テキスト2.ControlSource = "フィールド1"
Else
テキスト2.ControlSource = "フィールド2"
End If

End Sub

>>144
それだと全レコードのフィールドが切り替わるんじゃないか?
146144:03/09/12 23:35
>>145
確かにそうなんだが、
俺の137の解釈だと、テキスト1は非連結のコントロールで
帳票(だった場合)のテキスト2のコントロールソースを
変えればいいように思ったんだが。
俺はテキスト1に住所といれると氏名と住所、
テキスト1に電話番号と入れると氏名と電話番号が表示される
そんなフォームが作りたいんじゃないかなと思った。
俺の解釈が違ってたら申し訳ない。
147141:03/09/12 23:36
>>143
入力フォームが単票形式だと勝手に解釈するぞ。
検針テーブルの主キーも解らないし、説明が難しいんだけど。
例えば
検針テーブルが
ID, 1回目 2回目 3回目
1 20030101 20030115 20030130
2 20030102 20030116 20030131



とすると
Dim cmd as New ADODB Command
Dim rst as New ADODB Recordset
Set cmd.ActiveConnection = CurrentProject.Connection
cmd.CommandText = "select [1回目],[2回目],[3回目] from 検針 Where ID=1"
Set rst = cmd.Execute
If rst.Field(2) = Null Then
If rst.Field(2) = Null then
Me.前回検針 = rst.field(0)
Else
Me.前回検針 = rst.Field(1)
End If
Else
Me.前回検針 = rst.Field(2)
End If
で、一応成功。

本来の状況とは違ってると思うけど、参考にはなるかな?
因みに前回検針テキストボックスは非連結。
148141:03/09/12 23:41
ごめんな、俺が今ADO使ってるからADOで書いちまった。

ついでに7行目訂正
× If rst.Field(2) = Null Then
○ If rst.Field(1) = Null Then
>>137
そのチェックボックスの値をテーブルの中に持っておき、
レコードごとにその内容で判断すればよし。
150144:03/09/13 10:16
>>149
137じゃないが、具体的にどうすれば可能か教えてほしい。
139からの問題もそうだけど、帳表フォームのプロパティは、
全レコードに適用だと思うんだが。
151141:03/09/13 10:35
無理だっつーの。
フォーム上のコントロール制御の話してんだろうが。
詳細セクションに一レコード分のテキストボックスしか無いだろ?
それをレコード数だけ繰り返してるだけなんだから、全レコードが同じ
制御になるのは当たり前。
別の掲示板でも同様の質問があったけど、無理だとの回答。

ただ、条件付き書式は設定出来るから、いずれは出来る様になるかも。
152143:03/09/13 12:00
>147
 レスありがとうございます! 月曜日に会社で確認してみます。
 そのコードを解読できるように勉強します!

 本当にどうもありがとうございました!
コンボボックスをテキストボックスに変換、そしてその逆を、
VBAなんかで動的にできるのでしょうか?
154144:03/09/13 17:52
>>153
コンボボックスならリストになくても
テキスト入力できるから、そんな事しなくてもいいんじゃない。
>>152
それって俺に対するコメント?
155名無しさん@そうだ選挙にいこう:03/09/14 02:10
クエリで抽出したレコードに、レポートで通し番号をつけたいのですが、どうやればよいのでしょうか?
156144:03/09/14 09:30
>>155
俺は事務屋なんで
結果さえ求められればいいから
いったんワークテーブルにクエリーを吐き出してから
そのワークテーブルを基にしたレポートを出力する
プログラムやさんだと別の答えがあるかもしれない。
157名無しさん@そうだ選挙にいこう:03/09/15 01:39
OSwin98SE Access97をつかってます
Access97では四捨五入関数かないらしいのですが
レポートに数量*単価*1.05(消費税込の金額。小数点以下四捨五入)の横計と
税込みの合計を出したいのです。
通貨型にすると表示の上では四捨五入になってますが、合計すると微妙に違います。
これをなんとか手書きのように単純に合計できないものでしょうか。
既出だとは思いますが、過去ログ見てもわかりませんでした
これでずっとあれこれ悩んでます。よろしくお願いします。
158144:03/09/15 07:17
>>157
数量と単価がフィールド名ということで
=Int([数量]*[単価]*1.05+0.5)

159名無しさん@そうだ選挙にいこう:03/09/15 08:32
>>158
早速やってみました!!
ありがとうございました
うれしくって泣きそうです
160名無しさん@そうだ選挙にいこう:03/09/15 16:14
テスト用に大量のレコードをつくりたいのですが

テーブルに10レコードぐらいデータが入っています。
その中の1レコードを2万件ぐらいコピーしたいのですがどうすればよいでしょうか。
IDはオートナンバーで他のフィールドは同じにしたいのです。
161名無しさん@そうだ選挙にいこう:03/09/15 16:51
VBA無しで作るには

まず適当なテーブルをつくる。2万件なら2万件のレコードを持つやつ。
Excelかなんかでオートフィルつかって1〜20000までの奴。

テーブル1
field1
1
2
3
.
.
20000

でこんな感じのテーブル作成クエリーを作る。
SELECT 元テーブル.* INTO コピー先テーブル FROM 元テーブル,テーブル1;

で、これでコピー先テーブルに元テーブル1レコードにつき2万件のデータが入る。
テーブルデザインでこのコピー先テーブルにオートナンバーのフィールドを追加

こんな感じ。VBAのが簡単。
162160:03/09/15 17:30
>SELECT 元テーブル.* INTO コピー先テーブル FROM 元テーブル,テーブル1;

の部分で「クエリの入力には、1つ以上のテーブルまたはクエリが必要です」
と出てしまいます。

ちなみにVBAで作るとどうなりますでしょうか。
163160:03/09/15 18:02
できました!
ありがとうございました。助かりました!
164名無しさん@そうだ選挙にいこう:03/09/15 18:43
レポートや副表フォームから吐かせたOfficeLinkのExcel表、
ものすごーく順番がむちゃくちゃだったり、見栄えがわるかったり
するんですが、なんかレポートデザインそのままで吐かせたり
特定のフォーマットの表に見栄え良く吐かせることはできないでしょうか
165名無しさん@そうだ選挙にいこう:03/09/15 19:19
【累計テーブル】.         |
氏名      点数      |
ああああ    50       |
いいいい    45       |  ←このようなのを作ろうと思ってます。
うううう      80       |   毎月、下の方のテーブルにデータが貯まっていきます。
                  |   で、月末に、上のテーブルのデータ(累計)に下のテーブルの「今月の点数」
【今月獲得点数テーブル】.  |   を足します。この「名前が存在するのは足し、存在しないのは追加」
氏名      点数      |   という処理は、たぶん、クエリで出来ると思うのですが、どういう処理なのか
ああああ    3        .|   分からないので、検索出来ずに困ってます。
うううう     19        |   何というクエリを使えばいけるか教えて下さい。
せせせせ    8        .|   おながいします。
166144:03/09/15 20:18
>>165
クエリーだけでやろうとすると、
1.今月獲得点数テーブルと累計テーブルをつないで更新
2.1の形で今月獲得点数テーブルからデータ削除
3.今月獲得点数テーブルで残ったデータを累計テーブル追加する。
または、
1.今月獲得点数テーブルのデータを累計テーブル追加する
2.累計テーブルのデータを合計し一旦ワークテーブルに保存する。
3.累計テーブルのデータを削除し、ワークテーブルのデータを
 累計テーブル追加する。

他にも方法はあるかもしれないがひとつのクエリーだけでは
無理だと思う。
167153:03/09/16 10:37
>>154
いえ、コンボボックスに限らずリストボックスなどもです。
位置を入れ替えたりする関係で、変更できたら楽だなーと思った次第でして。
なにかいいほうほうありませんか?
168名無しさん@そうだ選挙にいこう:03/09/16 14:26
フォームの詳細設定の中にある
「並び替え」項目をVBAからいじるにはどうすればよいのでしょう?
169168:03/09/16 14:50
OrderByを使って解決しました。
日付を並べ替えているのですが、空欄が上に来てしまいます。
空欄を下にもっていきなおかつ昇順で並べ替えが出来ないでしょうか?
>>169
ORDER BY IsDate(日付), 日付
171168:03/09/16 15:17
>>170
すみません。現状はこのようになっていますが・・・
Private Sub ソートボタン_Click()
Me.OrderByOn = False
Me.OrderBy = "チェック日"
Me.OrderByOn = True
End Sub

ちょっと関数の使用法が良くわからないので具体的に教えて頂けないでしょうか。
172170:03/09/16 16:16
>>171
「並べ替え」には手を加えず
「レコードソース」に渡すSQLを直接変更したほうがいい。

Private Sub ソートボタン_Click()
  Me.RecordSource = "SELECT * FROM テーブル名 ORDER BY IsDate(チェック日), チェック日;"
  Me.Requery
End Sub
173名無しさん@そうだ選挙にいこう:03/09/16 18:26
データベース分割ツールでMDBを分割したのですが
分割したMDBに、リンクテーブルとしてテーブルを追加する場合
どういう手順を踏めばよいのでしょうか。
174名無しさん@そうだ選挙にいこう:03/09/16 21:28
>>172
ありがとうです。
でもどっちにしても同時に使用してるユーザー全員が影響受けてしまったので・・・
175名無しさん@そうだ選挙にいこう:03/09/16 22:53
>173
インポート→リンクテーブル
176173:03/09/16 23:26
>>175
出来ました!
177名無しさん@そうだ選挙にいこう:03/09/17 00:26
>>99
2ちゃんで、「ネタ」っていうのは作り話のことを言うんだぞ。
お前こそネタだろw
178初心者:03/09/17 04:31
教えてください〜。
サブフォームに抽出されたレコードを表示し、最後に値の合計をテキストボックスに出しているのですが、
レコード数が0件の時に、#Errorと表示されてしまいます。
これをレコード数=0の時には、0表示をさせたいのです。
nz関数を使ってみたのですが、うまく行きません。
どうぞお知恵をお貸しくださいませ。宜しくお願いします。
179名無しさん@そうだ選挙にいこう:03/09/17 09:45
質問です。
・OS Windows2000 ,ACCESS 2000を使用しております。

VBAでテーブルまたはクエリを開き,MoveFirstメソッドで最初のレコードに移動するとき
そのテーブルにレコードが存在しない場合は、"カレントレコードがありません"が表示され
プログラムを途中で終了しなくてはならなくなります。

そのため、テーブルにレコードが存在するかしないかを先にVBAで判定したい
またはうまくその状況を解決できる方法があれば教えて下さい。お願いします。
 テーブル/フォームの構成、クエリ、VBAの内容など差し支えない
 範囲で詳しく書くと、早く回答が得られるかもしれません
 (聞き返さなくても詳細が把握できる質問が望ましいです)
・事前にヘルプ等で調べられる範囲は調べてください
180名無しさん@そうだ選挙にいこう:03/09/17 09:47
すいません。>>179です。上の分の下4行は無視して下さい。
>>179
If レコードセット.State = 0 then
Msgbox "データが存在しません。"
Exit Sub
182179:03/09/17 10:06
181さん、どうも早い回答ありがとうございます。
例えば、Set T = DB.OpenRecordset("テーブル名")
とすると上文は
If T.State = 0 then
Msgbox "データが存在しません。"
Exit Sub
だと思うのですが、これを実行するとStateの部分が原因なのか
"メソッドまたはデータメンバがみつかりません"と表示されます。

なにか間違っているのでしょうか?
183名無しさん@そうだ選挙にいこう:03/09/17 10:06
Windows2000でAccess2000を使っています。
電話番号を01-2345-6789のようにハイフン付でデータを登録しています。
フォームから検索を掛ける際に

Me.Filter = "電話番号 = '" & Me![電話番号] & "'"
Me.FilterOn = True

といった具合に絞り込んでいますが、いちいちハイフンを入力するのが
面倒です。こういった場合に役に立つ技などありますでしょうか?
>>182
ごめん、1と0が逆だった。
レコードセットにレコードが存在しなかったら1を返す。

それと、DAO.Recordsetの場合はStateプロパティが使えない。
If T.EOF = True Then
に書き換えてくれ。
>>183
定型入力に
99\-9999\-9999
>>178
どこにどんな風に算式を入れてるか解らないから
答えようが無い。
187179:03/09/17 10:43
>>184
うまくいきました。ありがとうございます。
>>183
適当な標準モジュールに次のファンクションを追加してから、
Public Function pf_Replace(pExpression, pFind, pReplace)
  pf_Replace = Replace(pExpression, pFind, pReplace)
End Function

こうする。
Me.Filter = "pf_Replace(電話番号 ,'-', '') = '" & Me![電話番号] & "'"
Me.FilterOn = True
189188:03/09/17 10:48
>>188の訂正。
Public Function pf_Replace(pExpression, pFind, pReplace)
If IsNull(pExpression) Then
pf_Replace = Null
Else
pf_Replace = Replace(pExpression, pFind, pReplace)
End If
End Function
190183:03/09/17 10:49
>>185

迅速なご回答ありがとうございます。
電話番号は正しい定型で印刷する必要がありますので、
できれば検索をかける際に、ハイフンを無視して
0123456789と検索をかけるだけで、01-2345-6789の
データを絞りこめるようにしたいのです。
191183:03/09/17 10:56
>>188

ありがとうございます。早速試してみます。
192183:03/09/17 11:30
>>188

どうも!ばっちり動きました。
ありがとうございました!!
193名無しさん@そうだ選挙にいこう:03/09/17 15:42
Accessのテーブルを指定のセルの長さや大きさなど「指定のフォーマット」でExcelでエクスポート
するにはどうすればいいのでしょうか?

ただエクスポートだけじゃフォーマットまでは変えれませんよね?
194名無しさん@そうだ選挙にいこう:03/09/17 20:49
他にリンクしているテーブル、売り上げデーター と
顧客情報マスタ のテーブルがあります。
例えば、売り上げデーターの顧客コードを顧客情報マスタから参照して、
特定の担当部署だけ抜き出したいのですが、
売り上げデーター  ユーザーコード、商品番号、商品詳細、原価、売上・・・
顧客情報マスタ    ユーザーコード、担当部署、担当者、・・・
から、
****     ユーザーコード、担当部署、担当者、売上・・
というデーターを作りたいのです。売り上げデーターのテーブルは中継サーバーへの
リンクテーブルでいじくれませんし、10年分くらいのデーターが入ってるので
相当膨大な量があります。どうすれば良いでしょう?
195144:03/09/17 22:00
>>193
Excel側でVBAのコードを書いて
データを抜いてくるしかないんじゃないかな。
そうでなかったらAccessのテーブルなりクエリーの
データを複写してExcelに貼り付ける。
AccessからExcelへデータを送る方法
もあるかとは思うけど。
196名無しの素人:03/09/17 22:24
>>194
『売り上げデーター』『顧客情報マスタ』をリレーションシップの
設定画面で『ユーザーコード』結合させる。
リレーションシップの結合線を右クリック
『リレーションシップの編集』を選択
『結合の種類』を選択
『結合のプロパティー』Windowで『顧客情報マスタの全レコード〜』を選択『OK』
リレーションシップの設定を終了
クエリーウイザードで『顧客情報マスタ』からユーザーコード、担当部署、担当者を選択し
『売り上げデーター』から売上を選択する。
クエリーを開くで表示される。
ちなみにSQLだと『SELECT [顧客情報マスタ].[ユーザーコード],
[顧客情報マスタ].[担当部署], [顧客情報マスタ].[担当者],
[売上データ].[売上] FROM 顧客情報マスタ LEFT JOIN 売上データ
ON [顧客情報マスタ].[ユーザーコード] =[売上データ].[ユーザーコード];』
になる。
参考までに各商品ごとの集計はSQLだと
『TRANSFORM Sum(売上データ.売上) AS 売上の合計
SELECT 顧客情報マスタ.ユーザーコード
FROM 顧客情報マスタ LEFT JOIN 売上データ ON 顧客情報マスタ.ユーザーコード
= 売上データ.ユーザーコード GROUP BY 顧客情報マスタ.ユーザーコード,
顧客情報マスタ.担当部署, 顧客情報マスタ.担当者
PIVOT 売上データ.商品番号;』になる。
10年分ぐらいのデータだと相当量になるので『ODBCのタイムアウト』を変更して
おかないとダメだと思う。
ちなみに私は素人なので、サーバへの負担がどの程度かは判らない。
197名無しの素人:03/09/17 22:45
>>194
補足
私のAccessは2000
Accessってファイルメーカとかと比べてどうですか?

EXCELのVBAは少しは出来るようになったんですが、全然違いますか?
199198:03/09/18 01:34
あと、他の人が桐使ってたりするんですが
今からデータベース管理やバーコード管理はじめるとしたらAccessでしょうか?
200名無しの素人:03/09/18 07:48
>>198
>Accessってファイルメーカとかと比べてどうですか?
ttp://pc2.2ch.net/test/read.cgi/bsoft/997011051/-100
同じビジネスソフト板ですよ。
>EXCELのVBAは少しは出来るようになったんですが、全然違いますか?
言語仕様は同じですが『EXCELのVBAは少しは出来るようになったんですが、
全然違いますか?』の部分がはっきりしないので、access vba でググる。
適当なwebサイトの例題のコードを見て自分で判断する。
>他の人が桐使ってたりするんですが
>今からデータベース管理やバーコード管理はじめるとしたらAccessでしょうか?
『管理工業研究所』の経営状況を知らないのと、Dos版しか使ったことがないので
なんともいえない。
201名無しさん@そうだ選挙にいこう:03/09/18 10:06
OS:Windows2000 Ver:ACCESS2000
フォーム内でテキストボックスAの内容を、ボタンAを押すと、
同じフォーム内のテキストボックスBに複写出来るようにしたいのです。

何卒よろしくお願い致します。
>>201
Private Sub ボタンA_Click()
Me.テキストボックスB = Me.テキストボックスA
End Sub
203201:03/09/18 10:34
>>202
めちゃくちゃありがとうございます。
お陰様で助かりました!!
204194:03/09/18 12:41
>>196
完璧でした。有り難うございました。
>>193
定型的な処理でない(自動化の必要がない)場合、
前もってExcel側でセルの書式等を設定しておき、AccessのデータシートでコピーしたあとExcel上で「形式を選択して貼り付け」でテキスト形式を選択して貼り付ける方法があります。
(そのまま普通の「貼り付け」だとAccessの書式設定になってしまいます)

ただしこの場合Accessのフィールド名が先頭行に挿入されてしまいますので、不要ならば削除が必要。

206名無しさん@そうだ選挙にいこう:03/09/18 15:26
OSはWINDOWS2000、ACCESS2000を使っています。

http://support.microsoft.com/default.aspx?scid=%2Fdirectory%2Fworldwide%2Fja%2Fkblight%2FT008%2F6%2F01.asp
上URLのマイクロソフトサイトを見ながらDLOOKUPを試していました。

元テーブルを参照する際に、主キーに自動番号のフィールドを参照する
場合はうまく値が代入されるのですが、テキスト型のフィールドを参照
した場合にはエラーとなり、代入されません。

仕様でしょうか?
>>206
キーフィールドがテキスト型の場合、DLookupの条件指定部分はシングルクォーテーションで括る必要があります。

上記URLの例の場合で、「商品コード」に相当するフィールドがテキスト型だった場合、
DLookup("[商品名]","商品マスタ","[商品コード] = '" & Forms![売上]![商品コード] & "'")
にする必要がありますが…
208206:03/09/18 16:42
>>207

ありがとうございました。思い切りはまってしまい
参考書などを見ても書いていなかったため、助かりました!
209名無しさん@そうだ選挙にいこう:03/09/18 17:24
レポートのグラフ作成ウイザードを使って、簡単な散布図グラフを作りたいのですが、
横軸の数値が全て「1」になってしまい、垂直のへんてこなグラフしか作成
されません。
アクセスのグラフについて書かれた参考書はほとんどなく、ここに辿りつきました。
わかる方がいらっしゃればご教示頂きたく存じます。

基になるテーブルは以下のような感じです。「面積」フィールドを横軸に、「金額」フィールドを
縦軸にしたいです。データ型はいずれも数値型です。

面積 金額
 10  45
 20  30
 30  20
 40  50
 50  70
210123:03/09/18 17:26
レポートのグラフ作成ウイザードを使って、簡単な散布図グラフを作りたいのですが、
横軸の数値が全て「1」になってしまい、垂直のへんてこなグラフしか作成
されません。
アクセスのグラフについて書かれた参考書はほとんどなく、ここに辿りつきました。
わかる方がいらっしゃればご教示頂きたく存じます。


基になるテーブルは以下のような感じです。「面積」フィールドを横軸に、「金額」フィールドを
縦軸にしたいです。データ型はいずれも数値型です。

面積 金額
 10  45
 20  30
 30  20
 40  50
 50  70
211123:03/09/18 17:30
すみません、二重投稿してしまいました。
212144:03/09/18 19:46
155似よいやり方があったんで

レポートのテキストボックスの
コントロールソースを =1
集計実行を全体にすれば連番を振ることができる。
213名無しさん@そうだ選挙にいこう:03/09/19 00:08
テーブルのフィールドプロパティの既定値設定で、同一フィールドにおける直前のレコードの値
に1を加えた値とする、といった指定はできますでしょうか?
>>213
VBでグローバル変数を使えば出来ると思うけど、
あんまし意味無いんじゃない?
215名無しさん@そうだ選挙にいこう:03/09/19 00:20
Access2000を使用しているのですが、
非連結フォーム上にリストビューコントロールを配置し、
ADOで取得したレコードデータを表示させています。
これを印刷すると、リストビューコントロール内の文字だけ
ゴマ粒大で印刷されてしまいます。
印刷時の大きさを設定を設定することは可能でしょうか?
216213:03/09/19 00:22
>214
そうですか。VB使わなきゃ無理っすか。

フォームからの入力支援のために、これを使いたいと思っています。
オートナンバーだと、1から順番になってしまい都合が悪いんです。
最初から6桁の数字なので....
217名無しの素人:03/09/19 02:57
>>213
例えばTable『データ』を以下の様に定義する。
『ID』『オートナンバー型』、『ID2』『テキスト型』、『単価』『通貨型』
『数量』『数値型』、『金額』『通貨型』
フォームウイザードでFormを作る。

Option Compare Database

Private Sub 数量_AfterUpdate()
Me![金額] = Me![単価] * Me![数量]
End Sub

Private Sub 単価_AfterUpdate()
Me![ID2] = CStr(Me![ID] + 100000)
End Sub

をコピーする。
FormのID.ID2を不可視に設定する。
(CStr(Me![ID] + 100000)の100000は初期値なのでそちらの都合で変更する。)
これだと手間かからないと思うけど。VBAを使っているけどたいしたこと無いと
思うけどどうだろう。
218名無しの素人:03/09/19 03:06
>>213
補足
オートナンバー型は余りお勧めしないが、まずはじめの一歩てことで
あとTable『データ』の主キーはID2
Access2000、Win98SEを使っています。
次のような症状が出て困っています。

データベースウィンドウ内でctl+ドラッグ&ドロップでフォームをコピー後
名前を付け替えようとしたところ変わらない(名前を付けてEnterを押した時点で元の名前「(元フォーム名) のコピー」に戻り
その時にメッセージは出ない)。
コピーしたフォームを開くと「オブジェクト'(元フォーム名) のコピー'は見つかりませんでした。
オブジェクトが存在していること、名前やパス名が正しいことを確認して下さい。」と出るが
OKを返すとそのフォームは表示される。
そのフォームを閉じようとすると前述と同じメッセージが出て閉じることが出来ない(上書き保存でも同メッセージ)。
修復/最適化・officeの再インストールをやっても変わらないので
新しいMDBをつくり全オブジェクトをインポートすると該当フォームのところで「
既存のモジュール、プロジェクト、オブジェクトライブラリと名前が競合しています」という
メッセージが出て、インポートした回はそのフォームを使えるが一旦MDBを閉じると
そのフォーム以降にあったフォームともども消えてしまう。

このような場合、どのような原因でどうやって回避すればよいのでしょう
教えて下さい。よろしくお願いします。
220名無しさん@そうだ選挙にいこう:03/09/19 14:28
Access2000,Windows2000を使っています。

フォームでデータ入力を行う際に、別のレコードに移動出来ないよう
設定をしたいと考えています。
フォームプロバティで移動ボタン、レコードセレクタを”いいえ”と設定
しましたが、マウスのスクロールボタンなどで移動できてしまいます。
良い方法がありましたら、よろしくお願いします。
221名無しさん@そうだ選挙にいこう:03/09/19 15:20
>>220
非連結にしる
>>220
一覧用とデータ入力用にフォームを分ければ良いのでは。
>>209
レポートをデザインビューで開き、グラフを右クリ、グラフオブジェクト→編集
データ→系列を列方向に定義、で思ったようになると思うよ。
データを返すために利用しているテーブルって、視覚的に消すこと出来るの?
価格が入っている商品テーブルを隠して適当にお得意先へ配布したいんだけど。
>>224
隠したいテーブルを右クリックしてプロパティ出して
隠しオブジェクトの項目をチェック!
>>225
それをしても、簡単に隠しオブジェクトを解除されるんじゃないかと。
>>224
何をやっても上には上がいる。
データを渡さないようにするしかない。
テーブルを作り変える事を考えたほうが早い。
当たり前過ぎてスマン m(_ _)m
>>227
そっか。。
サンクス。
229220:03/09/20 10:23
>>221-222
データ入力用にフォームを分けることで
解決致しました。ありがとうございました!
230名無しさん@そうだ選挙にいこう:03/09/20 11:29
Access2000/Win2000を使っています。
VBAを使用してテーブルのレコードを追加する(addnewメソッド)のは一般的ですが、
フィールドを追加する方法ってありますか?
教えて下さい。お願いします。
231名無しさん@そうだ選挙にいこう:03/09/20 12:38
>>230
ALTER TABLE hoge ADD COLUMN hogehoge TEXT(50) とかのことか?
232名無しさん@そうだ選挙にいこう:03/09/20 15:24
以下のコード(抜粋)でテーブルをエクセルファイルにはき出しています。
Dim mySQL As String
mySQL = mySQL & " INTO [ExpTABLE] FROM [Q_Select]"
DoCmd.DeleteObject acTable, "ExpTABLE"
DoCmd.RunSQL mySQL
DoCmd.OutputTo acOutputTable, "ExpTABLE", acFormatXLS, , False
MsgBox "データの出力完了"
更新が激しいため一つのアクセスファイルに皆でショートカットを作って、
共有しているのですが、すると同時にこの機能を使おうとするとはき出し用の
テーブルを共有してしまうため、おかしくなることが予想されます。

そこで、
現在の時刻を変数へはき出し
その変数名のテーブルを作成、エクセルへ吐きだし、 テーブルを削除
というプロセスを考えてみました。ファイルが肥大化するかもしれませんが(通常500KB〜1Mくらい)
出来るモノでしょうか?
>>230
TableDef オブジェクトの Fields コレクションに Append するだけだと思うが...。
DBMS が Jet なら CreateField() でヘルプを検索すべし。

>>232
何で一時テーブルなんか作るんだ ?
DoCmd OutputTo acOutputQuery, "select ... FROM [Q_Select] where ...", acFormatXLS, False
として、直接出力すればいいんじゃないのか ?
234名無しさん@そうだ選挙にいこう:03/09/20 17:58
>>233
この前の段階で、出力するフィールドを選択するフォームがあるのです。
あれ?でもそれもクエリで出来ないことはないのか・・・
>>232
取りあえず以下の様にすれば、あなたのやりたいようにできる。
Dim mySQL As String, StrTime As String, DataTime As Date
DataTime = Time
StrTime = Str(DataTime)
mySQL = "SELECT 〜"
DoCmd.RunSQL mySQL
StrTime = Right(Left(StrTime, 9), 8)
DoCmd.OutputTo acOutputTable, StrTime, acFormatXLS, , False
DoCmd.DeleteObject acTable, StrTime
MsgBox "データの出力完了"
236232:03/09/20 21:27
>>235
ありがとうございます。
ところで
mySQL = mySQL & " INTO [@@@@@] FROM [Q_Select]"
で、@@@@@の部分に変数(StrTime)の値を入れたいのですが、
出来ないモノでしょうか?
237名無しさん@そうだ選挙にいこう:03/09/20 21:40
横質ですみませんが
233のようにフォームでフィールドを選択したときに
IF ISNULL(コンボ3) THEN 
"SELECT" [コンボ1] "AND" [コンボ2] "FROM ・・・
ELSIF ISNULL(コンボ4) THEN
"SELECT" [コンボ1] "AND" [コンボ2] "AND" [コンボ3] "FROM ・・・
ELSE
・・・
なんてやらないいい方法ってありますか?
>>236
mySQL = mySQL & "INTO " & StrTime & " FROM [Q_Select]"
239236:03/09/20 22:30
Dim mySQL As String,myCplm As String,StrTime As String,
mySQL = "SELECT "  
If Me![No].Value = -1 Then
If mySQL = "SELECT " Then
mySQL = mySQL & "[No]"
Else
mySQL = mySQL & ", [No]"
End If
End If
 '上はフォームのチェックボックスで出力する項目を指定している模様 
'以下同様の構文が数個続く
StrTime = Format(Now, "yymmddhhmmss")
mySQL = mySQL & "INTO " & StrTime & " FROM [Q_Select]"
DoCmd.OutputTo acOutputTable, StrTime, acFormatXLS, , False
DoCmd.DeleteObject acTable, StrTime
MsgBox "データの出力完了"
240235:03/09/20 22:34
>>237
ちょっとわかりにくい書き方ので、最初から書いてみてください。
241235:03/09/20 22:40
話は先に進んでいたのね!!
かっこ悪かった。
242236:03/09/20 22:44
修正・ DoCmd.RunSQL mySQL 行をmySQL=の後に追加です。
>>239
色々ご助言ありがとうございます。現状、上のようにしてみたのですが
数個あるチェックボックスの2つ以上にチェックを入れると
クエリ式’(2つ目のチェックボックス名)INTO (StrTimeの値)’の構文エラー:演算子がありません
と怒られます。

実は前任の人が突如失踪してしまい、月曜くらいまでに有る程度修正したいのです。
SQLなんてさっぱり知らないのですが(泣
243237:03/09/20 23:09
>>240
コンボボックスが4つあって、そこで選択して
フィールド数12(だったと思います。)のテーブルのフィールドの
必要なものをサブフォームに表示させています。
それで237に書いたように
IF構文でSQL文を3個書いて逃げているわけですが、
もっとよいやり方があればいいなと思ったわけです。
ということで
>>242
とりあえずのは、出力したいフィールド数に応じて
IF構文でSQL文を書くという対処法がありますよ。

244237:03/09/20 23:18
すみません。
よいやり方とかいう場合は、
Accessのヴァージョンがいりますね。
WinXPでAccess97です。
ふだんはAccess2002の本を見ながら、
VBAのコード書いてるので気にしてなかったです。
245235:03/09/20 23:18
>>236
Tableの定義とQ_SelectのSQL文を教えてもらえませんか?
多分単一のTableから必要なFieldを取り出すだけだと思うんですけど。
246235:03/09/20 23:24
>>237
ゴメン236さんの方が忙しそうなので後で考えさせてください。
すいません m(_ _)m
247236:03/09/20 23:29
Q_Select のSQLは見せられたモノじゃないほど長いです。
Table、T_メインデーター の中から条件にあったレコードをフォームで条件与えて
引っ張ってくるだけなんですが・・・検索条件が複雑すぎて。

ちなみに、
mySQL = mySQL & "INTO " & StrTime & " FROM [Q_Select]"

mySQL = mySQL & "INTO  [一時テーブル名(非変数)] FROM [Q_Select]"
だった時は 普通に動作していました。
>>242
とりあえず、エラーになった時にデバッグモードに入って、Ctrl-G を押すとイミディエイトウィンドって言うのが開くから、そこで "Print mySQL" って入力して mySQL の値が正しいか確認してみそ。
>>248 さん
有り難うございました!
ただ・・・ "INTO 部分で"の後にスペースが足りないダケでした(恥
多分書式的な問題だとは思ったのですが、こんな機能が有ること
知りませんでした。お恥ずかしい・・・・
>>235
色々お知恵をいただきまして有り難うございました

っていうか私本来学術営業部で論文漁るのが仕事なんですが(鬱)
250237:03/09/20 23:53
>>246
一応、ちゃんと動いているのでかまいません。
今困っている人を助けてあげてください。
で 、よく考えたら237のSQL文おかしいですよね。
"SELECT" & [コンボ1] & ", " & [コンボ2] & " FROM ・・・
"SELECT" & [コンボ1] & ", " & [コンボ2] & ", " & [コンボ3] & " FROM ・・・

ということで後でよろしくお願いします。
251235:03/09/21 00:14
>>236
ありがちですね!!よかった、よかった
>>248
あんたはエライ!!
>>237
明日にでも考えてみます。
252230:03/09/21 10:06
>>232
>TableDef オブジェクトの Fields コレクションに Append する・・
の部分を具体的にどのように記述すれば良いでしょうか。
>>252
tabledef fields append (+日本語) でググルだけなんだが...。
http://www.accessclub.jp/samplefile/samplefile_163.htm ぐらいは、自力で見つけ出せないとこの先辛いよ。
254名無しさん@そうだ選挙にいこう:03/09/21 15:05
こんなのを作りたい場合はどんな手順で作ればよいでしょう?

テーブル
 開始年月日 終了年月日 担当者 売上
 03/01/10 03/11/10 A 10000
03/10/01 03/12/10 A 2000
03/03/15 03/10/15 B 15000
03/05/10 03/09/30 B 2500


フォームの画面で任意の年月日が含まれる担当者の売上合計を出したい
画面では年と月をリストボックスを利用して指定した結果の各担当者の
開始と終了の期間内の売上の合計額を表示して印刷する。

クエリーを作ったのですが、フォームの入力によって集計の結果にどう反映
させたらよいのかわかりません。と言うかどんな方法があるんでしょう?
アクセスはなんかとっつきです。

>>254
> フォームの画面で任意の年月日が含まれる担当者の売上合計を出したい
> 画面では年と月をリストボックスを利用して指定した結果の各担当者の
> 開始と終了の期間内の売上の合計額を表示して印刷する。

とりあえず、お前は access の前に国語を勉強した方がいい。
句読点もなしに3行も続く文章なんか誰も読んでくれないぞ。
>254
クエリーでレコードを抽出する対象のテーブルに、「開始年月日」と「終了年月日」と言う
フィールドがあるのですか?
254さんがやりたいことは、
1.フォームの「年」「月」リストボックスで選択した年月日の担当者別売上合計を作りたい。
2.クエリーで抽出した担当者別売上合計をフォーム上にどのように表示したら良いか
 分からない。
3.クエリーで抽出した担当者別売上合計をどう印刷したら良いのか分からない。

→1.はテーブル構造がどういったものか分からないので何とも言えませんが、通常、
売上日/担当者名/個数フィールドが含まれるテーブルからの抽出であれば、担当者で
グループ化し売上日にbetween and等でフォームで指定した年月の1日〜末日までの
期間を抽出すればできると思います。クエリーについてはお出来になったのでしょうか?
→2.についてはフォーム内にサブフォームで表示する方法と、別のフォームを開いて
表示する方法があります。3.ついてはレポートを使って印刷すれば良いと思います。
2.3.共にフォームに「検索開始」等のボタンを作り、押すことで動作させるようにすれば
良いと思います。2.3.についてはAccessのほぼ基本的な機能の部類に入りますので、
本屋さんで立ち読みでも良いですから本を読んでみていただければ分かると思います。
257237:03/09/21 17:52
>>254
クエリーは普通にできてるよね?抽出欄で
開始日欄は
>=[FORMS]![フォーム名].[リストボックス名]
終了日欄は
<=[FORMS]![フォーム名].[リストボックス名]
担当者欄は、
[FORMS]![フォーム名].[リストボックス名]
に変えればいいよ。
Accessが、とっつきにくいのは、市販の本で
フォームで選択したデータをサブフォームに表示する。
フォームで選択したデータを印刷する。
の部分が丁寧じゃないからだと思う。
ここだけ理解すれば、後は結構楽しくなってくると思う。
258235:03/09/21 18:32
>>237
Dim mySQL As String, StrComb(4) As String
Dim i As Integer, CMax As Integer
Dim Comb(3) As ComboBox
CMax = 3
Set Comb(0) = Me.コンボ0
Set Comb(1) = Me.コンボ1
Set Comb(2) = Me.コンボ2
Set Comb(3) = Me.コンボ3
For i = 0 To CMax Step 1
StrComb(i) = Comb(i).Value & ""
Next
If StrComb(0) = "" And StrComb(1) = "" And StrComb(2) = "" And StrComb(3) = "" Then
MsgBox "フィールドを選択してください。"
Exit Sub
Else
mySQL = "SELECT " & StrComb(0)
For i = 1 To CMax Step 1
If StrComb(i) = "" Then Exit For
mySQL = mySQL & ", " & StrComb(i)
Next
mySQL = mySQL & " FROM [売上データ];"
MsgBox mySQL
End If
こんな感じでわかるかな?エラートラップ作ってないので、コンボ1から
順に入れないとエラーが出る。でもやり方はわかるよね。
遅くなってゴメン m(_ _)m
259237:03/09/21 20:57
>>258
ありがとうございました。m(_ _)m
CMaxの値をフォームから数える方法を研究すれば
下の部分をFOR 〜NEXT 文にすることで
IF分がどんどん増えていくコードを書かなくてすみそうですね。

260よろしく:03/09/22 10:34
シート名を指定しないで シートを指定したいのですがどうしたらよいですか。
Sheets("Sheet1").Select でなく シート名が変わってもセレクト出来ればいいのでつが。
261よろしく:03/09/22 10:46
すまそん 入り口間違いました。
262名無しさん@そうだ選挙にいこう:03/09/22 22:07
レポートでグラフを作った際に、
グラフの元となったデータの数(サンプル数)を、グラフ上に表示させることは可能でしょうか?

例えば、ページフッターに、テキストボックスを作って、データ→コントロールソース→式ビルダと
進み、ここで演算しようと思ったのですが、どうすればよいかわかりません。

わかる方いれば、教えていただきたく思います。
>262
グラフの元になったテーブルかクエリーをDcountしてレコード数を数えるとかでだめ?
>>262
フッターに配置したテキストボックスのコントロールソースに
=DCount("*","テーブル名Orクエリ名")
と書きなさい。
265262:03/09/23 17:38
>263,264
ご指示ありがとうございます。
早速、DCount関数を使ってみました。

そこで今度はこの応用として、条件に見合うレコードのみを抽出しようと思い、以下の●式ビルダに
あるような式を組んでみたのですが、うまくいきません。問題があれば指摘していただければ幸いです。

●元のテーブル
テーブル名:テーブル1
フィールド1:都道府県
フィールド2:市区町村

●式ビルダ
DCount("*","[テーブル1]","[都道府県] 東京都 And [市区町村] 千代田区")

元のテーブルから、"東京都"で"千代田区"と入力されているレコードの数を抜き出したいのです。
266264:03/09/23 20:24
>>265
=DCount("*","[テーブル1]","[都道府県]='東京都' And [市区町村]='千代田区'")
267265:03/09/23 21:30
ありがとうございました。できました。
将来 アクセスを使って開発を仕様と思っています。
どうでしょうか?
結構、こういう仕事はあるんでしょうか?
>>268
今Accessで何か作る必要があるとかじゃなければ、
DB全般の勉強した方がいいよ。
270名無しさん@そうだ選挙にいこう:03/09/25 17:27
MSDE使おうと思ってるんだけど、EnterpriseManagerの代わりになる
やつって無いの?できればフリーソフトで。
271名無しさん@そうだ選挙にいこう:03/09/25 17:35
「MSの独占がセキュリティを脅かす」――業界団体が報告
http://www.zdnet.co.jp/news/0309/25/ne00_mssecurity.html

業界団体CCIAは報告書で、大半のコンピュータがMicrosoft技術に依存して
いる状況は危険であると警告し、また同社はセキュリティを口実に顧客を
囲い込んでいると批判している。

 「このセキュリティを利用した囲い込みの影響は、現実的で、社会を危うくするものである」
>>270
今だったら8800円でデベロッパーエディション買えるんで素直にSQL Server買えば…。
273名無しさん@そうだ選挙にいこう:03/09/26 16:47
質問です。

会社の見積〜納品のシステムを作っています。私自身は
データベースは一切扱ったことがないのでAccessの入門書を
買って、まずはAccessでプロトタイプを作りました。

システムを使うユーザーは非常に少ないのですが、
サーバー&クライアント構成にしたいと思い、とりあえず
テーブルのファイルをサーバー上に、フォームのファイルを
クライアントに設置して動かして見たところ、予想以上に動作が
遅くなってしまいました。

そこで質問なんですが、MicrosoftSQLServerをサーバーに
導入し、そこにAccessから接続することはできるのでしょうか?
また、そのMS製のサーバー以外の、OracleやMySQLなども
同様に出来るのでしょうか?

微妙に板違いかもしれませんが、どうかよろしくお願いします。
274名無しさん@そうだ選挙にいこう:03/09/26 16:58
Access2000を使っています。
検索フォームで表示されたものをエクセルに出力しようとしています。
検索条件は5つくらいあり全部が埋まるわけではありません(空白は検索条件にしません)。
今までは表示するだけだったので、VBAで
SQLのwhere句にテキストボックスの検索条件を(空白も考慮しながら)
どんどん足して絞り込んでいたのですが
TransferSpreadsheetメソッドを使うとテーブル名にSQL文を入れても
動いてくれません。
クエリならテーブル名で指定しても動くだろうと
パラメータクエリを作りましたが検索条件が空白のとき空白のものを検索してしまい
困ってしまいました。
解決方法を教えて下さい。よろしくお願いします。
275273:03/09/26 17:00
すいません、バージョン書いてませんでした。
OS:全てXP SP1
Access:2002 SP1
276名無しさん@そうだ選挙にいこう:03/09/26 17:29
初歩的な質問だと思うんですが、フォームにテーブルのレコード数をテキストボックスに表示させたいんです。
Countという関数をつかうのだとおもうのですが、よくわかりません。
=Count(*)
これではだめでした。
よろしくお願いします。
バージョンはAccess2000です。
>>274
メモ型とかOLEオブジェクト型なフィールドがないなら、ExcelVBAの「CopyFromRecordset」を使う方法もある。
Microsoft Excel 9.0 Object Library と DAO 3.6 に参照設定しておいてくれ。

Sub コマンド1_Click()
Dim xlApp As New Excel.Application
Dim strSQL As String
Dim rs1 As DAO.Recordset
Dim i As Integer
strSQL = ""
strSQL = "select * from table1"
strSQL = strSQL & " where true "
'検索条件分繰り返す。
If Nz((Me.Textbox1,"") <> "" Then
strSQL = strSQL & " And フィールド1 = '" & Me.Textbox1 & "'"
EndIf
Set rs1 = CurrentDb.OpenRecordset(strSQL)
xlApp.Visible = True 'Trueにすると動きが確認できるよ。
xlApp.Workbooks.Add
For i = 0 To rs1.Fields.Count - 1 'フィールド名を転記
xlApp.Cells(1, i + 1).Value = rs1.Fields(i).Name
Next
'データ部分を転記、OLEオブジェクト型のフィールドは処理できない
xlApp.Range("A2").CopyFromRecordset rs1
xlApp.ActiveWorkbook.SaveAs "C:\Documents and Settings\ほげほげ\デスクトップ\book1.xls" '新規保存
xlApp.Quit
Set xlApp = Nothing
End Sub
>>273
AccessからでもOracleやMySQLに接続できます。
もちろん、SQLServerにも接続できます。
ただ、クライアント数が少ないのであれば、とりあえず
MSDEで試験運用してみては?
一応は5クライアント以内の接続を推奨してるみたいだけど
実際はそれ以上でもパフォーマンスは落ちないみたいだし。

それと余計なお世話かも知れないけど、Access入門書だけじゃ足らない。
C/Sシステムを構築するつもりなら、SQL文をシコシコ打つ事になるから
SQLの参考書も要る。
>>278
RESありがとうございます。
試験運用のことも含めて、じっくり考えて見たいと思います。
AccessからMySQLになかなか繋げることができないので
とりあえずそれからやってみます。
もちろんSQLは勉強します。
280名無しさん@そうだ選挙にいこう:03/09/26 20:02
>>274
テキストボックスが空白の場合は
* に置き換えるという手段もあるよね。
でクエリーは動くはず。
てこういうレベルの低い回答はいらない?
>>279
まぁチミは取り敢えずググる事から勉強だ。
http://www.google.co.jp/search?q=Access+MySQL+%90%DA%91%B1&ie=Shift_JIS&hl=ja&lr=lang_ja
>>276
私もAccess2000だが、TextBoxのコントロールソースに『=Count(*)』で
レコード数が表示されるが?
まあ普通は*では無く『=Count([主キー])』だが
>>276
少し前のレスぐらい読んでくれ
>>262-266
以前OS95、ACCESS97で他の端末(環境は同じ)にあるDBにネットワーク
ドライブをはった上でリンクさせていましたが、DBがある端末をOSXP、ACCESS97
の環境にへんこうしました。OS95、ACCESS97の端末からはリンクしたテーブル
のデータが見えるのにOSXP、ACCESS97の端末からはリンクテーブルマネージャーで
きちんと変更しているにもかかわらずデータが参照できません。
なにがいけないのでしょうか?
285ブラックバード:03/09/26 23:00
どなたかご教授ください・・・。
1つのフォーム上で3種類のクエリを用いたレコードソースの切り替えを
select caseを使用して使い分けているのですが(・_・)
次の段階として、クエリごとに1つのテキストボックスのコントロールソースを変更したいのですが、どのようにしたらよいか分からず困っております。
助け舟をお願いいたします。
テキストボックスAを
クエリ1では、A=納期1
クエリ2では、A=納期2
クエリ3では、A=納期3
上記のように変更したいのですが・・・。
無理やりデータベース押し付けられて困ってます。
>>285
Selcet Case i
Case 1
Me.RecordSource = "クエリ1"
Me.A.ControlSource = "納期1"
Case 2
Me.RecordSource = "クエリ2"
Me.A.ControlSource = "納期2"
Case 3
Me.RecordSource = "クエリ3"
Me.A.ControlSource = "納期3"
End Select
>285
文章が良く分からないが
1.1つのコントロールで複数のクエリをソースにしたい場合
(コンボボックスで表示するクエリーを別のコントロールによって切り替えたい)
forms!フォーム名!コントロール名.sourcrobject=○
2.クエリごとに1つのテキストボックスのコントロールソースを変更したい
(クエリ一つ一つに対して一つづつテキストボックスを配したい場合)
クエリを関連付けて値を表示したいコントロールのプロパティで、
集合タイプにクエリ/テーブル、集合ソースにクエリ名を選択する

答えはこの辺か?
>無理やりデータベース押し付けられて困ってます。
と言うなら、1冊でも2冊でも自分に合いそうな本買って工夫した方が良いかも…
>>285
286さんの答えでいいと思うのだが
クエリー作成の段階で、クエリー1『納期:納期1』クエリー2『納期:納期2』
クエリー3『納期:納期3』てな感じでやる程度の柔軟性があったほうが良いと
思う。(これだとコントロールソースを切り替えなくて良い)
Select Case でレコードソースを切り替えられたのなら
RecordSourceプロパティを見つけられたはずなんだから、コントロールソースを
切り替えるのはControlSourceプロパティだろうと考えるのが普通だと思うが...
かなり追い詰められて頭が回らなくなっていたのならスマン m(_ _)m
289名無しさん@そうだ選挙にいこう:03/09/27 03:51
データアクセスページをインターネット上で行うにはどうすれば良いのでしょうか?
自分のコンピュータ上では問題ないです。
290あぼーん:03/09/27 04:15
291あぼーん:03/09/27 04:16
292あぼーん:03/09/27 04:21
293あぼーん:03/09/27 04:25
294ブラックバード:03/09/27 07:05
>>286
バッチリ動きました。
適切なご助言をいただき助かりました。これで仕事に活かせます。


295274:03/09/27 10:22
>>277
レスありがとうございます。
バッチリ動きました。又よろしくお願いします。

>>280
レスありがとうございます。言われてみるとそちらの方が簡単そうです。
ただ、クエリの抽出条件に
Iif(Nz([Forms]![フォーム名]![フィールド名],"")<>"",[Forms]![フォーム名]![フィールド名],Like "*")
と入れても空白のとき「Like "*"」になってくれません。
ダミーの値を「Like "*"」の代わりに入れておくとダミーの値で抽出されます。
何か間違ってるのでしょうか?
取引先コード 取引先名  住所  仕入額
  0001     A商店   東京   700
  0002     B商店   神奈川  800
  0003     C商店   愛知   50
  0001                  100
  0003                  500
   (以下8000件ほど…)

こういう「tbl一覧」というのが出来てしまっているので、
取引先コードの同じもので、仕入額を合計して作り直したいのですが、
こういう時の集計のSQLの書き方が分からないので教えて下さい。

GROUP BYを使えば良いということは分かるのですが、
取引先名、住所が入っていないレコードは、入っている方を優先させる
という書き方が分かりません。

おながいします。
297名無しさん@そうだ選挙にいこう:03/09/27 17:02
ごめん、あげそびれたので、あげますよ。

   /⌒ヽ
  / ´_ゝ`)
  |    /
  | /| |
  // | |
 U  U
298280:03/09/27 18:10
>>295
一応俺の作ってるものだと
クエリーの抽出欄に
Like [Forms]![フォーム名].[テキストボックス名]
と入れている。
Like があってもその後にワイルドカードがなければ
それだけを抽出してくるので
299名無しさん@そうだ選挙にいこう:03/09/27 19:28
お世話になります。
以下のような式ビルダを組んだのですが、

「指定した式の構文が不正です。
例えば、演算子がないときにオペランドを指定しています。」

とエラーメッセージが出てしまいます。

単に、関数の中に関数を埋め込んでいるだけのつもりなのですが、これは不可能なのでしょうか?

DCount("*","[テーブル1]","[フィールド1]<DLookUp("[フイールド2]","[テーブル2]","[フィールド3]='B'"))

>299
DlookUpの返り値を "'" で囲みます
=DCount("*","[テーブル1]","[フィールド1]<" & "'" & DLookUp("[フィールド2]","[テーブル2]","[フィールド3]='B'") & "'")
301おぽぽ:03/09/27 23:24
アクセスのファイルを開こうとしたら
「ほかのユーザーが同じデータに対して同時に変更を試みているので
プロセスが停止しました」
と表示されファイルが開けません。
アクセス2000でユーザーは自分一人だけのはずなのですが・・・
どなたか助けてください。お願いします。
302299:03/09/28 00:37
>300
ご教示ありがとうございます。

ついでにひとつ教えていただきたいのは、
[フィールド1]< の後ろに"&が付いていることです。確かにこの通りにやるとうまくいくのですが、
なぜここに付けるのでしょうか?

普通に考えると、このようにする方が正しく思えてしまうのです(もちろん、これだとエラーとなるのですが)
"[フィールド1]<"'" & DLookUp("[フィールド2]","[テーブル2]","[フィールド3]='B'") & "'"&")

つまり、DCountにおける条件範囲を、はじからはじまで " で囲むべきように思えてしまうのです。

303名無しさん@そうだ選挙にいこう:03/09/28 02:18
フォームでコンボボックスを使う時に
右の▽の部分を表示しないようにするにはどうすればいいのでしょうか?
304289:03/09/28 02:43
誰か答えてもらえませんか?
305300:03/09/28 07:39
>302
説明不足でした。>300で書いた
=DCount("*","[テーブル1]","[フィールド1]<" & "'" & DLookUp("[フィールド2]","[テーブル2]","[フィールド3]='B'") & "'")
において、&は文字列の結合を意味します。DLookUpの返り値がCという文字であった場合、上のDCountは
=DCount("*","[テーブル1]","[フィールド1]<'C'")
と同じ意味になります。

なお、DLookUpの返り値が文字列(フィールド2のデータ型が文字列)で、比較対象であるフィールド1のデータ型も文字列
という前提で書いてしまいましたが、DLookUpの返り値が数字(フィールド2のデータ型が文字列)で、比較対象である
フィールド1のデータ型も数字である場合は、以下のようにDLookUpの両脇の"'"を外さないとエラーになります。
=DCount("*","[テーブル1]","[フィールド1]<" & DLookUp("[フィールド2]","[テーブル2]","[フィールド3]='B'"))
306名無しさん@そうだ選挙にいこう:03/09/28 09:41
驚くべき回答者のいないこのスレ。
307300:03/09/28 15:05
>305
下から3行目
誤 DLookUpの返り値が数字(フィールド2のデータ型が文字列)
正 DLookUpの返り値が数字(フィールド2のデータ型が数字)
>>296
取引先名と住所の空白を、
更新クエリーを使うかExcelで加工するかして埋める。

根本的には、取引先テーブルと仕入テーブルに分ける。
>>269
せめてAccessのいちばん簡単な入門書ぐらい、一通り読んでから質問してくれ。
そうすれば今まで放置されていた理由がわかるだろう。
あなたに教えるのは、1時間側についていても、教えきれないほど知識が不足している。
2chで答えきれないないほどの、知識不足だ。
多分Excelの基本的な操作もわからないのでは?
私がいじめようとしていない証拠として一番簡単な集計を教えておく。
取引先名、住所をあきらめるとして
クエリーのSQLビューに

SELECT DISTINCTROW tbl一覧.仕入先コード, Sum(tbl一覧.仕入金額) AS [合計]
FROM tbl一覧
GROUP BY tbl一覧.仕入先コード;

を貼り付ける。
こうすれば仕入先コードと合計しか表示されないが、一応合計はできる。
どうしても取引先名、住所がほしければ308さんの様にするしかない。
見当違いの所へ偉そうにレスしてんのにワラタ
311299:03/09/29 22:14
>300さん
ご親切にありがとうございました。
おかげさまで、完全にできました。

最後に今後のために教えていただきたいのですが、
なぜ、
DCount関数のCriteriaでは、 "[フィールド1]<"&100  のように、"&を、条件数値(今回だと「100」)の前に置くのでしょうか?
"[フィールド1]<100" の方が、論理にかなうような気がして仕方ないです(涙)。 
言い方を換えれば、指定フィールドと不等号をくっつけたもの(今回だと「[フィールド1]<」)を、なぜ " で囲む必要があるのかがわからないです。

今回の件は解決できましたが、ここを理解しておかないと、今後同じような壁に当たる気がするので
きいてみました。
お許しください。
312300:03/09/29 22:58
>311
DCount関数のCriteriaの条件数値が直接数値で指定してあるなら、"&"を使用する必要はありません。(下の書き方で大丈夫です)
=DCount("*","[テーブル1]","[フィールド1]<100")
但し、>305の例のようにDCount関数のCriteriaの条件数値がDLookUp関数の返り値である場合は"&"で結合しなければなりません。
なぜなら、そうしないとDLookUp関数が関数として扱われず、"DLookUp〜"という文字列として扱われてしまい、条件として意味をなさなくなるからです。
>301
実際に見てみないとなんとも言えないけど、
『ほかのユーザー』ってのが自分自身の場合もありますよ。

ファイルを開く時の動作(起動フォームのopenイベント等)で、
ロックをかけたレコードに更新処理したりとかしていませんか?

・・・ただ単にファイルが壊れちゃってるかもしれないですけどね。
314ただいま仕事中:03/09/30 15:19
はじめての投稿です。

今仕事でACCESS95から2000へのコンバージョン作業を行っています。
そこで、95ではうまくいっていたのに2000ではうまくいかないことが多々でてきまして、
95と2000の大きな違いを教えていただきたいのです。

うまくいかないところというのが、
フォームを起動して正常に処理がいったりエラーでこけてしまったり。
(クエリが存在しません。見つかりません。というエラーがでたり、でなかったり。
何も設定を変えていないのにエラーがでたりでなかったりと均一されていません。)

そのフォームではクエリをいったん削除して(DoCmd.DeleteObject acQuery,・・・)
その後すぐクエリを作成して(Set QURY = cdb.CreateQueryDef・・・)、
そのクエリのデータより帳票を出しています。
推測では、2000では処理速度が速くなって、タイミングによっては、
クエリを削除している最中に作成しているためではないかと考えていますが、
決定的な根拠もありませんし、どう対処していいのかわかりません。

わかりずらい文章ですみません。
どなたか至急、アドバイスよろしくお願いします。
315ただいま仕事中:03/09/30 15:23
あ、間違えました。
慌てていたので、ここに書き込んでしまいました。
新規で書き込みなおしますので、
そちらで解答よろしくお願いします。
316名無しさん@そうだ選挙にいこう:03/10/01 15:31
先日、マウスのホイール操作でフォームのレコードが移動してしまう
件でお世話になったものです。

ACCESS2000から、ACCESS2002へ乗り換えたのですが
ホイールマウスの制御はサポートされていますでしょうか。
ヘルプと、WEBは検索したのですが情報がみつからなかった
もので。

よろしくお願いします。

os.windows2000 access2002
317316:03/10/01 15:39
すいません、DBファイルを2002にコンバートしたあと
マウスホイール使用時が追加されていました。
申し訳ないです。

一般的に、マウスホイールでレコード移動させたくない場合は
どの様なプロジージャが使われているのか、教えてください。

よろしくお願いいたします。
318名無しさん@そうだ選挙にいこう:03/10/01 18:49
今4つに分かれているACCESSのファイルをひとつにする
という作業をしているのですが、インポート定義をコピーする
方法はないでしょうか?
319名無しさん@そうだ選挙にいこう:03/10/01 20:18
●●●衆議院総選挙●●●(調査期間:9月27日〜10月10日)
あなたはどの政党の候補者に投票しますか?〜小選挙区〜
11月9日に投票があると言われている次期衆議院総選挙であなたはどの政党の候補者に投票しますか?
・小選挙区で投票する候補者が所属する政党名で投票をお願いします
・有権者のみ投票をお願いします
・1人1票のみとなっております
・選挙区別に集計していますので、選挙区名は正確にお答えください

投票所はこちら→http://vote3.ziyu.net/html/dai02kai.html

参考:選挙でGO!!→http://homepage3.nifty.com/makepeace/

これと同じものを最寄りのスレにコピペをしてください
よろしくお願いします
>>318
オブジェクトのインポートのダイアログの時、オプション→インポート/エクスポートの定義をON。
321名無しさん@そうだ選挙にいこう:03/10/02 18:46
Access2000でレポートの作成で
氏名でグループ化、カレントセクションの前で改ページ
の設定で出力したいのですが、この時
[現在のその人のページ数 /その人の総ページ数]
をページフッターに表示したいのですがよい方法が浮かびません。
ワークテーブルにページのための列を追加する以外で
定石などありましたら教えていただけませんか?
よろしくお願いします。
322318:03/10/02 19:56
>>320
回答ありがとうございます。
Accessのバージョンを書かなかったのは、
私のミスでした。申し訳ないです。
それでAccess97だと
>オブジェクトのインポートのダイアログの時、オプション
というのが見当たらないのですが。
システムオブジェクトは、コピー不可能みたいだし。
何かいい方法はないもんでしょうか。



マウスホイールage!!
324タイトルバーの変更:03/10/02 22:51
Access 2002 以降のユーザの方にお聞きします。
タイトルバーの変更は ADO でも DAO でも出来るのでしょうか?
Access 2000 では ADO では出来ません。 DAO では出来ます。

DAO でタイトルバーを変更する↓
Public Sub AddAppTitleDAO()
Dim database As DAO.database
Set database = Application.CurrentDb
On Error GoTo error_handler
database.Properties("AppTitle") = "No Title"
Application.RefreshTitleBar
error_handler:
If Err.Number = 3270 Then 'property not found
Dim new_property As DAO.property
Set new_property = database.CreateProperty("AppTitle", DB_TEXT, "No Title")
database.Properties.Append new_property
Resume
End If
End Sub
325タイトルバーの変更:03/10/02 22:52
上のコードではちゃんとタイトルバーが No Title に変更されます。
が同じことを ADO をつかってやるとタイトルバーは変更できません。

ADO でタイトルバーを変更する↓
Public Sub AddAppTitle()
Dim project As Access.CurrentProject
Set project = Application.CurrentProject
Debug.Print project.connection.ConnectionString
On Error GoTo error_handler
project.Properties("AppTitle") = "abc"
Application.RefreshTitleBar
Exit Sub
error_handler:
If Err.Number = 2455 Then 'invalid property reference
project.Properties.Add "AppTitle", "abc"
Resume Next
End If
End Sub
326タイトルバーの変更:03/10/02 22:54
Access 2002 では ADO が主流になっていると聞いたのですが、
どうでしょう?タイトルバーの変更を ADO で出来ますか?

どなたか >>325 のコードを Access 2002 もしくは Access 2003 で
動かしてみて、タイトルバーが変更できるかどうかご報告いただけないでしょうか?
327名無しさん@そうだ選挙にいこう:03/10/02 22:55
access2000です。

学校内で、成績管理のようなものを作ろうとしています。

サーバなど買えないので、一台の共有フォルダにデータベースを置いて、LANで共有のような形で使おうとしています。

現在の業務からいえることは、更新頻度はあまり高くなく、試験後等ある時期になると、検索、更新が集中する傾向がありそうです。

ということで、大体、クライアントは何台くらいまでが限度でしょうか?共有マシンのOSは2000サーバです。

お金があれば正規のクライアントサーバソフトにできるのでしょうが、何しろ素人の自作ですので。

お願いします。
328名無しさん@そうだ選挙にいこう:03/10/03 00:20
>>327
作り方次第で1人しか使えなかったり、50人でも楽勝だったりしますが、
単一の学校で生徒の成績管理とレポート出力、及び簡単な分析機能程度
であれば、先生全員が同時使用してもOKなものは作れますよ。
うちでは、10MのLAN環境&おせじにも良いとはいえない共有ドライブ上に
おいたmdb(データ登録、更新、各種レポート出力、エクスポートなどを行う)
を50人前後のユーザーが朝8時前から夜10時過ぎまでよってたかって
いじめていますが、軽快に動きますし壊れることもありませんよ♪
テーブルのインデックスとクエリの設計は、パフォーマンスを考慮して
最大限の注意を払う必要がありますが。
329μ:03/10/03 00:47
>>296
はい。
コツさえ掴めば簡単にできるようになるよ。

SELECT 取引先コード,
Max(取引先名) AS 取引先名,
Max(住所) AS 住所,
Sum(仕入額) AS 仕入額
FROM tbl一覧
GROUP BY 取引先コード
ORDER BY 取引先コード;

と遅レスしてみるテスツ。
>>328
ちなみに、パフォーマンスの考慮って具体的に何してます?
私の場合は、サーバーの共有ファイルに対して
@クエリーの入れ子を深くしすぎない。
Aインデックスは数値項目に対して、貼れるだけ張る。
 ただし、0 or 1の項目などはヒットしすぎるため張らない。
Bデータの処理は、まずローカルテーブルに追加して、
 それから集計する。
Cテーブルはきちんと正規化。重複項目はもたない。
Dレコードセットは使わない。できるだけ、SQLの実行だけ済ます。
くらいです。
331μ:03/10/03 01:05
>>330
> @クエリーの入れ子を深くしすぎない。
まあ、それは当然ですな。

> Aインデックスは数値項目に対して、貼れるだけ張る。
>  ただし、0 or 1の項目などはヒットしすぎるため張らない。
ひょっとしてインデックスを個別のカラムごとに張っていますか?
インデックスは使用しているクエリのWhere句とJoinで使用している
カラムのセットに合うように張って初めて本来の効果を発揮する
ものですよ?

> Bデータの処理は、まずローカルテーブルに追加して、
> それから集計する。
テーブルが肥大化する原因ですので一時テーブルは素人にはオススメできない。
それにローカルテーブルって各PCにmdbを用意するおつもりで?メンテ大変ですよ。

> Cテーブルはきちんと正規化。重複項目はもたない。
> Dレコードセットは使わない。できるだけ、SQLの実行だけ済ます。
そのとおりですね。

ま、全体のバランス感覚なんですが。
実際いろいろ試してみてパフォーマンスを観察していれば分かってきますよ。
パフォーマンスと同じくらい重要なのがメンテナンスのしやすさだと思います
ので、そのあたりも忘れないようにお願いします。
332名無しさん@そうだ選挙にいこう:03/10/03 01:25
皆様にご質問があります。(当方ACCESS2000)

@テキストボックスにはある日付が書かれています。
Aクエリである日付とその翌日のデータを取得したい。

このようなとき、クエリのWhere句には何と書けばよろしいのでしょうか?
初心者ですみません。
333 :03/10/03 01:30
"フォームでコンボボックスを使う時に
右の▽の部分を普段表示せずに
その項目を選択した時だけ表示させるにはどうすればいいのでしょうか?"
>>332
[Forms]![テキストボックス]
DateAdd("d", 1, [Forms]![テキストボックス])
335μ:03/10/03 01:58
>>333
テキストボックス(連結)とコンボボックス(非連結)を同位置に配置しておく。
サイズはコンボボックスの方が▼分だけ右に長くして。
普段はテキストボックス表示&コンボボックス非表示。
テキストボックスのフォーカス取得時に、テキストボックス非表示&
コンボボックス表示に切り替え、コンボボックスのフォーカス喪失時に
テキストボックス表示&コンボボックス非表示&テキストボックスに
選択された値をセットという泥臭い手法はオキライ!?
336332:03/10/03 02:36
>>334さん

ありがとうございます。出来ました!
>>322
うちのAccess97にはあるんだが・・・。
338321:03/10/03 19:30
自己解決しました。
ttp://support.microsoft.com/default.aspx?scid=kb;ja;407754
━━━━ヽ(゚皿゚O)ノ━━━━!!!!
339318:03/10/03 21:40
>>337
もう少し詳しく教えていただけませんか。

>オブジェクトのインポートのダイアログの時

これは、[編集]-[外部データの取り込み]
とは、ちがうものなのでしょうか?



>>339
ファイル→外部データの取り込み→インポートでインポートしたいMDBを指定すると
オブジェクトのインポートのダイアログになる。
341名無しさん@そうだ選挙にいこう:03/10/04 19:37
access2002で作ったデーターベースをaccess97で開くことが出来ません。
どうすれば開けるようになりますか?
342318:03/10/04 21:01
>>340
ありがとうございます。
でもひとつ聞いておきたいのですが、
システムオブジェクトを見えるようにして、
システムオブジェクトをインポートすればよいのでしょうか。
コピーしたいのはインポート定義だけなのですが。
>>342
インポート定義だけのインポートは、できないんじゃないかな。テーブルにくっついてくる物だし。
344名無しさん@そうだ選挙にいこう:03/10/04 22:24
VBAでAccessのファイルを開いた元のPathってどうやって取得するんでしょうか。
ExcelでいうところのThisWorkbook.Pathみたいな。
345344:03/10/04 22:28
ごめんなさい。
CurrentDb.Nameで解決しますた。
346名無しさん@そうだ選挙にいこう:03/10/04 23:18
DB板で質問しようかと思ったのですが、こちらの方が
レスが付きそうなので、こちらで質問させて下さい。

Windows2000 Pro SP3 + MSDE2000 SP3 + Access2000 SP3 で
DB構築してるんですが、クライアントPCからMSDEに接続できません。
もちろんローカルでは接続できます。
クライアントもWindows2000 Pro SP3で、Access2000 SP3しか入れていません。
ファイル→接続のサーバ名の所が空欄になっていて、実際のサーバ名を
入力してもエラーがでます。
NT認証でも混合認証でもダメでした。
どこか設定が間違ってるのでしょうか?

因みにどちらのPCも同じワークグループで、お互いの共有フォルダは見えてます。


  MS-Office何でも相談室(無料)


  OI2O-69-OI96


348名無しさん@そうだ選挙にいこう :03/10/05 18:46
「退社日」レコードにはいっている値を「抽出退社月」という
テキストボックスに入れた値と一致しているものを抜き出そうと
しました。
 退社日に20030915等とはいっている場合に、200309まで入力
すると抜き出しできるようにするには、以下をどのように変更したら
よろしいでしょうか?

Me.Filter = "退社日 = '" & Me!抽出退社月 & "'"
349名無しさん@そうだ選挙にいこう:03/10/05 19:14
>>348
likeでヘルプを検索
350 :03/10/05 19:20
351名無しさん@そうだ選挙にいこう:03/10/05 23:30
>>349
ありがとうございます。

Me.Filter = "退社日 Like "*"" & Me!抽出退社月 & "*"""

で上手くいきました。
352346:03/10/05 23:41
色々試した所、2000をアンインスト後、7から2000にアップデートして
それでもダメだったので、サーバ名にサーバのIPを打ち込んだら
何とか接続できました。
お騒がせしました。
353名無しさん@そうだ選挙にいこう:03/10/05 23:47
>>351 "の位置が微妙におかしいけどNA
354名無しさん@そうだ選挙にいこう:03/10/06 00:28
>>353
ごめんなさい以下でした

Me.Filter = "退社日 Like ""*" & Me!抽出退社月 & "*"""
>>346
それライセンス違反らしい。
356Access初心者:03/10/06 05:13
基本的な質問かもしれなくて、すみません。

テーブル内に格納されたあるフィールドの値を全行分取り出して、
クエリにかけるのって、どうやればいいのでしょうか?

具体的には

[テーブル1]
ウェブサイト名 URI Query

[テーブル2]
アクセス日 URI Query CookieID

の2つのテーブルを用いて、テーブル1に登録された全てのURI、Queryに
該当するデータをテーブル2から抽出し、

[クエリ]
アクセス日 ウェブサイト名 CookieID

のように出力したいのですが・・・

よろしくおながいします。
>>331 さんの「各PCにmdbを用意するおつもりで?」に関連してですが、
サーバーにはテーブルだけ入れたmdbを置いといて、
クライアントにはリンクテーブルとクエリーその他を入れたmdbを置いた方が、
全部共有するよりもパホーマンスはいいんですよね?(試したことがない)
確かにメンテは面倒ですが。
358名無しさん@そうだ選挙にいこう:03/10/06 14:45
>>356
1.まず、テーブルの画面で、テーブル1と2を、URI項目で、リレーションシップを構築する。
  (テーブル1と2の関係は、1対N)
2.クエリのデザインビュー作成画面を出す
3.テーブル1と2を追加する。
4.テーブル2から、アクセス日とCookieIDを、1からはウェブサイト名を
  ドラッグドロップし、クエリ名を適当に付けて保存する。    
                                  以上。
359μ:03/10/07 00:34
>>357
もちろん。比較にならんです。

>>356
やりたいことは以下のクエリで合ってるかなぁ?
SELECT テーブル2.アクセス日, テーブル1.ウェブサイト名, テーブル2.CookieID
FROM テーブル1 INNER JOIN テーブル2
ON (テーブル1.Query = テーブル2.Query) AND (テーブル1.URI = テーブル2.URI)
ORDER BY テーブル2.アクセス日, テーブル1.ウェブサイト名, テーブル2.CookieID;
360名無しさん@そうだ選挙にいこう:03/10/07 22:49
「テーブル正規化ウィザード」で、テーブルを処理しています。
テーブルには販売した商品の品番や数量が記載されています。

その作業の途中の「入力ミスを修正します」のところで、「修正箇所が
ウィザードで識別されました」として候補がいくつもあげられるのですが、
そのほとんどがまとはずれなので、かえって手間が増えています。
(50個以上ある。)

で、質問なのですが、
修正候補が出ないようにするか、またはまとめて「修正しない」に変更する、
という方法はないでしょうか?

今はDelと↓キーを交互に押して対処してます。
361名無しさん@そうだ選挙にいこう:03/10/08 03:41
データアクセスページを用いてイントラネット経由で見ることができません。
教えてください。

いろいろ試したんですが、タイトルしか表示されないんです
362名無しさん@そうだ選挙にいこう:03/10/08 05:30
363 :03/10/08 22:02
フォームでイメージを表示する時

現在のデータ名と
指定のディレクトリの中にあるデータ名と同じファイル名を表示する時
どうすればいいのでしょうか?
364名無しさん@そうだ選挙にいこう:03/10/09 00:25
フォームでリストボックスを使う時に
右の▽を非表示にするにはどうすればいいのでしょうか?
>>364
「右の▽」が意味不明
フォームの左端にある縦バー(右向き▲)を非表示にするのは
「RecordSelectors/レコードセレクタ」プロパティを「No/いいえ」にする。
366名無しさん@そうだ選挙にいこう:03/10/09 19:45
341です。
その時出るメッセージは
「データーベースの形式 'H\DRIVE\**.db'を認識できません。」

どなたか分かる方ご教授ください。
367名無しさん@そうだ選挙にいこう:03/10/09 21:45
>>365
すいませんまちがいました
コンボボックスです

お願いします
>>341
Access2000からだと『ツール』『データベースユーティリティ』『〜旧バージョンに変換』
2002 and 97 持ってるけど今使っていないので確かめられない。
自分で試してください。2000のファイルは97からだと開けない。
>>367
何のために?用途を書いてミソ
370名無しさん@そうだ選挙にいこう:03/10/11 10:35
ACCESSのフォームでTEXTBOXに値が入ってる状態でそのTEXTBOXをクリック
した時にその中の値を取得ってできましたっけ?

もしあれば方法を教えてください。
よろしくお願いします。
371名無しさん@そうだ選挙にいこう:03/10/11 10:50
>>370
(゚Д゚)ハァ!!?
Private Sub テキストボックス名_Click()
  MsgBox Me.テキストボックス名
End Sub
【最悪】韓国の剣道パクリ運動がついに現実問題に
http://news4.2ch.net/test/read.cgi/news/1065672997/
373名無しさん@そうだ選挙にいこう:03/10/11 13:43
質問です。

レポートのページ設定がWindows98系とWindowsNT系で違うので
設定しなおすのが大変です。1つのmdbを両方のOSで
設定なしに使えるようにする方法はないのでしょうか?
(VBAで指定するとか・・・。)
徐々にWindows2000/XPに移行できなく困っています。

374373:03/10/11 13:47
373ですが、
Windows98ではユ−ザ定義サイズを使用し
Windows2000では「プリントサーバーのプロパティ」で
新しい用紙を作成しています。印刷用紙は連続紙です。
375330:03/10/12 00:22
>>328
遅レスでが、どうもありがとうございます。
参考になりました。インデックスは、数値項目のほとんど全てに張って
いました。追加・削除は遅くなるけど、検索が早いというメリットを
取ったつもりでした。WhereとJoinに使うものだったのね。(ノД`)

376名無しさん@そうだ選挙にいこう:03/10/12 13:39
ACCESS97です。
起動時にフォームを表示させているのですが、
メニューバーを非表示にすることはできませんでしょうか?
377名無しさん@そうだ選挙にいこう:03/10/13 10:05
>>376
メニューバーを操作できないようにするのが目的なら
フォームをポップアップにしてしまえばいい。
>>376
ツールの「起動時の設定」だか「ユーザー設定」だか、いまいち区別が…。
379123:03/10/14 11:32
レポートでグラフ(散布図・サンプル数100程度のもの)を1つ作ったら、いきなりファイルの重さが
1メガも増えてしまいました。
こんなのあり得ることなんでしょうか?

で、慌ててそのグラフを削除してみたのですが、なぜかファイルの重さが変わりません。

ひょっとして、ファイルが壊れてしまったのでしょうか?
>>379
重さは分からないけど、最適化をしてみた?
381名無しさん@そうだ選挙にいこう:03/10/14 12:41
access2002について質問があります。
例えば、単純に顧客情報のテーブルを作成し、それをフォームにします。
氏名、住所、電話番号…というように。
その後、そのフォーム上で顧客情報を確認するためにマウスのローラーで
下にスクロールしていきます。
その後、また上にマウスでスクロールしていくとレコードの1件目が表示されないのです。
(2件目以降は表示されます。)
つまり、ある意味ではスクロールが固まったような状態になるのです。
ただし、レコードセレクタ等では1件目を表示させることが可能でした。
どなたか解決法をご存知の方がいらっしゃいましたらお教えください。
初歩的な質問でごめんなさい。
よろしくお願いします。
382名無しさん@そうだ選挙にいこう:03/10/14 14:40
よろしくお願いします。
ACCESS2000 WINXPです。
1対多の関係にある「テーブルAのフィールドA」と「テーブルBのフィールドB(テキスト型)」で

  [フィールドA][フィールドBの先頭][フィールドBの2番目][フィールドBの3番目]・・・

という感じでフィールドAに対してフィールドBを先頭から5番目まで横並びにするクエリを行いたいのです。

現在思案中なのですが、とりあえずフィールドBの先頭を抽出するクエリを行い、
このクエリと元テーブルとの不一致により抽出した2番目以降のデータから、また先頭を抽出する。
これを5回繰り返して抽出した1から5番目のデータを結合する。
という方法しか思いつきません。

もっとサクッと逝く方法があるのでしたら、教えてください。

Access2000(SR-1・SP2・SP3)で

Windows2000インストール後にSp1〜4適用した(上書き)環境で作ったいくつかのプログラムの一つが
Windows2000をSp4統合クリーンインストールした環境でうまく動きません

AccessはVMに依存してる部分があるんでしょうか?

(他人の作ったプログラムな上、しかもmdeファイルなので中身が弄れない・分からないので・・・)

384名無しさん@そうだ選挙にいこう:03/10/14 15:52
売上管理データベースを作っています。
売上データクエリには、売上日、得意先名、商品、金額が表示されます。
この場合、売上日の古い方からあらゆる売上が表示されるのですが、
顧客ごとに最新の売上のみを表示するようにしたいのです。
つまり、Aという顧客が過去に何回買ったとしても、直近の一件だけを
表示させたいのです。その場合、どのような方法があるでしょうか?
SELECT TOP 1
>>383
Access自体は旧環境と全く同じにしてあるの?
例えばSPのアップデートが不完全だったりすると途端に怪しい動作になったりするよ。
というかなった。
387名無しさん@そうだ選挙にいこう:03/10/14 23:33
>>384
クエリーのデザインビューで得意先、売上日、商品、金額で並べ
[表示]-[集計]でグループ化し、売上日の並べ替えを降順
集計を先頭にする。
で、どう?
388名無しさん@そうだ選挙にいこう:03/10/14 23:41
クエリの質問もここでいいですか?
テーブルAとテーブルBがあります。
で、テーブルAにはテーブルBと全く同じレコードがいくつかあって、
テーブルBと一致するレコードをAから見えなくしたいのです。
そういうクエリはどう作ればいいのでしょうか?
クロス集計クエリを2つ合わせたユニオンクエリを作ったのですが、
値の書式を設定するにはどうしたらよいのでしょうか?
元のクロス集計クエリは「通貨」なのですが、
ユニオンクエリにすると「数値」になってしまいました。
>>383
Access同じでもOfficeの状況が変わっていないか?(あとVBとかも)
参照可能なライブラリが変わっていたりすると、不都合がでる。
参照されているライブラリの名前が同じでもバージョンが変わっていたりすると、
不都合がでる。
参照されているライブラリの名前が同じでバージョンが同じでも中身が違っていたりもするかも。
参照可能なライブラリの優先順位が違っていても不都合が出るかも。
391名無しさん@そうだ選挙にいこう:03/10/15 16:43
windows2000 Access2002です。

フォーム上でコマンドボタンを配置する際に、通常ではボタンウィザードが
起動されますが、起動しなくなりました。ヘルプなどを見て原因をさがし
ましたが、掲載されている問題点に(連結されたテーブルなど・・・)
該当しない為、一度アプリケーションの修復を行いましたが、
解決せず、しかたないので再インストールを試みました。
ですが、解決しませんでした。

同じ症状が発症したかたがおられましたら是非ともお教えください。
駄目な場合はosの入れ直しを検討しています。
>>391
ネタか?冗談だろ?

そもそもウィザードの画面は、本来複雑(面倒)な筈の作業を
ある程度自動処理することで手軽に作業できるようにした
一種のアシスタント的な機能なんだから、こだわる奴なんかには不要な機能。
だとすると、どっかに「ウィザードを使用する/しない」のボタンでもありそうなものだが・・・。

まあ、OSから入れ直しゃそりゃ元に戻るだろうが・・・
いつまた同じことになるか分からんな。
>>391
ツールバーの「魔法使いの杖」がオンになっていないのでは?
394ととし:03/10/15 18:40
エクセルからデータをインポートする際、
エクセル上の、不必要な列(空白なのに)を勝手に認識してしまって、うまく
インポートできません。

例えば、エクセルの列でデータが入力されている部分は、列A〜列Eまでなの
に、列F以降(10列くらい)もインポートしようとしてしまうのです。
エクセル上で何度これらの列(F以降)を削除してもダメです。

エクセルの操作の範疇に入るのかもしれないのですが、アクセス使用中の問題
なので、こちらで聞いてみました。

よろしくお願いします。
395名無しさん@そうだ選挙にいこう:03/10/15 20:06
列削除後に保存した?
396名無しさん@そうだ選挙にいこう:03/10/15 23:12
>>388
フィールドは、まったく同じなのかな?
それだったらテーブルひとつにしてフィールドを追加して
Aテーブルだけにレコードがある場合の条件をA
A、B量テーブルにある場合の条件をBとかして
管理したほうがやりやすくないのかな。
>>394
状況がつかめないので逃げの対策をひとつ
新規テーブルにインポートして、そこから
データを入れたいテーブルへ追加クエリーを実行する。
397383:03/10/16 00:04
職場のPCなんですが、Access自体は旧環境と同じにしてあります。
Office2000のCDで「全てインストール」した後は特に何も設定してません。
ちなみに動かないプログラムは数十本あるうちの1本だけです。

エラー内容は
「式が正しく入力されてないか(中略)複雑な要素が多すぎます(略)」でOKを押すと次は
「オブジェクトが正しくないか、現在設定されてません」で、OKを押すと永久ループ
のように何度も同じメッセージが出るので、タスクマネージャで強制終了してます。

当方自宅に自作機2台あるので、いろいろ実験してみました(VBとかは考慮してませんが)

問題無いパターンは
・WIN2000インストール→SP1〜SP4順番に上書き適用(職場で大部分の環境はこれ)
・WIN2000インストール→SP3上書き適用→SP4上書き適用
・WIN2000SP3適用済みCD作成してクリーンインストール
・素のWINXP
で、Access2000側の環境はSR-1以降であればSP2だろうがSP3だろうが、問題なく動きました

不具合が出るパターンは
・WIN2000インストール→SP4上書き適用(インストールしなおした環境はこれ)
・WIN2000SP4適用済みCD作成してクリーンインストールした環境
・WINXPインストール→SP1a上書き適用
・WINXPSP1a適用済みCD作成してクリーンインストールした環境
だと動かなくなりました。

>>390氏の言うとおり、「参照可能なライブラリ」の問題が疑わしと思うのですが
職場では「イレギュラーなインストール方法(SP統合CD)をとるほうが悪い」という
ことになってしまいWIN2000インストール→SP1〜SP4順番に上書き適用で落ち着きました

回答下さった皆様ありがとうございました
398391:03/10/16 08:34
魔法使いの杖がオンになっていませんでした。
お陰様で解決できました!ありがとうございます。
399 :03/10/16 11:00

いま自宅から放送してます。

http://www21.brinkster.com/deelings/goa/index.html
400名無しさん@そうだ選挙にいこう:03/10/16 11:56
OS Windows 98
Version Access 2.0

伝票番号(Counter)、売上日(Date/Time)、合計金額(Currency)、
摘要(Text)というフィールドを持つテーブル「売上」のデータから、フィールド
「摘要」に"IT"という文字列が入力されていないデータを抽出したいのですが、

SELECT DISTINCTROW 売上.売上日, 売上.合計金額, 売上.摘要
FROM 売上
WHERE ((売上.売上日=#2003/10/06#) AND
(売上.摘要 Is Null And Not 売上.摘要="IT"));

という抽出クエリーでは何も表示されません。どうすればよいでしょうか。
>>400
売上.摘要 Not Like "*IT*"
適用未入力のレコードも考慮して
売上.適用 Not Like "*IT*" Or 売上.適用 Is Null
あ、ごめん「適用」じゃなくて「摘要」
404400:03/10/16 13:01
抽出条件はANDではなく、ORなんですね。
ほんと、ばかですね。> 自分
ありがとうございました。
>>400
> (売上.摘要 Is Null And Not 売上.摘要="IT"))
「Nullで且つ"IT"じゃ無い場合」になってるぞw
406400:03/10/16 15:45
>>405
そうですね。思い込みというか、一人で悩んでいるときは全く気が
付きませんでした。他人から指摘されると、自分のバカさ加減に嫌
気がさします。
407名無しさん@そうだ選挙にいこう:03/10/16 22:44
>>400
SELECT 売上日, 合計金額, 摘要
FROM 売上
WHERE 売上日=#2003/10/06#
AND (摘要 Is Null or 摘要<>"IT");
408 :03/10/16 23:05
>>382
どうもはっきりしない内容だけど。
テーブルBのフィールドBってのは、テーブルAのフィールドAが、
重複ありでずらーっと並んでいる状態、ではないよね。
だとしたら、>>382の望んでいる結果ってのは、フィールドAの横に、
まったく同じデータを5つ並べることになっちゃうもんね。
たぶんテーブルBには、別にフィールドAがあって、それが2つを
結ぶキーになっているんだよね。
まあどっちでもいいんだけど。

以下のプロシージャ、前者の場合は(まさかないとは思うけど)17行目の
If YomiTbl![FieldA] = KakiTbl![FieldA] Then を
If YomiTbl![FieldB] = KakiTbl![FieldA] Then に書き換えてね

まずはテーブルAにフィールドを5つ加えて
("FieldB1","FieldB2","FieldB3","FieldB4","FieldB5")
410409つづき:03/10/17 02:58
On Error Resume Next
DoCmd.Hourglass True
Dim OrenoDb As New ADODB.Connection
Dim KakiTbl As New ADODB.Recordset
Dim YomiTbl As New ADODB.Recordset
Dim NanbanMe As Integer
Set OrenoDb = CurrentProject.Connection
Set KakiTbl = New ADODB.Recordset
Set YomiTbl = New ADODB.Recordset
KakiTbl.Open "TblA", OrenoDb, adOpenKeyset, adLockOptimistic
YomiTbl.Open "TblB", CurrentProject.Connection
KakiTbl.MoveFirst
Do Until KakiTbl.EOF
YomiTbl.MoveFirst
NanbanMe = 1
Do Until NanbanMe = 6
If YomiTbl![FieldA] = KakiTbl![FieldA] Then
KakiTbl("FieldB" & NanbanMe) = YomiTbl![FieldB]
NanbanMe = NanbanMe + 1
End If
YomiTbl.MoveNext
Loop
KakiTbl.MoveNext
Loop
KakiTbl.Close
Set KakiTbl = Nothing
YomiTbl.Close
Set YomiTbl = Nothing
OrenoDb.Close
Set OrenoDb = Nothing
DoCmd.Hourglass True
MsgBox "終了"
411409つづき:03/10/17 02:58
ちなみにこのプロシージャ
7万件の売上履歴相手に、1万件の商品リスト使って試したら、
1万件中の40件処理するのに5分かかった(celeron400Mhz)
そこであきらめた。
あきらめてよかった。
終わるの待ってたら20時間以上、だった。
考えてみればしょうがないか。
商品は売上履歴5回に達しないものばかりだし、
そんな場合は7万件総なめすることになるんだから。
少数精鋭回転率の良い商品ばっかりだったら、
売上履歴なんて何万件あったってすぐに終わるんだろうけどね
412名無しさん@そうだ選挙にいこう:03/10/17 11:06
教えてください。

プレビューを表示した際に、左クリックするとプレビュー
ウインドウにピッタリ収まるようにレポートが表示される
のですが、左クリックしないでも(プレビューを表示した
直後)ピッタリ表示されるようにするにはどうしたらよろ
しいのでしょうか?

お願いします。
413名無しさん@そうだ選挙にいこう:03/10/17 13:34
件数のカウントについて教えてください。
バグ表からバグ累積グラフを書くためのデータを取得しようとしています。
テーブル:ID、発生日、内容
というテーブルがあったとして、この表を加工して
発生日、(その日の)発生件数、(その日までの)発生累計の表を
取得したいのですが、累計を計算する方法がよくわかりません。
SQLでどう書けばいいのでしょうか?
AccessだけならDsum関数を使ってできるのですが、
VBなどからも処理したいのでSQLのみで実現したいのです。。

こんな感じになると思うのですが・・
SELECT
発生日,Count(*) as 発生件数, ????? as 発生累計
From テーブル,テーブル as テーブル_1
Where テーブル.発生日>テーブル_1.発生日
Group by テーブル.発生日
Order by テーブル.発生日;

ご教授お願いします。
414382:03/10/17 14:14
>409
レスありがとうございます。
誰も回答くださらないので、半ば諦めていました。

>たぶんテーブルBには、別にフィールドAがあって、それが2つを
>結ぶキーになっているんだよね。
すいません。説明不足でした。
おっしゃるとおりフィールドAはテーブルAの主キーで、テーブルBにも外部キーとしてフィールドAがあり、
当然フィールドA同士を結んでいます。

僕はADOを全然理解できていないので、フィールド名等を修正し、ただコピペし使用してみただけなのですが、
望んだ通りになりました。
データは今のところ1000件程度で、さほど増えるものでは無いので、処理速度については全然問題ありません。
ありがとうございました!!

あとは僕がせっかく作っていただいた、このコードを自分なりに理解してみようと思います。
それと、最後のDoCmd.Hourglass はFalseですよね。
415μ:03/10/18 00:59
>>413
RDBMSごとの方言はご自分で吸収してね。

SELECT A.発生日,
Count(*) AS 発生件数,
(select count(*) from テーブル AS B where B.発生日 <= A.発生日) AS 発生累計
FROM テーブル AS A
GROUP BY A.発生日
ORDER BY A.発生日
416名無しさん@そうだ選挙にいこう:03/10/20 21:27
よくもまあ、こんなソフト使うもんだなw

言語覚えて、自分で最初から新しいソフト作った方がマシだわなw
417名無しさん@そうだ選挙にいこう:03/10/20 22:11
>>416
新しいソフト作るぐらいなら、言語も作れよ。
あ、、それと、OSとかもな(w
あと、マザーボードと CPU と HDD と...

まずは、山に珪素を取りに行けや。(w
419名無しさん@そうだ選挙にいこう:03/10/20 23:49
つまり、珪素採掘からやらないとならないくらい原始的なソフトつーことだw
420名無しさん@そうだ選挙にいこう:03/10/20 23:57

データシートの既定のフォントが設定できなくて困っていまつ。

「ツール」−「オプション」−「データシート」タブ−「既定のフォント」から通常は変更できるはず
なんだろうけど、漏れのPC上ではコンボボックス内にフォント名が1個も表示されませんヽ(`Д´)ノ

こんな感じでつ↓
ttp://cgi4.synapse.ne.jp/~atapage/cgi-bin/img-box/img20031020235604.jpg

原因の分かる方、同じような現象を経験された方はいませんか?

ちなみに環境はXP Pro+Access2002でつ
421名無しさん@そうだ選挙にいこう:03/10/21 11:39
トラブル多いだろ。
422321:03/10/21 18:57
使用環境
ファイル共有
共有する DB が存在するマシン:Windows 95/Access 97
DB を使用するマシン:Windows 95/Access 97

実現したいこと
普通に mdb ファイルを開くとデータベースウィンドウが表示されずに任意のフォームが開き、Shift キーを押しながら mdb ファイルを開くとパスワードのログオンフォームが表示され、パスワードを入力するとデータベースウィンドウが表示されるようにしたい。


現状の経緯
現在、支店の顧客データを利用して部署内で使用する簡単なシステムを作成しております。
顧客データが簡単に抜き取られるようなシステムでは困るので、Shift キーを押しながら起動した際にパスワード入力によってデータベースウィンドウが開けるようしたいのですが、何か良い方法はないのでしょうか。
423名無しさん@そうだ選挙にいこう:03/10/21 19:19
424けい:03/10/21 21:38
アクセスのレポートの詳細を2つに増やしたいのですができますか、
できるばあいはやり方を教えてください
425けい:03/10/21 21:40
アクセスのバージョンは2000、97です。
426日吉慎一:03/10/21 21:55
(´・ω・`)
>>1に激しく同意
427kiku:03/10/21 22:01
すみません、僕の会社のデーターベースはすべてが1日単位で取引先
IDが600社以上有り商品1甲単位の合計を1ヶ月単位でクロス集計してもなぜか
うまくいかないのです。テンプレートなどいい参照先があったら教えてください
428名無しさん@そうだ選挙にいこう:03/10/22 02:06
http://www.microsoft.com/japan/office/suminaka/access/sousa/1/sousa1_37_1.htm
ここにwebによる検索ページの作り方がのってますが、この通りにやると自分のコンピュータからしか検索ができません。
イントラネット上でページを開くと、タイトルのみしか表示しかしないのです。
なにか他にやることってあるんでしょうか?

お願いします。
429名無しさん@そうだ選挙にいこう:03/10/22 11:22
>>422
access-mdbである限りデータの抜き取りは可能。
知識のあるヤシには無力だな。
>>429
データ蓄積用MDBとそのクライントに使用するMDBとに分離後、
データ蓄積用のMDBにデータベースパスワードを設定。
その後共にMDEにコンパイル。
これでもだめなの?
431名無しさん@そうだ選挙にいこう:03/10/23 17:26
OS:WinXP
Ver:Access2002 SP-2

困っています。
SQLサーバーを利用し販売管理のソフトを開発しています。
SQL文の命令を実行するところで
----------------------------------------------------------------------------
実行時エラー'3709'
この操作を実行するために接続を使用できません。このコンテキストで閉じているか
あるいは無効です。
----------------------------------------------------------------------------
SQL文自体には問題がないように思われます。

ストアドプロシージャで値を直接入力し、実行したらうまくいきました。
VBA上での値は、フォームからひっぱってくるようにしていますが、そこは問題ないようです。
なぜエラーが発生するのでしょうか・・・。
よろしくお願いいたします。
432sage:03/10/23 17:31
>>430
一般人には十分有効だが、そんなもの漏れが見たら、
データのセキュリティのうちには、はいらんな。
433431:03/10/23 18:15
解決しました。

        <SQL文>

Set CMD = Nothing

※ Set CMD.ActiveConnection = CONN

        <SQL文>

※の部分がなかったのが原因でした。
失礼しました。
434430:03/10/24 00:10
>>432
なんか納得いきません。
じゃどうやったらパスワード認証抜けれるんですか?
って聞くのはタブーだからいいとして逆に
「〜だから大丈夫に決まってる」
と言う風なご意見の方おられませんか?
よろしくお願いします。
435KI:03/10/24 04:52
Accessで、自動採番をしていきたいのですがアドバイスお願いいたします。

フィールド1→年度 (ex.2003)
フィールド2→採番番号 (ex. 01)

というものを作って、フォームでフィールド1、2ともに自動採番していきたいと考えて
います。(2003 01, 2003 02,・・・・というふうに自動採番していきたい)
しかし、来年の4月になったらフィールド1の年度を"2004"に自動変更し、変更後、
フィールド2の値を1から取り直したいのです。
このようなことを自動でやるのは可能なのでしょうか?
DMAX関数を使って・・・と思ったのですが、年度が変更したときに
どのようにフィールド2の値を1から取り直せばいいのかが分かりませんTT

初歩的な質問で申し訳ありませんが、どなたか詳しい方お願いします。
>>434
Accessでそこまで神経質になる必要はないのでは?
本当に重要だったら、きちんとしたDBMS使うべき。
437430:03/10/24 12:33
>>436
おっしゃりたい事はわかりますが
重要なデータならAccess以外を使う イコール
Accessのセキュリティの強度を知る必要がない
とは違うと思います。
人によるかもしれませんが、私は知りたいです。
ご意見いただけませんか?
よろしくお願いします。
おまいら!もちつけ!
     /\⌒ヽペタン
   /  /⌒)ノ ペタン
  ∧_∧ \ (( ∧_∧
 (; ´Д`))' ))(・∀・ ;)
 /  ⌒ノ ( ⌒ヽ⊂⌒ヽ
.(O   ノ ) ̄ ̄ ̄()__   )
 )_)_) (;;;;;;;;;;;;;;;;;;;)(_(
439名無しさん@そうだ選挙にいこう:03/10/24 13:16
>>437
くだらんこと聞く前に、必要だと思うのなら
自分であらゆることを調査しろ。
少なくとも漏れはそうやって調査したからな。

いくつかアクセスベースのソフトを調べてみたが、
殆どすべて甘甘セキュリィだったしなぁ・・・・
ACCESSベースであるということ=素人の自主制作
もしくは極貧プロジェクトであると考えていいと思う。
とりあえず的に使うには十分でしょ。
>>437
「セキュリティに配慮すべき案件ならACCESSを使用すべきではない」と
いう認識だけで十分かと。
441名無しさん@そうだ選挙にいこう:03/10/24 15:36
つか、素人がアクセスを使いこなせるとも思えないがな。
442名無しさん@そうだ選挙にいこう:03/10/24 15:52
Access2000を利用しています。
フォームフィルタを使っての検索を行いたいのですが情報がうまく取得できなくて対処できず困っています。
どなたかお知恵を貸してください。

データテーブルとフォームを1つのMDBにした場合にフォームフィルタを利用すると
テキストボックスをクリックするとコンボボックスの状態になり、
リストには既に入力されているデータが表示されます。

ところが、データテーブルとフォームを別々のMDBに分けてリンクした場合にフォームフィルタを利用すると、
テキストボックスをクリックするとコンボボックスの状態にはなるのですが
リストには「Is Not Null」「Is Null」の2つしか表示されなくなってしまうのです。
きちんと既存データをリストとして表示させるにはどうしたらよいのでしょうか。

あちこち検索してみたり、過去ログを調べたりしてみたのですが、対応策を見つけることができませんでした。
既出の問題でしたらすみません。アドバイスいただけたら幸いです。よろしくお願いします。
443名無しさん@そうだ選挙にいこう:03/10/24 16:50
>442
フォームのある側のテーブルでは
リンクしてるテーブルがきちんと表示されてんの?

分けたら、フォームの設定しなおさないとリンクされないよ。
444名無しさん@そうだ選挙にいこう:03/10/24 17:02
>443
はい。リンク自体はきちんと設定しています。
データ自体はきちんと表示されますのでフォームフィルタ以外の動作は全て問題ないんです。
445名無しさん@そうだ選挙にいこう:03/10/24 17:19


ACCESSの原因不明のエラーは、まずはアップテート。
そのままだとバグが多いよ。
http://office.microsoft.com/officeupdate/category.aspx?CategoryID=CD010226001041&CTT=4&Origin=CD010224971041
446名無しさん@そうだ選挙にいこう:03/10/24 17:27
ありがとうございます!
とりあえずアップデートしてみます!
447名無しさん@そうだ選挙にいこう:03/10/24 18:08
アップデートしてみました。ダメでした(悲)
どこを見てもそんなトラブルは見当たらないので、自分の作り方が悪いのかもしれませんよね。
VBAとか使えば対応できるのかもしれませんが、知識もないし、マシンの性能が厳しいので重くなったりすると辛いので
とりあえず普通に検索してフィルタをかける方法を使ってくれる人に覚えてもらうことにします。
アドバイス、本当にありがとうございました。
448名無しさん@そうだ選挙にいこう:03/10/24 18:21
>>439
>>440
具体的理由を書かなければ、MSに対する営業妨害としか思えないな。
>>448
まず必要な知識を身に付けてから出直してこいよ
   ピョン
    , - 、
───┐ ! ヒュー
□□□│ ・
□□□│ |\
□□□│i´   ̄ ̄ ̄ ̄ ̄ ̄ヽ
□□□│|   ∧_∧      |
□□□│|  ( ´∀`)オマエラ  |
□□□│|  /,   つ  オチケツ |
□□□│| (_(_, )      |
□□□│|   しし'       |
□□□│!、_______,ノ
 ._.  │
 | | |  │
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
>>435
簡単に・・
>フィールド1→年度 (ex.2003)
フィールド2→採番番号 (ex. 01)

とは別に現在の年度と最大番号を保管するテーブル(フィールド)を
作っておいて、データベースを開いたときなどにそのテーブルの年度と
現在のシステム日付(Date関数)比較して年度が違ったら(変わったら)
そのテーブルの年度をDate関数で取得した年度に更新する。
その場合最大番号を保管するテーブルを0にクリアする。
って感じでやったりします。(システム日付を合わしといてね。)
452名無しさん@そうだ選挙にいこう:03/10/24 19:28
>>449
バカ発見!
>>448
まあ、よくいるんだよ。
この手のやつらが。

Access だから「無力」だとか言ってる奴は、アフォ丸出しだろ。
データ暗号化してしまっとくことだってできるんだからさ。

まあ、その手間が格納するデータが必要とするセキュリティコストに見合うかは別もんだけどな。
454名無しさん@そうだ選挙にいこう:03/10/24 23:49
だいたい、Accessごときでケンカするなよw

怖くて仕事になんか使わないさw
>>442
検索対象の上限か?
ツール→オプション→編集/検索のレコード数の最大値を
少し増やしてみるとか?

Me! ←この書き方、冴子先生に叱られてるみたいで、*´Д`ハァハァ
457435:03/10/25 14:18
>>451
なるほど!!!
やってみますありがとうございました!!!
それと、システム日付って変更しておくとなにか困ること
とかってあるんでしょうかね?
もしまだ見てたらお教えください(^^)
458451:03/10/25 16:40
>>457

> それと、システム日付って変更しておくとなにか困ること
とかってあるんでしょうかね?

逆に変更する場合があるのですか?
前に作ったシステムでシステム日付で採番するようにしてたら、
クライアントの日付が1年以上狂ってて登録できないってことがあったから・・
459442:03/10/25 16:44
>>455
ありがとうございます。
そのあたりはココに質問する前に変更して試してみたんですがダメだったんです(涙)

もしかしたらMDBの分割の仕方が悪かったのかなあ、とか考えてます。
クエリーが結構複雑になってしまったのでデータベース分割ツールが使えなかったんです。
そういう所で処理しなくちゃいけない部分に手抜かりがないか、
1つずつチェックして原因になりそうなものを潰してみてます。
>>454
> 怖くて仕事になんか使わないさw

ププッ、結局具体的なことは書けないわけね。
461420:03/10/26 03:45
事後報告でつ
Access2003を導入したところなぜか>>420の現象はなくなりますた。
462名無しさん@そうだ選挙にいこう:03/10/26 19:14
レベルの低い質問ですみません。サンプルデータベース(ノースウィンド)の
「受注」のような、明細付きの伝票画面を作っています。
画面の上に伝票番号や発行日などを配置して、下にサブフォームを作って
明細データを配置したところまでは良かったのですが、明細データに
ナビゲーションバーというんでしょうか、レコードの移動をするバーが
表示されてしまいます。
これを非表示にして、全データを表示+スクロールバーにしたいのですが
どのようにすれば良いのでしょうか? ヘルプで探したのですが、
「レコードナビゲーションコントロールをクリックしてDELキー削除」とあり、
そもそもレコードナビげーションコントロールがどこにあるのかがわかりません。
>>462
フォームのプロパティ>レコードセレクタ
いいえにする。
464名無しさん@そうだ選挙にいこう:03/10/26 19:41
わかりにくいカタカナが多いソフトだなw
465HUNYA:03/10/26 20:18
よろしくお願いします_(._.)_ 

★このようなテーブルがあります。

フィールド1  フィールド2  フィールド3
りんご     赤色      ピンク色
みかん     黄色      オレンジ
  
★上の様なテーブルを下のようなテーブルに変換していきたいのですが
いい方法がありますでしょうか?

フィールド1  フィールド2  
りんご     赤色      
りんご     ピンク色    
みかん     黄色      
みかん     オレンジ    
 
466名無しさん@そうだ選挙にいこう:03/10/26 20:40
あるけど、ちょっと難しいかも
467462:03/10/26 20:41
>>463
ありがとうございます!!!
そんな所にあったとは。
レコードセレクタと移動ボタンを「いいえ」にしたら
無事望み通りの画面になりました。助かりました。
468名無しさん@そうだ選挙にいこう:03/10/26 20:51
>>465
>★このようなテーブルがあります。
のテーブル名をテーブル1とすると,
まず空の新規クエリ(クエリ名:「クエリ1」)を作成して保存し,SQLビューにした後,
SELECT [フィールド1], [フィールド2]
FROM [テーブル1]
UNION ALL SELECT [フィールド1], [フィールド3]
FROM [テーブル1];
を入力すると,>>465の下のようなデータを返すクエリ1(ユニオンクエリ)
が作成されます。次にクエリ1を元にテーブル作成クエリを作成すると,
>>465のテーブルが作成されます。
469466:03/10/26 20:57
そうだよ!ユニヨンクエリーを使うのだよ!
ユニヨンクエリーはテーブルを縦にくっ付けるクエリーなんだ!
470HUNYA:03/10/26 21:46
>>468-469

なるほど!!!ありがとうございます、やってみます!!!!
471名無しさん@そうだ選挙にいこう:03/10/27 01:27
OS:Win2000
Ver:Access2002 SP-2
DB:Oracle9i

VBAからOracleのストアドプロシージャ、ストアドファンクション
を呼び出すのはどうしたらいいのでしょうか?

いろいろ参考書などを読んでみたのですが、ほとんど
Access + SQL serverの組み合わせばかりで
Access VBAからOracleのストアドプロシージャへの
引数の渡し方、ストアドプロシージャからの返り値の受け取り
方などがよくわかりません…

どなたか詳しい人がいましたら教えてください。
472名無しさん@そうだ選挙にいこう:03/10/28 16:59
Access2000 , Windows2000です。

テーブルに「顧客氏名」「受注日時」という項目があります。
受注日時には 2003/10/28 16:54:00 というふうに、時間まで入っています。

これらをクエリで10/28だけ抽出したあとテキストファイルに書き出したいのです。

ですが、クエリのデザインビューにて、>#2003/10/28# といった指定をすると
その後テキストファイルにてエクスポートできるのですが、

> [ 日時は? ] という指定をした場合、
エクスポートする際に
「パラメータが少なすぎます。1を指定してください。」
というエラーメッセージが出て、テキストエクスポートウィザードが始まりません。

毎回デザインビューを開くのも手間なので、
解決法やアドバイスをいただきたいです。よろしくお願いします。
473名無しさん@そうだ選挙にいこう:03/10/28 21:44
エクスポートするファイルの種類を「テキストファイル(*.txt;*.csv;...)」にしていませんか?
テキストファイル以外のものではエクスポートできるので
ファイルの種類を「テキストファイル(*.txt;*.csv;...)」にしないで

1.「Microsoft Word Merge (*.txt)」にしてエクスポート
2.文字列は""囲みでタブ区切りのテキスト形式に保存される
3.472さんの使いたい形式のテキストではなかったら、エディタ等で一括置換して整える

ファイルの種類を「テキストファイル(*.txt;*.csv;...)」だと、
テキストの形式が確定できないのでうまくいかないんじゃないかと思います。
たぶんSQLビューの方で直接書き換えるのではないかと思うのですが、
そちらの直し方は自分もよくわからないのですが、ご参考になれば。
474名無しさん@そうだ選挙にいこう:03/10/29 02:56
[ACC2002]特定のフォームを開くとAccessが終了できなくなる現象
http://support.microsoft.com/default.aspx?scid=kb;ja;436192

こんなことなら2000のままにしとけば良かった。
客にタスクマネージャ触らせるわけにいかんし。
2003は安定してますかね?
475名無しさん@そうだ選挙にいこう:03/10/29 12:09
最初からやめとけ。
476472:03/10/29 12:41
>>473

おっしゃる方法でエクスポートできました。
テキストエディタ「秀丸」にてダブルクォーテーションを削除し、
一行目の見出しを削除するマクロも組めました。

希望の形式で一発でエクスポートしてくれると一番助かるのですが、
SQLビュー等はこちらも全くわかりませんので、
しばらくはこの方法でがんばります。

ありがとうございました!
>>472
受注日時>2003/10/28 16:54:00とすると
クエリにて、
受注日:受注日時と言うのを作る
で、プロパティ>書式>日付(S)とすると
受注日>2003/10/28
と取り出すことが出来ると思います
後は適当にエクスポートしてください
478名無しさん@そうだ選挙にいこう:03/10/29 22:50
>476=472
FSOで直接書き出しすれば?
479名無しさん@そうだ選挙にいこう:03/10/29 23:06
CSVでいいならWrite # ステートメントにしようよ。
高速だし、何も考えなくても確実なCSVになる。
下手に自前CSV作られると思わぬローカルルールで困ってしまう。
480473:03/10/30 03:46
す、すみません。VBを知らないレベルで書き込んでます。(^_^;;;
もしやと思いマクロで試してみたらできたので報告しときます。

新規作成を選んだら

アクション:「テキスト変換」
変換の種類:「区切り記号付きエクスポート」
定義名:(ブランク)
テーブル名:クエリー名を入力
ファイル名:パスから正確に入力(エクスポートしたテキストファイルのファイル名)
フィールド名の設定:「いいえ」(「いいえ」だと見出しは吐き出されないで「はい」だと吐き出されます)
HTMLテーブル名:(ブランク)
コードページ:(ブランク)

にして、マクロを保存します。
保存したマクロをダブルクリックすると、CSV形式で吐き出されます。

ちなみに、モジュールに変換してみたら
DoCmd.TransferText acExportDelim, "", "(クエリー名)", "(パスからのファイル名)", False, ""
になりました。
text1とtext2のボックスを作って、text2はtext1のフリガナが入るようにしました
で、text1に6バイトの文字制限をかけようと思い、
text1でEnterを押されたときの処理を書いてみたのですが、
何故か「メモリ不足のため〜」とエラーが出ます。
どうやらフリガナを入れにいこうとしてる時に起こってるみたいなのですが。
フリガナ支援を外すとエラーが出ないので。。。
ソースは、こんな感じです。

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Dim Maxbyte As Integer
Dim S As String
S = Me!Text1.Text
Maxbyte = 6
If KeyCode = 13 Then
If LenB(StrConv(S, vbFromUnicode)) > Maxbyte Then
Me!Text1.Text = LeftA(S, Maxbyte)
MsgBox "文字オーバー"
KeyCode = 0
End If
End If
End Sub

Public Function LeftA(ByVal sString1 As String, ByVal lLength As Long) As String Dim bSource() As Byte
bSource = StrConv(sString1, vbFromUnicode)
ReDim Preserve bSource(0 To lLength - 1)
LeftA = StrConv(bSource, vbUnicode)
End Function
度々スミマセン。
ACCESSはXPで、OSは2Kです。
484431:03/10/30 10:40
OS:WinXP
Ver:Access2002 SP-2

またまた困っています。
フォーム上のテキストボックスのプロパティで、エラーメッセージを表示したいのですが、
思うようにできません。

-------------------------------------------------------
元の数 " & [数1w] & " より小さい値を入力してください。
-------------------------------------------------------

で、フォーム上の値をエラーメッセージに表示させたいのですが、この書き方ではそのまま
表示されます。
googleで検索してみたのですが、それらしい情報が見つからず困っています。

何か方法がありますでしょうか?
よろしくお願い致します。
485名無しさん@そうだ選挙にいこう:03/10/30 12:39
誰か教えてください。メニューバーに表示がなくて
ツールバーも表示されません。
メニュー画面を作ったときにツールバー等を非表示にしようとした
のですが、二度と出すことは出来ないのでしょうか?
>>484
"元の数 " & [数1w] & " より小さい値を入力してください。"
>>485
Shift+mdbファィルダブルクリックでも表示されない?
表示できたらツールの起動時設定をチェックしてミソ

※一度閉じて起動すれば最小限のメニューバーは表示されると思うけど…
488名無しさん@そうだ選挙にいこう:03/10/30 13:06
ありがとうございました。
Shift+mdbファィルダブルクリックで表示できました。
もう一度初めから作り直そうかと思ってまして
助かりました。
489431:03/10/30 13:10
>>486
だめでした・・・。
やはりそのまま表示されてしまいます。
>>489
「そのまま」ってなにが「そのまま」なの?
491431:03/10/30 14:32
>>489

メッセージボックスに以下のようにそのまま表示されるんです。


"元の数 " & [数1w] & " より小さい値を入力してください。"
     ~~~~~~~~~~~~~~~~
       ↑
    この部分を、フォーム上の値にしたいんですが・・・。
492名無しさん@そうだ選挙にいこう:03/10/30 16:15
発効日と有効期限があって有効期限は発効日の一年後なので
入力を自動にしたいのですが、テキストボックスの既定値に
dateadd関数を入力しましたが、何も表示されません。
どうすればよいでしょうか?

=DateAdd("yyyy",1,[発効日])

何か構文が変なのでしょうか?

>>492
既定値はレコード作成時に設定されるので、フォーム表示時には出てこないと思う。
例えばフォーカス取得時など、イベントに合わせた設定動作にするが吉。
>>492
=DateAdd("y",1,[発効日])
>>491
MsgBox "元の数 " & Me.数1w & " より小さい値を入力してください。"

こう言うことか?
>>481
Win2k+Access2kではエラー出なかった。
ただし、
Public Function LeftA(ByVal sString1 As String, ByVal lLength As Long) As String Dim bSource() As Byte

Dim bSource() As Byte
から改行しないとダメだろ。
それと、これじゃ確かにText1は6バイトに切りつめられるけど、Text2はそのまんま入らねぇか?

>>492
規定値じゃなくコントロールソースにそれ書いてみ。
497431:03/10/30 18:39
>>495
ダメでした・・・。
やっぱりそのまま出てきます。やりかたがいけないのかな・・・。
プロパティのエラーメッセージにMsgBoxが使えるんですか?
498495じゃないけど:03/10/30 18:45
>>497
アンタ質問の仕方が悪いよ。
エラーメッセージを出すタイミングは?
恐らくテキストボックスに数値を入れた時だろうけど
それにしても判定基準となる数値が何か分からないし。

どっちにしてもVBAのイベントプロシージャに
>>495みたいに書いた方が楽だろ。
499名無しさん@そうだ選挙にいこう:03/10/30 19:09
>491
VBAかマクロを使えばメッセージボックスに式を設定できるけど
プロパティのエラーメッセージには式は入れられないみたいですね。
500名無しさん@そうだ選挙にいこう:03/10/30 19:14
マクロだったら
新規作成を選んでメニュー[表示]→[条件]をクリックして条件列を表示させてから

条件:[Forms]!(フォーム名)![数1w]>=[Forms]!(フォーム名)!(エラーメッセージを表示させたいテキストボックス名)
アクション:メッセージボックス
メッセージ:="元の数 " & [数1w] & " より小さい値を入力してください。"

みたいに入力して、エラーメッセージを表示させたいテキストボックスのプロパティで
イベントタブの[フォーカス喪失後]とかに設定すれば、それらしく動くみたいです。
つーかさ、プロパティにあるエラーメッセージって
指定した入力規則に従わない入力をした時に表示する項目でしょ?
つまりプロパティの使い方が悪いって事で…。

普通にイベントプロシージャからMsgBox使いなよ。
ややこしい事考えないで。
access2002
ユニオンクエリ使用時にデータの欠落が起きるんですが仕様でしょうか

フィールドは「日付」、「金額1」、「金額2」、「金額3」だけで

まったく同じデータが複数あるとその中の一件だけ消えてしまいます。
結合前のクエリでは正常に表示するんですが
ユニオンクエリ使用するとこの症状がでます。
既出だったり常識だったらすいません。

アクセス2000で、二つのデータの突き合わせをしなくてはいけないのですが、
一つのデータはデータベースから吸い出したデータ、一つは各人が入力してきたデータなので
突き合わせのキーになる名称は中途半端な統一しかされていません。
データAでは「株式会社○×△△△商事」
データBでは「(株)○×△商事」と、略称だったりします。
スペースを無くすとか、省略語を無くすとか(例でいうと、「株式会社」「(株)」)置換で出来る範囲で
整合性を取るようにはしているのですが、なかなか上手く行きません。
自分は
「データーベースは統一キーワードが必要で、あいまいなデータでファジーな突き合わせは出来ない」
と思っているので、最初から無理な事なんだと思っているのすが、周りが納得してくれなくて、
こちらで質問をさせていただいた次第です。

今は苦肉の策で「上○文字で突き合わせ」「下○文字で突き合わせ」をして、ダブッたデータを
目で調べているという中途半端にアナログな状態です。

あまりアクセスに詳しくないので、質問がど素人でごめんなさい。よろしく御教授ください。
504sage:03/10/31 00:43
>502
仕様です。
主キーも一緒にユニオン。
>>502
まずはどうSQL文を書いたかさらせ
506名無しさん@そうだ選挙にいこう:03/10/31 06:57
>>502
union のところを union allにすればいいんじゃないかな。
507431:03/10/31 08:05
質問の仕方が悪いとのご指摘をいただきましたので、説明します。

テキストボックスに値を入力し、Enterキーを押した後、入力前の値より大きかったら
テキストボックスにフォーカスを元に戻し、入力をし直すようにしたいのですが、VBAでは、
元の位置に戻すSetFocusがうまくいかず、フォーム上でプロパティの入力規則とエラーメッセージを
使って処理をしようと考えていたのですが・・・。

>>500
マクロでの方法、今日やってみます。ありがとうございました。
>>507
VBAだったら更新処理前のイベントで行うんでないの?
509431:03/10/31 08:55
>>500

マクロで処理できました。

1.条件:[Forms]![FromName]![数1w]<[Forms]![FromName]![数1]
  アクション:メッセージボックス(メッセージ…="元の数 " & [数1w] & " より小さい値を入力してください。")

2.アクション:イベントのキャンセル

3.条件:[Forms]![FromName]![数1w]>=[Forms]![FromName]![数1]
  アクション:コントロールの移動(次のテキストボックス)

ありがとうございました。
510431:03/10/31 08:57

FromName → FormName でした。 (_ _)
511431:03/10/31 09:00
>>508
更新処理前のイベントって使ったことないんですけど、データが変更される前に
イベントが発生するイメージがあって、使い道が分かりません…。
512名無しさん@そうだ選挙にいこう:03/10/31 09:46
>>511
更新処理前イベント:
やっちまおうか??。。どうしよ。??
更新処理後イベント:
あー。。やっちゃっちまった、、さて、、こいつどうしよ。。。
>>511
マクロで処理できたんなら今回は良いけど
入力値のチェックは普通、更新処理前に行うもんだから
更新処理前のイベントプロシージャの使い方も覚えた方が良いよ。
もし、システムがエラーを起こす値が入力されたらどうすんのさ。
そのために更新処理前にチェックするんだから。

SetFocusメソッド使わなくても更新処理前のイベントプロシージャに
DoCmd.CancelEvent
って入れとけばフォーカスは移動しないよ。

入力前の数値より小さい数値を入力する必要があるなら
テキストボックスがフォーカスを取得した時に入力前の値も
変数に入れて比較する必要があると思うけど、そのへんは勝手に。
514431:03/10/31 10:16
>>512,513

ご親切に説明していただき、ありがとうございました。
大変勉強になりました。

一番大事なノートに記録しておきます。
今後ともよろしくお願い致します。

>入力前の数値より小さい数値を入力する必要があるなら
>テキストボックスがフォーカスを取得した時に入力前の値も
>変数に入れて比較する必要があると思うけど、そのへんは勝手に。

フォーカスを取得した時に、非表示の別のテキストボックスに値を
入れています。
516431:03/10/31 15:08
>>515
大変参考になりました。
とても勉強になります。
独学なので、まだまだ分からないことがたくさんです。
ありがとうございました。m(_ _)m
517502:03/10/31 21:43
>>504,505,506
レスありがとうございます。
SQLはヘルプで出てくるまんまのものですが
データの欠落の原因が判らずかなり時間を
食ってしまいました。
教えていただいた方法で試してみたいと思います
使用DBはAccess2000とXPです。
union allで結合した2つのテーブルの
売上フィールドを一回の処理でsumしたいのですができますか?
今はこんな形で処理してます。

test1(テーブル) →ID,売上
test2(テーブル) →ID,売上

select ID,売上
from test1
union all
select ID,売上
from test2;

↑これをクエリ1として保存
次に・・・・・

select ID,sum(売上) as 売上金額
from クエリ1
group by ID

とやっています。二度手間なのでどうにかunion allの時に
sumの処理もできないでしょうか?
わかり辛い質問ですみませんがお願いします。
>>518

SELECT ID,sum(売上) as 売上金額
FROM (SELECT ID,売上
FROM test1
UNION ALL
SELCT ID,売上
FROM test2) AS Q1
GROUP BY ID

これでいけるかな?
520μ:03/11/01 01:08
>>518
こんなんじゃ納得してくれないよなぁ・・・。
SELECT test.ID, Sum(test.売上) AS 売上金額
FROM (select ID, 売上
from test1
union all
select ID, 売上
from test2
) AS test
GROUP BY test.ID
ORDER BY test.ID;
521μ:03/11/01 01:10
>>519 ケコーンする?
>>520
ゴメン、既に…
523名無しさん@そうだ選挙にいこう:03/11/01 02:17
>503

比較するデータがすでにできてしまっている状態では、今のような方法しか
無いように思います。私も同様の事例に苦しめられています。
アナログにがんばってください。

各人が入力してきたデータというのは、今後も発生し続けるのでしょうか。
入力もAccessを使っているなら、データベースからマスタを作成し、
入力時にコンボボックスを使って選ばせるようにすればどうでしょう。
お初の会社名に対応するためには、マスタに無い文字列が入ってきた場合、
その文字列をマスタに追加する機能をつけなければなりませんが。
524名無しさん@そうだ選挙にいこう:03/11/01 13:51
>>503
データのキーを名称にしてるのが、そもそもダメ。取引先みたいなリソースデータは
リソーステーブルに隔離して、且つキーをID番号の様に明確にし、名称の様なデータは主キー・外部キー
なんぞに遣ってはダメです。アクセスの様なRDBでは、ファジーデータなんてそもそも使えません。
525名無しさん@そうだ選挙にいこう:03/11/01 15:59
>>503
梶A(株)、(株)、株式会社を全部同一視。
半角スペース、全角スペースは全部削除。

さらに置換用マスタを作って
該当するバリエーションを随時溜め込めるようにして、
次回から自動置換率を上げるとか。
526名無しさん@そうだ選挙にいこう:03/11/01 18:58
教えてください。
OfficeXP Developer版で作成したACCESSデータベースの配布の際、
カレンダーコントロールやプログレスバーを使っているのですが、
これらに関しても何らかの頒布ライセンスが必要になってくるのでしょうか。
Access2003ですが,Excelワークシートインポートウィザード,
変じゃありませんか?
第一列しかフィールドのオプションが設定できないみたいですけど・・・
528名無しさん@そうだ選挙にいこう:03/11/02 05:18
>>474
>>527
そっかー。まだ2000にしといた方がいいですかねえ。
受託開発にウィザードは関係ないけども。
529名無しさん@そうだ選挙にいこう:03/11/02 10:03
出たてのを使うなんて冒険家ですなあw
530503:03/11/03 20:43
>>523
ありがとうございます。やはりアナログにがんばるしかないですよね。
各人が入力するデータは、頻繁にあるそうです。
そうですね、入力段階でなんとかできるように工夫してみます。
ただ、別システムで動いてる顧客データベースのデータをaccessに落して
作業しているために、元マスタを手作業で頻繁に更新しないと行けないのが
少し悩みどころですね。
それが無理でも、入力方法に一貫性を持たせてもらうように、
アナウンスするようにしてみます。

>>524
そうですよね。胸を張って上司に「無理です!」と言う覚悟が出来ました。
自分でそう思っていても、なかなか他人を納得させることができなくて。

>>525
置換用マスタもいいですね。アイディアありがとうございます!!!
アナログに行くにしても、工夫すれば格段に楽になりそうです。

こんな初歩っぽい質問に答えていただいて、ありがとうございます。
精進いたしますのでまたヨロシクお願いします。
参照設定
532531:03/11/04 11:03
↑検索と書き込みを間違えました。
禿げしく逝ってきます
533名無しさん@そうだ選挙にいこう:03/11/04 23:16
Access2000でWindows2000を使っています。

フォーム上にコンボボックスを作成し、リスト上の明細を選択する際
スクロールバーでは無く、マウスのホイールを使ってコンボボックスに
表示したい明細を選択する事は可能でしょうか?
>>533
2000は見てわかるとおり、フォームのイベントにマウスホイールがない。
2002だとあるらしい。
>>317あたり読め。
私的な事情で会社のデータベースへのデータ入力を自宅で行いたいと思っています。
直属の上司には許可をもらったのですが、他の人には内緒にする様に言われました。

私の会社のDBは外注業者に作成してもらったのですが、
会社以外のパソコンでデータ入力を行った場合は、DBに何か情報が残ったりするのでしょうか?
※入力時はパスワード等は求められません。

ちなみに、会社のPCの環境は、Windows Me、Office 2000 Professionalで
自宅のPCは、Windows XP、Office 2000 Professionalです。
>>535
そのDBを作成した外部業者の仕様が全く分かりませんが、
DBを開いた時間や終了した時間のユーザー名を取得したり
データを更新や追加したときに時間やユーザー名を取得することは可能です
ただ、mdb自体家に持って帰って作業できる程度のものでしたら、そこまで
されているかどうかは分かりません
537533:03/11/05 16:19
>>534
ありがとうございました。
勉強してきます・・・
538535:03/11/05 16:50
>>536
早速、お答え頂きありがとうございます。
少し怖いような気もしますが、今回は上司に甘えさせて頂き
自宅で仕事をさせて頂こうと思います。
とても参考になりました。ありがとうございました。
539hirofumi:03/11/06 16:00
データアクセスページで、ページ間でパラメータを受け渡す方法を
ご存知の方は、教えてください。

Access 2002を使用
540名無しさん@そうだ選挙にいこう:03/11/07 17:09
以前にACCESS97からACCESS2000へ変換をしたのですが、
半角カタカナをVBAで使用していました。その文字を全角カタカナ
に変えようとしてもなぜか半角カタカナに戻ってしまいます。

参照しているテーブルのフィールド名やフォームのオブジェクト名は全角です。
ACCESSのバグでしょうか?エラーがたまに起きてバグってしまいます。

良い対処法はありませんか?
>>540
VB(Access)では半角と全角は同一視するため、基本的にはどっち使ってても平気だが、
フォームのコントロール名やテーブルのフィールド名にカタカナから始まるものがあると
コンパイルに失敗することがある

Me!カタカナだよ → Me("カタカナだよ")
tbl!カタカナだよ → tbl("カタカナだよ")

といった感じに置き換えてやればダイジョブ
542名無しさん@そうだ選挙にいこう:03/11/07 19:03
>>541

ありがとうございます! ずーっと悩んでました。
543名無しさん@そうだ選挙にいこう:03/11/09 01:52
どうしても分からないのでご回答お願いいたします。
(実現したい事)
 ファイルサーバーにあるmdbから各支店にあるデスクトップのmdbにあるテーブルをリンクしたい。
(環境)
 全員Windows2000・Access2000
よろしくお願いいたします。
544名無しさん@そうだ選挙にいこう:03/11/09 02:46
>>543
不明点が多すぎ。真面目に答えが知りたいのなら
ネットワーク構成とか制限とか普通書くと思うけど・・・。
>>544
そうだな。しかもこういうケースにかぎって支店はINSとかあったりするんだよな。
Access2000 で Oracle9i のテーブルをインポートしたときに、
OracleのNumber型をAccess側でフィールドサイズを長整数にした数値型として
取り込みたいんですけど、どうすればいいんでしょうか?

デフォルトのままだと、フィールドサイズが十進型になるんですけど、
インポート時のオプションとして設定できたりするんでしょうか?

手作業でひとつずつ変えていくしかないのかな・・・

よろしくお願いします。
>>546
あらかじめ希望のデータ型に設定してある空のテーブルを用意しておき,Oracleから取り込んだテーブルから,
そのテーブルへ追加クエリでコピーするという方法はどうでしょうか。
取り込み時にデータ型を設定する方法があればいいのですが。
548543:03/11/09 17:02
 >>544、545さん
 レスありがとうございます。
 すみません。ただの事務員なのでネットワークの事まで分からなくて。。
 やっぱり、そういう知識も必要ですよね。また勉強をして出直します。
549547:03/11/09 17:06
>>547より ALTER TABLE (テーブル名) ALTER COLUMNでデータ型を変更するほうがよかったですね。ゴメンナサイ。
550名無しさん@そうだ選挙にいこう:03/11/10 01:12
>>543
現状、ファイルサーバーから各支店のデスクトップへ
アクセスできているのでしょうか。(共有とか登録とかしてあります?)

支店PCがネットワーク上に「AAA」という名前で見えているとして、
リンクする時のファイル名の欄に
「\\AAA」と打てば とりあえずAAAの中には行けるんですが、
そういうレベルの質問ではないのでしょうか。
551543:03/11/10 07:13
>>550さん
ありがとうございます。そうです。とりあえず、そういうレベルで考えてます。
でも、550さんがいうようにできるかは分からないので今日、会社で試してきます。
すごく初心者な質問で申し訳ないのですが、
どなたかお答え願えますでしょうか。

入出庫のデータ管理をする時、
期日と商品名を選択して、在庫数を呼び出したいのです。
クエリのwhere条件で指定する方法ではなく、
フォームで呼び出したいのですがアクセスで可能ですか?
>>552
VBAからSQl文を投げてあげて下さい。
>>553
VBAが必要なのですね。教えていただきありがとうございました。
教えてください。
会社で販売会社から来た問い合わせ業務のデーターベースを作りたいと思っています。
問い合わせには発行番号が振ってあり、まずその受付番号と車型、生産年月日等
必要な事項を入力して保存して終わりなんですが、後日その受付番号をキーに
もう一回フォーム形式から呼び出すことが出来るようにしたいのですが
それは可能でしょうか?

OSはwin2000でACCESSも2000です。
上手く説明できていないかも知れませんがよろしくお願いいたします
>555
可能。基本中の基本です。
>>552
クエリーのWhere条件式には、
=Forms![フォーム名]![コントロール名]
でフォームのコントロールに入力された値を参照するように設定する事ができる。

フォームのコントロールに条件の値を入力した状態で、Where条件として、その
フォームを参照しているクエリーをレコードソースとする別なフォームを
開けば、VBAは全く使わずにフォームに指定された値を持つレコードを表示する事が出来る。
(呼出しフォームにボタンを付けて、ボタンが押されたら検索結果表示フォームを開くなど)

期日と商品名で在庫数が呼び出せるかどうかは、テーブル設計が書かれていないので
キミ以外の他人にはわからない。
>>555
発行番号指定用のフォームを1つ作る。そのフォームにテキストボックス1つと
ボタンを1つ作る。
仮に、フォーム名を[frm検索]、フォーム上のテキストボックス名を[tb番号]としよう。

発行番号のフィールド名は[fld発行番号]になっているものとしておく。

次にマクロを1つ作る。マクロ名は[mac呼出]という事にしておく。
アクション=フォームを開く
フォーム名=キミが表示させたいフォームの名前
ビュー=フォームビュー
Where条件式=[fld発行番号]=[Forms].[frm検索].[tb番号]

[frm検索]のボタンを押したら[mac呼出]を実行するようにしておく。
[frm検索]を開いて、[tb番号]に呼び出したいデータの発行番号を入力したら、
ボタンを押せば、指定された番号で条件指定が掛けられたフォームが開く。

入力に使っているフォームが、特に起動時処理やら自動更新やらのややこしい処理を
していないフォームだったら、マクロで開く対象のフォームにそのまま指定できる。

入力用フォームがチェック処理やら更新処理やらを加えている、手順通り開かないと
まずいようなフォームの場合は、検索データ表示用のフォームは自分で作ろう。

以上、VBAは使用しない初歩的な方法。検索は頻繁に使用される処理なので、
ググッて見れば、沢山の方法が分かる筈。VBA無しでもいろいろなやり方がある。

でも、VBAとSQL&ADO(とかDAOとか)を覚えたほうが、結局は手っ取り早くて楽できる。

>>556
基本中の基本ならヒントくらいあげれ〜。(^へ^;)
質問です。

Access上で画像ファイルを表示する際に、
大きなタイル状に区分けされた一枚の画像の「ここからここまで」と
座標指定して部分的に表示させることは出来るのでしょうか?

もし出来るので有れば方法を、若しくは、その辺りのやり方の
掲載されている書籍を教えていただきたいです。

560名無しさん@そうだ選挙にいこう:03/11/11 16:23
すいません教えてください。
Access2000@WinNT4.0なんですが、
レポートを作成する際に、グループ化をする場合がありますよね?
[並べ替え/グループ化]ダイアログを表示させて、
纏めたいフィールド名をリストから選択して、グループヘッダーを表示って。

このとき[フィールドリスト]ダイアログには表示されているフィールド名の一部が
[並べ替え/グループ化]ダイアログに表示されない現象ってあり得るんでしょうか?
またバグでしか?
561560:03/11/11 16:29
それと、
式ビルダでオブジェクトを選択する時にも、確かにあるはずのフィールドが
表示されないって事も偶にあるんです。
やはりバグでしか?
562ナンクル:03/11/11 17:26
質問なんですが、
テーブルを作成した後に人の名前などのフリガナをフィールドに追加して
名前のフリガナを取得することは可能でしょうか?
作成する前なら「ふりがなウィザード」でどうにかできるのですが、
作成した後だとできないので、
どなたか教えてください。
>>562
日本語には音読み、訓読みがある。重箱読み、湯桶読みなどもある。
さらに名前の読み方には、無理やり読ませているのもあるので
普通はできないと思うけど。どうだろう。
>>562
そりゃ難しいだろう。

俺の知り合いにも、「渡辺 (わたなべ)」「渡部 (わたべ)」さんとかいるし。
>>558
ありがとうございました。
早速やってみます。
566名無しさん@そうだ選挙にいこう:03/11/11 23:53
>>562
IMEの再変換機能で全てひらがなの候補
(複数ある場合は最初のもの)を使用する。
IMEの自動化は他で勉強し給え!
567ナンクル:03/11/12 00:18
そうですか、わかりました。
がんばってやり直します。
返答どうもです。
568560:03/11/12 08:03
同じ現象で悩んでる人いないのかな?

Accessって使いやすいけど、致命的な虫をほったらかしてるのがイヤ。
なんどDB壊されたか...(´・ω・`)ショボーン
569名無しさん@そうだ選挙にいこう:03/11/12 21:08
日にちを打ち込めば、その日にち以前のもののデータを出すようにしたいのですが、
<And=〔Type Date〕 という式では、出来ません。

特定の日にち以前のものを出したい場合に、Before見たいな関数はないのでしょうか?
だれかWIN2000+ACCESS95と言う組み合わせで使っている香具師いる?
ウチの会社がそうなんだけどフォームウィザードでフォームを作成すると
フィールドをちゃんと選択しても、”カレントレコードがありません。
と言うエラーメッセージが出て作成出来ないんだ。
対処方法知っていたら教えて
571名無しさん@そうだ選挙にいこう:03/11/12 23:43
>>568
出てこないフィールドの型は?
修復とか定期的にしてる?

>>569
<=[日付を指定して下さい]
と入れてみなよ。

>>570
ウィザードなんて使ってる時点で(ry
572560:03/11/13 11:21
>>571
ガ━━(゚Д゚;)━━━ン!!!!!
メモ型だった...スマソ 
ゲイツにあたってもうた...スマソ

...でもバグは直せよ ゴルァ
Access2000の顧客データベースで
100件ほどあるJフォンのメアドをボーダフォンに替える必要があります。
これを更新クエリでやるにはどうすればいいのでしょうか?

・例:[email protected][email protected]

更新クエリでは無理という場合にはどうすれば良いでしょうか?
>>573
その場限りでいいのなら
テーブルを開いて「置換」で処理した方が早いよ
575名無しさん@そうだ選挙にいこう:03/11/13 23:04
>>573
確かに「置換」が速いと思いますが
更新クエリーでするのなら
Left(Len([変数名])-10) & "h.vodafone.ne.jp"
なんてどうでしょう
576名無しさん@そうだ選挙にいこう:03/11/14 00:39
AccessでWindowsでログインするみたいに
ユーザー名とパスワードを入力させて一致したら
次の画面に行くように作ろうと思ってるんですけど、
何か参考になるサイトはないでしょうか?
よろしくお願いします。
>575
jp-に続く文字はエリアによって異なるから、こんな風になるかな?

UPDATE table1 SET table1.Mail = Left([Mail],InStr(1,[Mail],"@",1)) & Mid([Mail],InStrRev([Mail],".ne.jp",-1,1)-1,1) & ".vodafone.ne.jp"
WHERE (((table1.Mail) Like "*jp-?.ne.jp"));
>576
>>422-423
579名無しさん@そうだ選挙にいこう:03/11/14 08:34
>>578
ありがとうございます
580573:03/11/14 19:38
みなさんありがとう。

>574-575
テーブル開いて
「*jp-h.ne.jp」→「*h.vodafone.ne.jp」
と置換してみたら、置換後のメアドが
*h.vodafone.ne.jp
となってしまったので断念しました。

きっと何か勘違いがあったのでしょうが、
良くわからないので>575にあるようにしました。

>577
それはモジュールで使うやつでしょうか?
更新クエリの「レコードの更新」のところに
貼り付けたらエラーが出ました。

Access関数リファレンスに載ってた
Replace関数がクエリで使えれば楽なのになあ。
581いなむらきよし:03/11/14 21:37
キケー!
>>580

「*jp-h.ne.jp」→「*h.vodafone.ne.jp」 にしてどうする?

「jp-h.ne.jp」→「h.vodafone.ne.jp」だけでいいんだよ。

ACCESS2002ですが

ピボットテーブルフォームの行列項目の折畳み、展開をVBAで操作するには
どうしたらいいのでしょうか
584名無しさん@Linuxザウルス:03/11/16 14:05
質問させてください

例えば

日付 ランク 場所
11/11 A a
11/11 A
11/11 B b
11/11 C 

ていうようなテーブルがあって
クエリで場所の項目の値が"b"以外(空白も)の行をを抽出したいとき
条件に「Not "b"」と書くと"a"の行しか抽出されないんですが
"a"も空白も抽出されるようにするには
どうしたらいいんでしょうか
585名無しさん@Linuxザウルス:03/11/16 14:07
>584です
すみませんaccess2000です
>>584
空白がNullだからかね
「Is Null Or Not "b"」で抽出される
>580
つっこみどころ満載だけど、みんな放置してるのかな?

> >577
> それはモジュールで使うやつでしょうか?
> 更新クエリの「レコードの更新」のところに
> 貼り付けたらエラーが出ました。

SQLビューにして貼り付け
なお、table1とMailは適時変更すること


> Access関数リファレンスに載ってた
> Replace関数がクエリで使えれば楽なのになあ。

使えるよ。
588 :03/11/18 15:04
すいません、一つ質問です。


レポートAは横向き印刷
レポートBは縦向き印刷(プリンタ設定で設定されている)
なお、ページ設定を行わずに実行したい。

上記な感じで印刷したいのですが、どのようにすれば良いのでしょうか?
今回、横向きのレポートを作成したのですが上手く印刷されないんです。
レポート呼び出しはDoCmd.OpenReportで呼んでるだけです。
>>588
デザインビューで、用紙設定を行っておけば問題なく印刷されるはずなんだが。
さしあたりそのくらいしか。
590 :03/11/18 15:43
>>589
デザインビューでページ設定を横にしてOKボタンを押すのですが、
もう一度ページ設定を開くと縦に戻ってるのです。
ちなみに、プレビューやレイアウトではちゃんと横向きで表示はされているのですが・・・。


ちなみに、OSはXP、OFFICEもXP
>>590
その他プリンタで定義したら?
592 :03/11/18 17:37
>>591
プリンタ追加であれば出来ました。
しかし、何故ページ設定が出来なかったのが分からないまま・・・。


>>592
プリンタ側の設定でデフォルトで縦になっているからでは?
ACCESSのSQLで年齢を求めたいのですが、
2つの日付より年数を求めるSQLの関数って有るのでしょうか?
>>594
Accessなんだし素直にDateDiff関数を使えばいいのではないかと。
Access2003インスコしたんだが、何も変わっとらん
^^;
>>594
日付型の値同士で引き算すれば差(日数)を求めることができる。
DateDiffとどちらが早いか知らないけど。
>>594
マイクロソフトのホームページ
http://support.microsoft.com/default.aspx?scid=%2Fdirectory%2Fworldwide%2Fja%2Fkblight%2FT010%2F0%2F36.asp
では,下の計算式で年齢が計算できるそうです。
年齢: IIf(Right(Format([誕生日],"yyyy/mm/dd"),5,)>Right
(Format([日付],"yyyy/mm/dd"),5),DateDiff("yyyy",[誕生日],
[日付])-1,DateDiff("yyyy",[誕生日],Now()))

式がごちゃつく理由は,ExcelのDATEDIF関数では,満年齢をちゃんと計算してくるのに対し,
VBA関数のDateDiff関数は,単に年の数字の差(Year(b)-Year(a))を返してくるだけなので,
月日の前後関係で年齢の値を調節する必要があるためと思われます。
599名無しさん@そうだ選挙にいこう:03/11/20 11:21
オラクルのファイルをASSESSに読み込ませたいのですが、
どうすればいいですか?
600名無しさん@そうだ選挙にいこう:03/11/20 22:11
すみません教えてください。

月末の日付を取得する穂法はありませんか?
教えてください
テーブルを基にクエリを作成し、そのクエリを基にオートフォームで
フォームを作成しました。
その後、テーブルに変更を加え(フィールドを追加)し先ほど作ったクエリに
フィールドも追加しました。
しかし作ったフォームには追加できませんでした。
テーブルの変更をフォームに反映させる方法はあるのでしょうか?
教えてください。よろしくお願いいたします
>>600
その求めたい月末の翌月一日を求めて一日引く。
俺はその方法しかしらね。

>>601
そのフォームにまず、コントロール(テキストボックス?)を追加して
そのコントロールのコントロールスソースで追加したフィールドを指定しる。
603601:03/11/20 22:48
>>602
できました!。アドバイスありがとうございました。
テーブルのテキスト型フィールドにフィールドサイズ(文字数)分の空白を入れたいのですが、どうすればよいでしょう。
テキスト型フィールドには、NULL値か空文字列しか入力できないようですが。
>>599
オラクルのファイル? データではないの?

オラクルDBからデータをインポートしたいなら
1.オラクルクライアントをインストールして
2.Net Easy Configでデータベースへの接続設定
3.ODBCデータソースにオラクルデータベースを登録
4.Accessのmdbへインポートってとこかな。

当然、ソフトウェアのライセンスと、DBへのアクセス権限が必要。

オラクルのファイルの読込かたは白根。
>>604
全角なら入るのだけど、それじゃ駄目?
用途によるけど、必要なときにスペースを設定する処理を作った方が良いかも。
>>604
フィールドの規定値に、"(入れたい文字数分の空白)"

608600:03/11/21 22:46
ありがとうございます。
その方法で対応したいと思います。
>592 遅レスだけど…
強制的な用紙設定ならば、
1)プリントする時に自動的に"印刷ダイアログボックス"を表示させて印刷
2)PrtDevModeプロパティで設定する
以上の2つの方法もある。ただしAccess2003/XPで使えるのかは分からない。
>>606、607
ありがとうございます
611名無しさん@そうだ選挙にいこう:03/11/22 08:09
>>594
Public Function Nenrei(d1 As Date, d2 As Date) As String
Dim y As Integer, m As Integer, d As Integer, w As Integer, dw As Date
If d1 > d2 Then
dw = d1
d1 = d2
d2 = dw
End If
y = Year(d2) - Year(d1)
If Month(d1) > Month(d2) Then
m = Month(d2) + 12 - Month(d1)
Else
m = Month(d2) - Month(d1)
End If
dw = DateSerial(Year(d2), Month(d1), Day(d1))
If d2 < dw Then
y = y - 1
End If
612名無しさん@そうだ選挙にいこう:03/11/22 08:10
後半
If Day(d1) > Day(d2) Then
m = m - 1
If Month(d1) = Month(d2) Then
m = 11
End If
w = Day(DateSerial(Year(d2), Month(d2), 0))
If w > Day(d1) Then
d = w - Day(d1) + Day(d2)
Else
d = Day(d2)
End If
Else
d = Day(d2) - Day(d1)
End If
Nenrei = y & " 歳 " & m & " ヶ月 " & d & " 日"
End Function

Now()と組み合わせれば、年齢が計算可能
613名無しさん@そうだ選挙にいこう:03/11/22 14:45
>>611-612
ワロタ

>>594
datediff使え
614名無しさん@そうだ選挙にいこう:03/11/23 06:23
AccessでSQL側から既定値を指定する方法はないのでしょうか
Create文では不可とのことなので,Alter文を用いて以下のとおりやろうとしてもエラーを吐いてしまい悩んでいます…

ALTER TABLE hoge COLUMN hogehoge DEFAULT 999.0
>>613
アホ!
>>614
ALTER COLUMNでDEFAULTを使うには,ANSI-92 SQLでないと駄目みたいです。

方法:[ツール] メニューの [オプション] をクリックし、[テーブル/クエリ] タブをクリックし
て,「SQLサーバ互換構文(ANSI92)」の[このデータベース] チェック ボックスをオンにする。

あと,試してみましたが,データ型定義は省略できないみたいです。

ALTER TABLE hoge ALTER COLUMN hogehoge (REALまたはFLOAT) DEFAULT 999.0
617名無しさん@そうだ選挙にいこう:03/11/24 00:13
当方OSは2000、アクセス2000使用です。
レポートの新規作成のはがきウィザードから
宛名印刷を作っているのですが
住所の改行が意に沿わないものになります。
地名を無視した中途半端なところで改行されるため
非常にみにくい宛名になっています。
住所1、住所2で区別しても、住所1だけでやったのと同じ結果になります。
自分で文字数や文字などルールを決めたりできるのでしょうか。
ご教授お願いします。
618名無しさん@そうだ選挙にいこう:03/11/24 00:28
>>616
丁寧なレスありがとうございます. Ansi92に関することは大変参考になりました.

それでも,Alter Tableステートメント構文エラーが消えないのですが,

これは開発環境を疑ってみるべきなのでしょうか,

それとも使用しているのがdao形式なのでAnsi92に対応できず,
sqlからのプロパティ修正に関する構文がそもそも定義されていないということなのでしょうか?

当方 使用言語はJ2SDK1.42, Access2002です.
>>618
>それとも使用しているのがdao形式なのでAnsi92に対応できず,

わたしが参考にしたURLも先のレスに張っとけばよかったですね。
http://homepage1.nifty.com/MADIA/vb/vb_bbs/200302_03020053.html

>なお、DAOの場合は、ANSI-89モードしかサポートしていないため、
>SQL文での修正を行うことはできません。

># 要するに、ADOならSQLで修正できるけれど、DAOではNGという事です。
># DAOの場合は、1412 さんが書かれたように、
># "DefaultValue"ダイナミックプロパティを利用してください。

なんだそうです。
わたしもぜんぜん詳しくないので,技術的解説は難しいです。
>>619
sqlレベルではなくプラットフォームの方でなんとかするようですね.
頑張ってみます.ありがとうございました.

621名無しさん@そうだ選挙にいこう:03/11/24 14:27
ACCESS2000のクエリで計算式を記述しています。(OS Win2K)


その計算式というのが

int(a * b)

というものなんですが、
a*bの答えが整数の場合、正しい整数から-1されてしまうようなのです。
小数の場合は、ちゃんと小数を切り捨てて正しい結果を表示してくれます。
ネットで調べたらどうもバグっぽいのですが、確信&解消法が分かりません。
どなたか情報をお持ちの方居ますか?
>>621
どういうテーブルでどう言うデータを入れた時にどうなるかを書いてよ。
623621:03/11/24 15:29
>>622
失礼しました。

単純なテスト用テーブルなのですが、

test1test2式1式2
3603.713321332
3603.813681368
3603.914041404
360414401440
3604.114751476
3604.215121512
3604.315481548
3604.415841584
3604.516201620
3604.616551656
5123.216381638.4
3624.616651665.2

てなデータです。

test1は長整数
test2は倍精度小数
式1の計算式は、int(test1*test2)
式2の計算式は、test1*test2

見てのとおり、整数値が答えの場合、式1と式2が一致しない場合があります。
INT関数は切り捨ての関数なので、何でこんな現象が?
と思ったわけです。
624621:03/11/24 15:32
うわ、表が崩れた(汗)

test1   test2   式1   式2
360    3.7    1332    1332
360    3.8    1368    1368
360    3.9    1404    1404
360     4    1440    1440
360    4.1    1475    1476
360    4.2    1512    1512
360    4.3    1548    1548
360    4.4    1584    1584
360    4.5    1620    1620
360    4.6    1655    1656
512    3.2    1638    1638.4
362    4.6    1665    1665.2

これで大丈夫かな・・・・
>>624
計算誤差だと思う。
10進数だと 4.1 とかきっちりしてても、浮動小数点では 4.1 = 0.41 × 10^1 となる。
で、この 0.41 を2進数にすると 0.01101000111101011100001010001111... ときっちり表現できない。
だから、最終的な結果が 1475.9999... とかなってて int() で切り捨てると 1475 となる。
浮動小数点側も事情は同じなんだけど、浮動小数点のほうは表示時に最終桁を四捨五入したりしてるから、結果が異なる。
微妙に小さい値を足しこんでから int() かけるとかすればいいと思う。
>>617
誰か、あのウィザードが記述するコードを解説してほすぃ。
一般ユーザーはテキストボックスやフォントのサイズでも
調整するくらいしかない。

または、新たに手動でテキストボックスを作れば、
「自分でルールを決めたり」もできる。
文字数のカウントとかすれば。

例えばこーゆーとこが参考になるかも。
http://ws.31rsm.ne.jp/~pension/access/hagaki.htm
627617:03/11/25 02:54
>>626
はがきスタジオを買って解決しました(笑)
ありがとうございました。
>>625
同意
僕もAccess使い始める前、Excelばかりつかってた頃から、この現象には出くわしてたから、
べつに驚きもしなかった。
何だ、みんなそうなんだ、てな感じで。
0.0001ぐらいの、差し支えない程度の小っちゃい数足して乗り切りましょ。
>>625
尿意
俺も良く見る風景だと思う。
俺の場合、独学だったから、強引に整数に直して乗算した後
桁を戻してたけどね。
つまり
int(test1*(test2*10)/10)
小数点以下の桁数が固定だったらの話だけど。
630名無しさん@そうだ選挙にいこう:03/11/25 18:30
>>621
バグというより浮動小数点型の仕様です
妙な小細工するよりtest2を十進型か通貨型にするべき
共用サーバーにACCCESS2000で作成したデータベースを置いて
みんながアクセスできるようにしたいと思っています。
この場合、何人かが同時にデーター入力をした場合、データーはきちんと
入力されるのでしょうか?
エクセルだと”XXさんが使用中です”と出ると思うのですが
ACCESS2000の場合は何かメッセージは出るのですか?
>>631
ロックについて調べてこい。
(つーか、データベースの基礎から勉強して欲しい。)

君の質問は、必要な情報が足りなさ過ぎる。
(アプリケーションがどのようにデータベースにアクセスするのか ? サーバー/ネットワークの能力は ? etc ...)

ちなみに、.mdb ファイルを共有サーバーに置いてみんなで「がんがん」アクセスするのは薦められない。
そういうことをしたいのであれば、MSDE (Access2000 に含まれる) の使用を検討した方がいいかもしれない。

詳細は
http://www.microsoft.com/japan/sql/techinfo/deployment/70/msdejet.asp?SD=GN&LN=JA&gssnb=1
633名無しさん@そうだ選挙にいこう:03/11/25 23:29
>>631
mdbファイルを開くモードにもよるが、何も意識せずに作った
AccessDBを数人で使っている分には「きちんと」入力されるよ。
50人以上で同時にこき使ったりしてるといろいろ変な現象が
散見されるようになるけどナー♪
634633:03/11/25 23:35
>>632
ハ、ハ、ハハ。オーバーな・・・。
631が知りたいことくらい文面読めば分かるだろうに。
CeleronCPUの糞サーバに10MのLANでも30人くらいまで
ならAccessで逝ける♪
それにMSDEがAccessについてるわきゃねーだろー。
635釣りかな ?:03/11/25 23:41
>>634
前半は、あえて無視するとして...。

> それにMSDEがAccessについてるわきゃねーだろー。

無恥ってすばらしいね。
もうすぐ正月だ、モチツケ!

     /\⌒ヽペタン
   /  /⌒)ノ ペタン
  ∧_∧ \ (( ∧_∧
 (; ´Д`))' ))(・∀・ ;)
 /  ⌒ノ ( ⌒ヽ⊂⌒ヽ
.(O   ノ ) ̄ ̄ ̄()__   )
 )_)_) (;;;;;;;;;;;;;;;;;;;)(_(
637631:03/11/26 00:06
みなさんアドバイスありがとうございます。
ふと思いついてカキコしてしまったので情報が足りず質問が曖昧になってしまいました。
情報を整理してそれで疑問点が出たら訪れますのでまた教えてください。
638名無しさん@そうだ選挙にいこう:03/11/26 09:49
Linux上のPostgreSQLのデータベースにODBC経由で接続して
PostgresのテーブルをAccessにリンクテーブルとして登録したんですが、
テーブルの内容を見ると#Deletedで、レコードを追加しようとすると

Error While Executing the Query.
ERROR: Cannot in (#7)

というエラーが出ます。これどの辺りの問題だか分かりませんか?
ODBCの設定なのだろうか?
639638:03/11/26 10:55
レコードの追加はできるようになりましたが、
やはりテーブルの内容が、全て#deletedになってます。

Postgres側テーブル
Column | Type | Modifiers
-------+-----+--------------------
ID    | int  | not null Primary key
Name  | text | not null UNIQUE

Access側リンクテーブル
Column | Type    | Modifiers
-------+---------+--------------------
ID    |長整数型 |
Name  | メモ型   |主キー
640名無しさん@そうだ選挙にいこう:03/11/26 12:57
>>632

office2000 office XP
どっちでもいいからCDの中身を探してみれ

ちなみに自分もここでMSDEを知った。

今では会社のデータベースはMSDE+ADPで全部作ってる
まぁ、40人程度の小さな会社だから、これで十分だ。
教えてくれた人、ありがとう。
632じゃないけど
MSDE使いたくてもシステム管理者がCDどっかに隠してるんで使えない。
>>641
キミは管理者に無断でサーバにMSDE入れ込むつもりかね?
643教えてください。:03/11/26 23:55
アクセス97で検索条件フォームを基にSQLを作成し、フォームに表示するシステムを作成しています。
自宅のパソコン(OSは2000)で実行すると正しく実行できるのですが、会社のパソコン(OSは98)で
実行すると、SQLの条件項目で 日付の形式が yyyy/mm/ddになりません。
OSの違いまたはその他の理由で上記のようなことが起こるのでしょうか?
誰か 教えてください。
コントロールパネル開くと、もしかしたら何かいいことがあるかもしれない。
地域とか
645教えてください。:03/11/27 00:06
名無しさんありがとうございました。
明日、会社のパソコンの地域オプション 全般や、日付タブを確認してみます
646名無しさん@そうだ選挙にいこう:03/11/27 16:31
データベースのライセンスについてちょいと教えて下さい

1.ACCESS 2000 を50人分
ファイルサーバーにACCESSデータベース置いて、
50人ぐらいが直接操作することを考えると、
50人分ACCESSのパッケージ買わないとだめですよね?

2..NETでアクセスしに行く方法
ファイルサーバーにACCESSデータベースを置いて、
.NETアプリケーションを作成してそのソフトをクライアント50台に
インストールして、そのソフトがサーバーのACCESSデータベースを
ADO.NETで見に行くような仕様でもACCESSのライセンス50台分入りますか??

3.MSDEつかう
あるいは、ファイルサーバーにMSDEインストールして
クライアントの.NETアプリケーションからアクセスしにいくのは
ライセンス料金はまったく必要ありませんか?

50台にインストールしますが、想定同時アクセス数は1〜5ぐらいですので
どれでもいけると思ってます。

どなたか関係ありそうなサイトでもご存知でしたら教えてください。

宜しくお願いします。
648名無しさん@そうだ選挙にいこう:03/11/27 18:03
>>647

サンクスです。やっぱこの意味ですか

DEV版もってないので意味が分かりませんでした。

ACCESSのランタイムってVBのランタイムとはちょっと違うのかな
ソフトアップデートごとにランタイム入れなおし??

まぁ、これだとクライアントさんの直接負担は0円ですね

ありがと〜
>>648
既に回答が出ているので蛇足になると思いますが、VBと同じような感じです
ランタイムは、端末にaccessなしでmdeみたいな感じで使えるってかんじです
ただ、元のmdbを修正して新たにランタイムを作成した場合、端末に入っている前バージョンを
アンインスコして入れ直ししてもらわないといけないってのが注意点です

私の知っている限りでは、何かのデータをcsvとかで沢山の外部の人から欲しいときかなぁ
accessでランタイムを配布して・・・
ふつーのソフトみたいにインスコ→データ入力→FDかなんかにcsvか、なんかデータ吐かして送付してもらう
みたいな使い方です

他にランタイムの活用されている方いましたら教えて下さい
650632:03/11/27 23:15
>>639
> やはりテーブルの内容が、全て#deletedになってます。

ここの一番下には該当しないか ?

http://www.interwiz.koganei.tokyo.jp/software/PsqlODBC/faq.html

>>640
> どっちでもいいからCDの中身を探してみれ

はぁ ?
なんで俺にそんなことを命令するの ?
相手がちがう、とにかくモチツケ!

     /\⌒ヽペタン
   /  /⌒)ノ ペタン
  ∧_∧ \ (( ∧_∧
 (; ´Д`))' ))(・∀・ ;)
 /  ⌒ノ ( ⌒ヽ⊂⌒ヽ
.(O   ノ ) ̄ ̄ ̄()__   )
 )_)_) (;;;;;;;;;;;;;;;;;;;)(_(
652639:03/11/28 08:07
>>650
さくんす!
ガ━━(゚Д゚;)━━━ン!!!!!
対処法なしかよ!
653名無しさん@そうだ選挙にいこう:03/11/28 11:34
おい、おまいら!
プリンタの電源が切れていると、
DoCmd.OpenReportがエラーになるんだけど、
OpenReportする前に、プリンタが死んでいるかどうか調べる方法を
教えてくれたら、神
654名無しさん@そうだ選挙にいこう:03/11/28 11:40
>>653
おい、おまいら!
ちなみに、Access2000でした。
おねがいちまつ。
655639:03/11/28 11:52
>>654
on error ぢゃダメなのか?
656653:03/11/28 12:17
おい、おまえら!
commitする前にレポート出したり、
いろいろロジックこねこねしてるので、
他の方法キボン。
プリンタオブジェクトを参照してNULLとか、
印刷せずにダミーレポートをOpenReport acVewNormalとか、
そんな方法ないでつか?
おねがいちまつ。
657名無しさん@そうだ選挙にいこう:03/11/28 12:35
>>656
そんな処理は普通せんわボケ。
用紙切れしたり、ジャムったりしても
同じことだろうが。
プリンタによるんだろうけど、うちの支店でつかってる安物(CanonPixus)は
印刷コマンド送るだけで自動的に電源ONになるように設定できる。
本店でつかってるデカいレーザーにはそういう設定はなかったような。
「いちいち電源ONOFFしてんの?」
ってきいたら、四六時中入れっぱなしだって。
用紙切れその他は、ま、あきらめましょ
659名無しさん@そうだ選挙にいこう:03/11/28 14:15
クエリからフォームの項目を参照しているのですが、値が見えたり見えなかったりしています。
どうしてなのでしょうか。

INSERT
INTO
 会員 ( 会員番号 )
SELECT
 [Forms]![Form会員]![会員番号] AS 会員番号;
660名無しさん@そうだ選挙にいこう:03/11/28 16:20
これ見ろ
http://www.maromaro.com/words.html#words4
がんばりすぎはよくない!
>>659
フォームのデータを追加するんなら

INSERT
INTO 会員(会員番号)
VALUES( [Forms]![Form会員]![会員番号] );

になるんじゃないのか?
フォームに入力された番号をキーにして追加するんなら

INSERT
INTO 会員(会員番号)
SELECT 会員番号
FROM [抽出されるテーブル]
WHERE (会員番号 = [Forms]![Form会員]![会員番号]);

だ。
662名無しさん@そうだ選挙にいこう :03/11/28 19:06
>>656
これでもダメ?

On Error Goto .... ' 本来のエラー処理用ラベル
   ・
   ・
   ・
' 一時的にOn Error解除
Err.Clear
On Error Resume Next
DoCmd.OpenReport "レポート名"
' ここでエラー<>0 = OpenReportでエラー発生
If Err.Number <> 0 Then
  MsgBox "プリンターでエラー発生?"
End if

On Error Goto .... ' 本来のエラー処理用ラベルに戻す
663653:03/11/30 01:04
おい、おまえら!亀レスすいまそん..

cn.Execute "UPDATE tbl SET A=1'
doCmd.OpenReport "レポート名"(tblを参照)
On Error Resume Next
if Err.Number <> 0 Then
cn.RollbackTrans
Msgbox "Error"
Exit sub
End if
cn.CommitTrans

本当は、↑の感じになれば嬉しいんだけど、
先にCommitしとかないと、
レポートに反映されないようなので、
エラー時にRollbackするってのができない。

Oracleみたいに、コネクション幾つも繋げれれば可能かなぁ思ってみたり..
Accessド素人でゴメソ..
664名無しさん@そうだ選挙にいこう:03/11/30 03:58
おい、「おまえは、印刷済みフラグをセットしたいんだな!」
と推察し、以下に対処法を述べるぞ (゚Д゚)ゴルァ!!

ローカル接続のプリンタなら電源が切れててもプレビューや印刷は可能であり、
ネットワーク上のプリンタだと確かデバイス情報が取得できない云々でエラーが発生したと思う。
また、用紙切れやジャムったりして実際には正常に印刷できてなかったという事もあり得る。
よって、正常に印刷できたかどうかはユーザに確認を取ってからフラグをセットすると良いよ。
印刷エラーや確認NGの場合は、やり直しに備えてフラグはセットしない。
なお、印刷済みとなっても何らかの条件により再印刷ができると更にグッジョブですな。
なので、処理概要としては以下こんな感じでどぉ?

Dim strMsg As String, numAns As VbMsgBoxResult
On Error Resume Next
DoCmd.OpenReport "(レポート名)", acViewNormal
If Err.Number <> 0 Then
strMsg = "エラー番号: " & Err.Numbe & vbCrLf & Err.Description
strMsg = strMsg & vbCrLf & "プリンタの電源が切れてると思われ・・・(藁"
MsgBox strMsg, vbInformation, "印刷エラー"
Else
' 印刷枚数を表示して、正常に印刷できたかをユーザに確認する
' glngPageCountはPublic宣言し、レポートモジュールでセットしてちょーだい
strMsg = "(レポート名)を" & glngPageCount & "ページ印刷したかも知れません。"
strMsg = strMsg & vbCrLf & "なので、印刷済みにしちゃって良い?"
numAns = MsgBox(strMsg, vbYesNo, "印刷完了の確認")
If numAns = vbYes Then
' 印刷済みフラグのセット



End If
End If
Access2000フォーム上のコントロール類(コマンドボタン、テキストボックスなど)
はWin32API EnumChildWindows関数で子ハンドルの取得ができますか?
デバイスコンテキスト取得してAPIで直接描画処理したい。
VB6.0はコントロールのハンドル取得出来たけどVBAではダメですか?
情報お願いします。
コントロールのハンドルは直接取得できないけど、
フォームやレポートのハンドルならHwndプロパティで分かる。
なので、あとはWin32API関数で何とかなると思うが・・・
667名無しさん@そうだ選挙にいこう:03/12/01 15:06
VBでADOで作成したレコードセットのデータをアクセスのレポートで使用したい
のです。
アクセスでクエリーを作成してやってからレポートを表示してやらないといけな
いんですか?

それとも、わたしは、まったくあさっての方向へいちゃってるんでしょうか?
複数のフィールドを合わせ技で主キーにして使いたいのですが
どのようにすればいいでしょう?
同じ商品に複数の仕入先があり

りんご A社 100円
りんご B社 95円
みかん A社 45円
みかん B社 50円

というようなテーブルで「商品」「仕入先」の組み合わせがダブると
入力できなくしたいのです。
教えて下さい、お願いします。
>>668
「商品」「仕入先」の両方を主キーにする。
670名無しさん@そうだ選挙にいこう:03/12/01 18:01
>>669
レスありがとうございます。
2000を使っているのですがテーブルのデザインでやろうとすると
主キーのマークが移動するだけで両方に設定できません。
方法を教えて下さい。お手間をお掛けしますがよろしくお願いします。
>>670
最初のフィールドをマウスで選択したままドラッグして次のフィールドも選択
でいけますよ。
SHIFTキーを押したまま選択のほうが簡単ですね。
>>666
アリガトウ
帳票フォームで、条件によってテキストボックスの背景色を変更する方法を
模索してたんだけど描画速度が.... 条件付書式の設定値はVBAから弄れる
のかな。
674初心者:03/12/01 23:27
フォームについて質問(アクセス2000)です。

フォーム設定で「データシート」タイプを選んでも、いざそのフォームに入力する段になると、
一画面に一つしかレコードが表示されない形になってしまいますよね。
これを、全体が見えるような状態(要するにテーブルのデータシートビューと同じ画面)で入力
することはできますでしょうか?

フォームなんか作らず、最初からテーブルで入力すりゃいいじゃん、というご意見もあるかと思
いますが、もし方法があれば教えてくださいませんでしょうか。
675名無しさん@そうだ選挙にいこう:03/12/02 00:02
>>673
う〜ん、素直に条件付き書式使っといた方が良いと思う。
そのやり方で高速化できるとは思えないし、標準機能で済むんだから・・・

>>674
設定するとこ間違ってるよ!
フォームのプロパティの[書式]→[既定のビュー]で帳票フォームを選択すれば良い。
[既定のビュー]の初期値は単票フォームになっているのです。
>>674
もし、ビュー設定が出来ていて、フォームオープンボタンを
押したときに開くフォームがデータシートでなく単票(帳票)になっているのであれば、
フォームオープンボタンのイベントプロシジャーのDoCmdのトコロを
DoCmd.OpenForm stDocName, acFormDS, , stLinkCriteria
にすればデータシートでファームが開く。

普通は
DoCmd.OpenForm stDocName, , , stLinkCriteria
になってる。
677667:03/12/02 08:58
『VBプログラマ質問スレ』で聞きます。。。m(_ _)m
678670:03/12/02 09:29
>>671
ありがとうございます。
出来ました。
679名無しさん@そうだ選挙にいこう:03/12/02 10:15
Access2000です、よろしくお願いします。

フォームにテーブルの内容を表示し
例えば表形式で10件表示したとして、そして適当に複数レコード選択(連続ではなく)して
追加ボタン等を押したときに選択されてるレコードを他のテーブルに追加とか
ってAccessのFormで可能でしょうか?

また可能な場合はなんですけど
レコード選択をチェックボックスって事も可能でしょうか?

>>679
チェックボックスでやれば簡単ですね。
連結オブジェクトじゃないと駄目だけど。
682名無しさん@そうだ選挙にいこう:03/12/02 18:16
すみません
どなたかお伺いしたいのですが?
アクセスで在庫管理を作り納品しました。
それを相手先のシステム担当がdbをmysql
にしたのですが、MySQLではテーブル間の参照整合性
が取れないと言われました。実際のところ無理なのでしょうか?
683674:03/12/02 23:43
>675 >676

ありがとうございました。満足する結果を得られました。
本当に感謝いたします。
684名無しさん@そうだ選挙にいこう:03/12/02 23:50
ACCESS2002です
データアクセスページの「グループレベルのプロパティ」の
GroupFilterControlの構文はどのように書けば良いのでしょうか?
つまりグループレベルでレコードソースからフィルタをかけて
表示させたいのですがファイルがhtmlなのでビルドが使えないし
どうにかなりませんか?
>>679
リストボックスでも複数選択が可能だよ!
あと、リストビューコントロールなんかを使えば、見映え良くしたり、
項目のソートや配置替えができたりして便利な時がありまつ。
>>667
亀レスですが、、、
VB側でAccessのオブジェクト制御は可能ですよね?(自分はやった事ないですが…。
この際、Accessオブジェクトを新規作成するのか/既存ファイルをオープンするのかで
VB側でやる事が違って来ると思います。
前者であれば、リンクテーブル(#1)、クエリーやレポートを全て動的に作成しないとダメだろうし、
後者なら、事前にそういう内容のAccessファイルを作っておく必要があるでしょう。
また、別途Accessを起動してレポートの印刷を行うのであれば、後者の類になりますよね。
要するに、ご想像の通りという事です!

#1: テーブルの実体は、他のファイルにあると想定している為、リンクテーブルとしました。
687名無しさん@そうだ選挙にいこう:03/12/03 13:25
質問です。
WinXP & Access2002 です。

アクセスのフォームAからレポートBを呼び出して印刷したいときに
フォームAのコンボボックスCでユーザが選択した値Dをレポートに反映させて
印刷したいのですが、どのような方法でやればよろしいですか?

自分はパブリックな変数Eに値Dを収納して、レポートB上のテキストボックスFに
レポートオープン時に代入しようと思ったのですが、レポート上のテキストボックスに
valueやtextのプロパティが無く、かないませんでした。
>>687
レポートB中の非連結テキストボックスFのコントロールソースに、
=[Forms].[フォームAの名前].[コンボボックスCの名前]

コンボボックスCの連結列以外の値を表示するには、
=[Forms].[フォームAの名前].[コンボボックスCの名前].Column(X)

X: 0から始まる列位置です。


今日、Access2002のバグに数時間はめられたよ。 ヽ(`Д´)ノウワァァン!!
689名無しさん@そうだ選挙にいこう:03/12/04 11:38
アクセス2000です。
個々のオブジェクトを複数選択することはできるのでしょうか?

例えば、複数のテーブルをまとめて削除したり、まとめて隠しファイルにしたり
したいわけです(数が多いと、一つ一つやるのは結構面倒くさいので)
シフトキーやコントロールキーを押しながら選択してもダメということは確認し
ました。

なんか無理っぽい気もしますが、どうかお願い致します。
690688:03/12/04 21:37
>>687
【補足】
レポート中のコントロールに動的に値を設定する方法もあるよ!

レポートのイベントプロシジャーで以下のように記述します。
1) レポート中の[非連結?]テキストボックスの場合
  Me![テキストボックス名].ControlSource = "=""" & 変数名 & """"
2) レポート中のラベルの場合
  Me![ラベル名].Caption = 変数名
変数はとりあえずString型の例
691名無しさん@そうだ選挙にいこう:03/12/05 14:14
簡単なデータベースしか作ったことがないのですが
あるフィールドの型をテキスト型からメモ型にしただけで
mdbのサイズが200KBから900KBに増えてしまいました。
ただ、実際にレコードを登録したり、別のテーブルにも
メモ型のフィールドを追加してもそれほどは増えませんでした。
メモ型を追加した場合、最初に大きくサイズが増えてその後は
データ次第と思って大丈夫でしょうか?
692691:03/12/05 14:18
あ、Access2000使ってます
693691:03/12/05 14:32
もうひとつすみません。
一度2MByteとかに大きくなったmdbの、テーブルそのものを
全て消去してもmdbのサイズが全く変わらないのですが
どうすれば小さくできますでしょうか。
何か大きな間違いをしてるのかな、、、
よろしくお願いします。
694名無しさん@そうだ選挙にいこう:03/12/05 14:57
OS:Win2000
Access:Access97->Access2002

Access97からAccess2002へ変換したのですが、97の場合だと
起動時の設定->アプリケーションタイトルを入力すれば
タイトルバーに表示されたのですが、2002に変換後表示されず
"Microsoft Access"と表示されます。アプリケーションタイトルを
表示することはできないのでしょうか?よろしくお願いします。
695名無しさん@そうだ選挙にいこう:03/12/05 15:12
すいません!私access2000の初心者ですが下記のようなテーブルデータを

品番 仕掛枚数  納期             
A-1 20 1/2
A-2 30 1/5
A-3 20 1/7
A-1 10 1/3
A-2 20 1/10



品番 仕掛枚数  納期   仕掛枚数  納期           
A-1 20 1/2 10 1/3
A-2 30 1/5 20 1/10
A-3 20 1/7
A-1 10 1/3
A-2 20 1/10

と言う感じで重複したデータを横に並べる方法はあるんでしょうか?
知っている方ご回答宜しくお願いします。
m(_ _)m

696名無しさん@そうだ選挙にいこう:03/12/05 15:20
度々すいません。間違ってしまいましたのでもう一度書き込みします。
すいません!私access2000の初心者ですが下記のようなテーブルデータを

品番/仕掛枚数/納期             
A-1 (20) 1/2
A-2 (30) 1/5
A-3 (20) 1/7
A-1 (10) 1/3
A-2 (20) 1/10

品番/仕掛枚数1/納期1/仕掛枚数2/納期2           
A-1 (20) 1/2 (10) 1/3
A-2 (30) 1/5 (20) 1/10
A-3 (20) 1/7
と言う感じで重複したデータを横に並べる方法はあるんでしょうか?
知っている方ご回答宜しくお願いします。
m(_ _)m
>>693
最適化しれみれ
>696
横に並べるのは難しいので、普通に縦に並べる方が良いよ。
>694
「起動時の設定->アプリケーションタイトル」で、できるぞ
700694:03/12/05 18:30
>>699
すみません。記入し忘れたのですが。タイトルバーでも
msgboxで表示した場合なのですが。よろしくお願いします。
701名無しさん@そうだ選挙にいこう:03/12/05 19:51
>>696
クロス集計クエリーを使えば、それ風な事ができますよ!
EXCELで言う所のピボットテーブルと言えば分かるかな?
>>696
このての質問って多いよね。
Access使い第一の壁って感じなのかな。
僕は初めのころ、何もかもクエリだけでやってた。
今はたぶんレコードセット開いちゃうと思うけど。

みっともなくてもダサくてもいいから、クエリだけでやり通す努力しておいても、
たぶん損はないよ。
てか、クエリ使い倒さないままVBAでレコードごちゃごちゃいじくり回す癖つけちゃうと、
何かロクでもないもの作るようになりそうな気がする。
クエリなら一発で済むところ、何十行もコード書いて、100倍も1000倍も遅い処理に
しちゃう、とかね。まあその逆もあるんだけど。
そのあたりの使い分けは慣れてから追々ってことで。
703名無しさん@そうだ選挙にいこう:03/12/06 10:02
>>698,701,702さん色々ご指導ありがとうございました。
参考にしながら頑張ってみます。
また何かありましたら宜しくお願いします。
>>689
>例えば、複数のテーブルをまとめて削除したり、まとめて隠しファイルにしたりしたいわけです

スマンが、一個のテーブルだと、何を「隠しファイルに出来る」のか知りたい。
その「隠しファイル」とやらの効果が想像できないんだけど・・・

何か、便利な機能なの?


只、基本的にAccessのデータテーブルはexcelのシートと違って、
任意のフィールドをセルの様にまとめて操作することは出来ない。

勿論、レコードレベルであれば、連続している場合に限り、まとめ削除位は出来る。


>>691
確かメモ型はテキスト型と比べて定義サイズ(データ入れようが入れまいが確保するサイズ)が
結構大きかった様な・・・
あとは、それ掛けるレコード数なので、テーブルによってサイズは上下するかも。
勿論、定義サイズ以上のデータを入力するとどんどん大きくなるよ。
>>694 >>700
私も同じ経験があります。

確かに97ではMsgBox()の第3引数を明示的に指定しない場合で、かつアプリケーションタイトルを設定してある場合は、自動的にタイトルを設定してくれていました。
が、2000では引用してくれませんでしたので、MsgBox()の第3引数をすべて明示的に指定するようにコードの書換えを行いました。

そのときは標準モジュールに定義したグローバル定数(Public Const 〜)を使いましたが、起動時の設定で設定したタイトルをどうしても動的にMsgBoxタイトルに反映させたいということであれば、GetWindowText()等のAPIを使う方法とかがあると思います。
706名無しさん@そうだ選挙にいこう:03/12/06 13:39
MDEをMDBに変換するソフトがあったらおしえてください。
裏ソフトでもなんでもいいです
707694:03/12/06 15:12
>>705
了解しました。やっぱり直すしかないんですね。 (((´・ω・`)カックン…
有難う御座いました。
708名無しさん@そうだ選挙にいこう:03/12/06 22:35
WINDOWS XP で ACCESS 2002 を使用しています。
OLEオブジェクト型のフィールドに格納されたデータを WINDOWS で関連付けられている
アプリケーションで印刷するにはどうすればいいですか。たとえば EXCEL ワークシート が
格納されている場合は EXCEL の印刷機能で印刷されるようにしたいです。
いちいち、その列を右クリックしてポップアップから「編集」または「開く」を選んで・・・とかいう
やり方は知っているのですが、もっと簡単に、たとえばフォーム上のボタンを1回押せば
印刷までできる、というやり方を知りたいです。
>>706
そんなソフトが簡単に手に入ったら
VectorにMDE公開して、「ソース御希望の場合はレジストしてください」
で生活費の足しにしている奴・・・いや、誰とはいわんが・・・の立場はどうなるんだ
710名無しさん@そうだ選挙にいこう:03/12/06 23:48
やっぱりMDEを変換するそふとってないんですかねー。しょぼーん
711名無しさん@そうだ選挙にいこう:03/12/07 22:28
Windows XP:Access2000 です。

ACCESSのVBAを始めてまもない初心者です。
変な質問かも知れませんが、教えてください。
VBの経験は多少あります。

例えばフォームにtxt住所というテキストボックスを置いて
VBAでその値を変数に取得したい場合

sJusho = txt住所.text

って書いてるんですけど、これを実行しようとすると

実行時エラー:'2185'
コントロールがフォーカスを取得していないときに、コントロールのプロパティまたはメソッド
を参照することはできません。

ってエラーが出てしまいます。

なので

txt住所.SetFocus
sJusho = txt住所.text

ってするとうまくいくんですけど、アクセスのコントロールって
参照や値をセットする場合、いちいちSetFocusしなければいけないんでしょうか?

それともなんか物凄く間違った事をしようとしてるんでしょうか..
SetFocus は不要
.text も不要

sJusho = [txt住所]

でOKなはず

>>711
Textプロパティについてヘルプを参照すればわかると思いますが
その寿命は対象のコントロールにフォーカスが移ってから抜ける
までの間です。

コントロールにフォーカスが移って編集中 -> Textプロパティに値を保持
別のコントロールにフォーカスが移る -> TextプロパティからValueプロパティに値が格納される

よって、フォーカスの抜けたコントロールが保持している値を参照するには
コントロール名.Value または省略してコントロール名だけで済みます。
ゆえに >>712氏の説明が成り立ちます。
714711:03/12/08 00:19
>>712-713
なるほど..そうなんですすね。
基本的にPGではValue、もしくは省略で書くようにしていれば良いんですね。

どうもありがとうございました。
715名無しさん@そうだ選挙にいこう:03/12/08 10:09
Win2000でAccess2000つかってます。
現在、テキストボックスで、フォーカス喪失時に別フォームが開くようにしてるんですが、
フォームを閉じた時にも、イベントが発生して別フォームが開いてしまいます。
ウィンドウが閉じたときには別フォームが開かないようにする方法はあるのでしょうか?
716名無しさん@そうだ選挙にいこう:03/12/08 10:53
Access2000を使っています。
チェックボックス(トグルボタンでもいいです)の値を0と-1ではなく
0と1で使い分けたいのですが可能でしょうか?
可能であれば方法を教えて下さい。よろしくお願いします。
717名無しさん@そうだ選挙にいこう:03/12/08 11:32
winXPでAccess2000を使っています。
任意のテーブルの特定のフィールドから、重複を除いたリストを得るには
どんなSQL文を書けばよいでしょうか。
718名無しさん@そうだ選挙にいこう:03/12/08 13:10
>>717
SELECT DISTINCT 特定のフィールド FROM 任意のテーブル
>>715
何かフラグ用の変数かテキストボックス用意してさ
たとえばそれが1のときだけイベントが発生するようにしてさ
フォームを閉じるさいは真っ先にそれをゼロにする、とか。

他にもやり方はありそうな気がする。
720あきくせす:03/12/08 13:57
アクセス2000です。
あるフィールド群の中で、大きい方から第〇番目の数値を返す、という
方法は可能でしょうか?
Max関数みたいなのがあると一番よいのですが、なさげなので。
どうかお願いいたします。
721720:03/12/08 14:06
上の質問者ですが、エクセルでいうLarge関数みたいなのを求めています。
>>720
クエリで降順に並べて、それをレコードセットとして開いて
「○番目」までMoveNextして・・・

みたいなダッセー方法しか思いつかないけど、待ってればそのうち
俺より頭のいいやつがもっとカコイイ方法を提示してくれそうな気がする

関数で出来るなら俺も知りたい
723717:03/12/08 16:03
>>718
ありがとうございました
>>720
関数で、ならヘルプで「定義域集計関数」を検索するよろし。
あと、SQLでTOP述語を利用する方がスマートかも。

SELECT TOP 5 フィールド名 FROM テーブル名
で、5番目までのフィールドが抽出される。
725722:03/12/08 18:30
>>725
なるほど
クエリでトップ○○出して、DMinとやれば○○番目の値が取れる。
このほうが(・∀・)カコイイ!

って、そもそもの質問者は俺じゃないわけだが。。。
ここまで来て最後にDMin使うのか? ( ゚д゚)ポカーン
仕上げは、MoveLastで逝こうよ!
トップテソとかだったら、あんまり効果ないけど・・・
727722=755:03/12/08 23:02
>>726
おっしゃるとおーり、だわ

つうより、スレ違いに面倒な問題が起こってしまった。
仕事用の個人ユースノートPC(何のウイルス対策もしてないやつ Win2K)、
夕方ちょっとネットにつないで遊んでたの。
(何のこたーねえ、>>725の書き込みしたときだ)
でもって、夜、職場のPCにデータ移そうとしたのよ。
その作業するときはケーブルつなぐ前に、いつも念のためファイルのチェック
するんだけど、system32中に何か身におぼえのない新規ファイルがあったの。
enbiei.exe って名前の。
何となく嫌〜な予感がしたんで、いま自宅のPCでネット検索したら、
なんだよ、やっぱりウイルスかよ
職場のPCにつながくてよかった〜
何をしでかすウイルスなのか、ちょっと調べてきます。
728722=755:03/12/09 00:16
すれ違いにもほどがあるけど(ほぼ)解決しました
無償ツールもらってきて。
ホントにこれが効くのかどうかまずは実験。
Enbiei.exe を自宅のPC上にコピーし、あえて実行、感染。
regeditで、たしかに感染していることを確認
(けっこうドキドキ、regeditなんて年に1回ぐらいしか使わねーもん)
次に無償クリーニングツールを実行。
ログを確認
Virus found count(1), Virus clean count(1), Clean failed count(0)
レジストリからも消えていることを確認。
ざまーみろ。
明日職場で同じことをやればいいわけだ。

調べたら、大した悪さをしでかすウイルスじゃなかったみたいね。

すれ違いすれ汚しごめんなさ
フォーカス喪失時やフォーカス喪失後の時点では、
仕様により次のフォーカスが何処なのかを検知できません!

なので、やり方としては、逆の発想が必要です。
つまり、フォーカス取得時に、直前のフォーカスが何処であったかを判定し、
処理を振り分ければ上手く逝くと言う訳です。 (`・ω・´) シャキーン

なお、そのまま素直にコーディングしても目的はほぼ達成できますが、
マウスクリックによるフォーカス移動を行うと、後で呼び出し元のフォームで
フォーカスが見た目消失すると言う若干の問題が発生するようです。

よって、以下にちょっとしたテクニックを紹介しておきましょう・・・
タイマーイベントを使うので、既に使用中の場合は適当に書き変えてちょ。
730729(つづき):03/12/09 00:57
[フォームA]中の[テキストA]から[ボタンA]以外のコントロールに
フォーカスが移った場合に[フォームB]を開く例

' フォームAのイベントプロシジャー
Private Sub Form_Timer()
  Me.TimerInterval = 0
  On Error GoTo Err_Form_Timer
  If Screen.PreviousControl.Name = "テキストA" Then
    DoCmd.OpenForm "フォームB"
  End If
Err_Form_Timer:
End Sub

' これもフォームAのイベントプロシジャー
' テキストAとボタンAを除く他の全てのコントロール
' のフォーカス取得時イベントでタイマーをセットする。
' ここでは、便宜上、[他のコントロール]としていますが、
' 必要な分だけ適切な名前で定義しないとだめですよん。
Private Sub 他のコントロール_Enter()
  Me.TimerInterval = 1
End Sub
731トチッタ729:03/12/09 01:02
>>716
オプショングループにオプションボタンをぶっこんじゃえー!
733名無しさん@そうだ選挙にいこう:03/12/09 23:32
>>715
情報が少なくて絶対という訳ではないけれども、おそらくGUIが悪いと思う。

通常使いやすくて理解しやすいGUIを構成すると、テキストボックスから抜けたら
その内容を変更したかどうかを問わずに常に別画面が開くなんて画面にはなり
得ないような気がするけど。
734名無しさん@そうだ選挙にいこう:03/12/10 09:19
こんにちは。
仕事でAccessを使っていますが、まだ初心者です。
環境はaccess2000(os:win98)です。
オフコン機でソートしている処理を、Accessでやることに
しようと思っているんですが、オフコンとaccessでは文字コードが
違う為、オフコンでは英文字→数字の順で並び替えられるのに、
accessでは数字→英文字の順になってしまいます。
何とかオフコンと同じように、英文字→数字の順にソートできないものでしょうか?
(access97では、ツール→オプション→全般→並び順に欧米標準とやると
できる、というのは調べられたのですが、2000ではワカンネ、と書いてありまして・・・)

よろしくお願いします。
>>715 ありがとうございます。その方法しかないかなと思ってたんです。
>>731 なるほど!次のフォーカスに移ったときにイベント発生させればいいわけですか。

>>733 んと、テキストボックスに数値(コード)を入れて、フォーカス喪失時に、
    コードがマスタにあれば内容を表示させて、
    マスタになければ、マスタへの登録画面を起動させようとしてたんです。
>>735
そういうことなら

コード入力用のテキストボックスを、コンボボックスにすれば、
「リスト外入力時」というイベントの発生のさせ方もあるわけだが

いや、あまり方法の選択肢を提示しすぎると混乱する恐れもあるので、
これは読まなかったことにしてくれてもいいが
確かに初心者君は用途も書いといた方が良いね!
>>734
そこまで調べたんなら、後はやってみればいいのでわ?
自分は違うやり方でやってますが、、、
739733:03/12/10 23:57
>>735
そんなことだろうとは思っていたけど、やっぱりか。
それなら、テキストボックスのchangeイベントで十分。
フォーカス消失時とか状態管理用の変数とか一切不要。
740733:03/12/11 00:00
ポイントはテキストボックスの値が変更されていない場合には
何もする必要がないということ。
だからchangeイベント使うだけでいい。
漏れが733で「その内容を変更したかどうかを問わずに常に〜」
と念を押したのはそういうこと。
初期値が気になる?
それはフォームのオープン時のイベントで行うとすっきりするよ。
change なのか?
アフターアップデイトではなく?
changeだと、文字数字書き足すたびにイベント発生にならなかったっけ
それより何より俺は眠いので寝るが
734です。
>>738さん
お返事ありがとうございます。そう、そこまで調べられて、Access2000でも
並び順にいろいろ入れてみたり、本を見たり、Webを検索したり、イルカちゃん
に聞いてみたりしたのですが、行き詰まってしまいました・・・
初心者で、調べ方が悪いという事もあるのでしょうが。
WIN2000で環境でACCESS2000を使用しています。
問い合わせ業務のデーターベースを作り、
問い合わせには発行番号が振ってあり、フィールドに発行番号の他、
支店番号、担当者等を入力しています。
後日発行番号をキーに選択クエリを使用して必要なフィールドのみを
抽出しています。抽出した結果を改ざんされないようにロックをかける事は
出来ないのでしょうか?
クエリのプロパティにある”レコードロック”かと思って色々設定直しましたが
だめでした。
回答お願いいたします
>>742
>欧米標準の並び順でできる
と何処かにあったのなら、その方法は試したの?

自分は、ASCIIコードをEBICIDICコードに変換する関数を自作したよ。。。
>>743
フォームやクエリのレコードセットをスナップショットに設定すればOK!
>>745
出来ました!
ありがとうございました!
747733:03/12/12 00:07
>>741
直前までExcelVBA弄ってたので間違えちった。仰ると〜り。
734=742です。
>>744
「欧米標準の並び順でできる」のはAccess97で、Access2000では、
並び順に「欧米標準」が出てきません。替わりに「全般」で試してみれば?と
いうのが調べられたので、試してみましたが、ダメでした・・・
「全般」というからには、Windows自体の言語設定を変えれば反映されるかも
とも思ったのですが、さすがにそれをやってしまうと、恐ろしい事になりそうで
出来ません。

>ASCIIコードをEBICIDICコードに変換する関数を自作
最後はソレですよね・・・
お返事、どうもありがとうございました。
>>739-741
ありがとうございます。
アフターアップデートで期待通りの動作でした。
Accessでお客さんからくる問い合わせのデータベースを作成しております。
入力する際に入力日を入れる必要があるのでフィールドに入力日というのを
作成して式ビルダを使用し入力した日を自動的に入れています。
今はyy/mm/dd(03/12/13)と入るのですがこれを連続した数字(031213)
と入れるにはどうしたらよいでしょうか?
教えてください
format([Hiduke],"yymmdd")
>>751
ありがとうございました。やってみます。
Accessのバージョンも書かかないのに教えていただき
ほんとうにありがとうございました
753名無しさん@そうだ選挙にいこう:03/12/14 20:21
会社でAccess2002を使用しています。
会社とマイクロソフト間のボリューム契約により、Officeを自宅でも使用できることになり申し込みをしようと思っています。
今回入手できるのはOffice XP(2002)とOffice2003のどちらかを選択しなければなりません。出来れば最新のものを使いたいのですが・・・
Access2002と2003のバージョン間の互換性ってどんなものでしょうか?
Access2002で作成したファイルを2003で変更-保存した場合、そのファイルは2002では利用できますか?また、Access2003で作成したファイルを2002で利用できるように保存できますか?

仕事を家に持って帰りたくないのですが、そうも言ってられませので・・・
よろしくお願いいたします。
最近になって2002を使い始めたんだが
サブフォームへのリンクが事あるごとにブチ切れて困っている
こんなんじゃ使えねぇーーー!
しかも次の2003が出てるっちゅーのに未だに対策もせず放置状態かよ
2002は糞の予感がしてあまり使う気になれない
正直返品させて欲しいよ
755名無しさん@そうだ選挙にいこう:03/12/15 09:57
>>753

2000という選択はないの?

2002でも2003でもない2000を使っているが、
SR-1をあてれば問題なし、安定してます。
>755
もはや市場ではAccess2000は手に入らないよ
既にAccess2000を自分が持っているならイザ知らず、
誰かが持っているものを不正コピーさせてもらうとかしかない
Access2000を持っていたにしても、会社のAccess2002を
バージョンダウンできるかどうか…疑問だ
Access2000で質問させてください〜
フォームにユニコード文字(UTF-8?)を入力させないように
したいんですが、どやったら出来るのでしょうか?
オペレーターがShift-JIS範囲外の漢字を
手書きパッドで探して入力するんで困っています。
お助け〜
StrConv(StrConv(あれ, vbFromUnicode), vbUnicode)
>>756
           ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄
           ( ´Д` ) < 通報しますた
          /,  /   \_______
         (ぃ9  |
          /    /、
         /   ∧_二つ
         /   /
        /    \       ((( )))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄
       /  /~\ \     ( ´Д` ) < 通報しますた
       /  /   >  )     (ぃ9  )  \_______
     / ノ    / /    /    ∧つ
    / /   .  / ./     /    \     (゚д゚) シマスタ
    / ./     ( ヽ、     / /⌒> )     ゚(  )−
   (  _)      \__つ  (_)  \_つ     / >
>>753
仕事で使うなら職場のPCと同じバージョンにすべきじゃないの?
家に持ち帰ってまでした仕事で「自分のPCでは上手く動くが、
会社に持っていくとダメ」なんて事になったら目も当てられんでしょ。

互換に関しては、「データ移植」以上は期待しないほうが良い。
プログラム部分も2003側のコンバート機能で対応出来るが、
片方にしかない機能や仕様変更部分はもとより、同じ機能でも
期待した動作がその通りにならないという事もある。
#極端なところ、ボタン押してもフォーム開かないとか経験ある。
 しかも、同じ機能を持たせたボタンの一個だけとかだからよく分からない。

同じファイルを会社と家で何度もコンバートし続けられるかも、という考えは
捨てたほうが良い。
質問です。
テーブルにて、1から100までの数字がランダムにレコードに
書かれているとします。その数字を元に、
コンボボックスを用いた検索用のフォームを作りたいのです。
その際コンボボックスの項目をそれぞれ、
「1〜10」「11〜20」「21〜30」・・・・・としたいのですが、
やり方がわかりません。教えて下さい。
>>761
Between 1 and 10
>>761
Int(([ランダムな数値]-1)/10)
764名無しさん@そうだ選挙にいこう:03/12/19 12:00
すいません教えて下さい。
フォームで編集中に一旦レコードを保存するVBAコードって「Me.Recordset.Update」じゃダメなんですか?
それだと一旦保存してるような動作はするのですが、最終的にフォームを閉じる時にエラーになってしまいます。
ちなみにアクセスのWizardで保存ボタンを作ると以下のようなコードを作ります。
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
DoCmd.Save
あちこちでDoCmdはなるべく使うなと書いてるのでDoCmd以外でしたいのですがいい方法はありますか?
なぜ途中で保存するかというとSelStartを使ってカーソルを移動させたいのですが一旦保存しないと上手く動作しません。
環境はAc2002のadpプロジェクト、WinXP、MSDEです。
76545:03/12/19 14:16
レポートでグラフを作ったのですが、
縦軸の表示がなぜか「指数表示」になってしまいます。
パーセンテージで表示したいのに・・

どうすればよいか教えていただければ幸いです。
アクセス2000です。
>>764
Updateの前でMe.Recordset.Editをコールしてる?
それでもダメなら、RunCommand acCmdSaveRecordで出来るとおもう。。。
>>760
Access2002の場合は,既定のファイル形式がAccess2000形式だし,多分Access2003でも
同じと思うのですが,その場合でAccess2000で使えないんでしょうか。
768名無しさん@そうだ選挙にいこう:03/12/21 04:42
すみません皆さんのお知恵を拝借したく質問させてください

Access97で作成したアプリが大量にあるのですが、MDBファイルの破損問題からそろそろ抜け出したく、今後作るアプリに関してはセンターにSQL Serverを使ったADPによる開発を考えております
既存のアプリの方はあまり改造せずに、ADPだけを使用したいのですが、既存アプリをAccess97→2002に変換したり、互換モードで動作させてみましたが、結構エラーがでてしまって、いろいろ改造が必要なようです
どうにかMDBはAccess97のままで、ADPだけインストールさせるような手立ては無いものでしょうか?
またそれが無理な場合に、皆さんはどのように既存のアプリと共存させていますでしょうか?
(やはり手間を惜しまずAccess97→2002の変換が必要でしょうか?)

よろしくお願いいたします
769名無しさん@そうだ選挙にいこう:03/12/21 19:46
アクセスがほしいのですが、オフィスを持っている人は
安いほうで買っても大丈夫でしょうか?
アクセスは一番高いのとバージョンアップ版があって
ほかに、オフィスがある人用って、あった気がするんですが
どれを買えばいいのでしょうか?

オフィス2003でエクセルとかワードがインスコされているPCなんですが・・。
770名無しさん@そうだ選挙にいこう:03/12/21 22:08
>753です。
色々ご教授下さった皆様ありがとうございます。

>755氏へ
会社が結んだ契約によれば、下位バージョンを使用する事は出来ないそうです。
今回の場合Officeが切り替え時期だったので2002と2003が選択できるようです。
将来会社が2004にバージョンアップした場合は、私たちも2003を破棄して
新バージョンにしなければならないようです。

>760氏へ
やっぱり新しいものを使いたいと言う気持ちが・・・

>767氏へ
ご指摘の通りのようです。
2003で加わった機能以外?は互換性があるそうです。
771名無しさん@そうだ選挙にいこう:03/12/22 01:38
windows xp access2000 です、よろしくお願いします。

EXCELのVBAで使う画面の更新を止めておくという命令って
Accessではどう書くんでしょうか?
Excelは確か
Application.ScreenUpdating=False
とかだったと思うんですが、Accessの場合を調べてるんですけど
わからなくて...
772名無しさん@そうだ選挙にいこう:03/12/24 01:41
>>771
Application.Echo False
773名無しさん@そうだ選挙にいこう:03/12/24 02:02
ACCESSって仕事以外につかえますか?
>>773
そもそも個人用で使う為のソフトです。
フォームに計算式入れたいんですが
印刷するとき2レコード目から計算してくれていません
どうしたらいいでしょうか
>>775
入れるところが違うんじゃないか
>>775
もっと詳しく具体的に
778775:03/12/24 14:42
purivate subのどこでやればいいんでしょうか
レコード移動時では画面上では計算してくれるのですが
印刷時に数件をまとめて印刷すると
最初のレコードの値を繰り返してるだけなんです
779ひづけ:03/12/24 15:35
フォーム上のテキストボックスで日付を入力してます。
フォームを開いた時、"03/12/| "(←「|」はカーソル)のように、
デフォルトで当年当月を表示させる方法は無いでしょうか。

今はプロパティで定型入力を"99\/99\/99;0"としてあります。
・Win2000SP3 & Access2000です。

・『購入履歴テーブル』のデータをもとに、
個別の商品ごとの売上を月別で集計しています。(集計クエリで)

◆購入履歴テーブルのフィールド名
ID 発送年月日 商品名 数量


で、ある商品が1ヶ月に1個も売れないという事が出てきます。

 たとえば11月にその商品が1個も売れてない場合、
クエリを実行すると、こんな感じになります。

年月 数量
03/12 2
03/10 3
03/09 2

 これを下のように表示させるにはどうすればいいのでしょうか?

年月 数量
03/12 2
03/11 0 ←ここ
03/10 3
03/09 2
781名無しさん@そうだ選挙にいこう :03/12/24 18:15
>>778
テキストボックスのコントロールソースに計算式を書けば?

>>779
これ↓をテキストボックスの「DefaultValue/既定値」プロパティに書く。
=Format$(Date(),"yy/mm")
>>780
泥臭いですが、同じ問題をこんな方法で解決したことあります。

1)文字型フィールド(サイズ:5)1つのテーブルを用意する。
2)そのテーブルに集計範囲の年/月をレコードとして登録する。
 ※例:03/01, 03/02, 03/03....03/12
3)そのテーブルと現在の集計クエリを外部結合する。
 結合の方向は年月ワーク→集計クエリ
 結果のフィールドは年月ワークの年月と集計クエリの数量。
 数量はNz関数を使ってNullの場合0とする。

集計時期が変わる毎に2)で中身を替える必要があります。
783名無しさん@そうだ選挙にいこう:03/12/24 22:26
【OS】Windows2000
【Access ver.】2002xp
資格のための質問でもよいですか?
主キーについて教えて下さい。
1対多、多対多、1対1のそれぞれの
リレーションシップにおける主キーの設定なのですが、
1対多の場合だけ主キーがあるのでしょうか?
主キーと外部キーがどのデーブルにあるのかわかりません。
宜しくお願いします。
784783:03/12/24 22:29
誤)【Access ver.】2002xp
正)【Access ver.】2002officexp
785778:03/12/24 23:52
>>781
コントロールソースできるとのことですが
なんとかコードで作れないでしょうか
一緒に貼り付けてるslider controlも
同じ状態なので
>>785
計算結果を表示するテキストボックスが非連結じゃないの?
787785:03/12/25 11:07
サンクス
解決しました

フォームはデータを持ってないんでしたね
5年ぶりにやってるんで基本的なこと忘れてました
>783
一般的なデータベースの本を1冊読んでみることをお勧めします
主キー、外部キー、正規化はデータベースの基本です

テーブル中の1レコードを一意的に決めることができる項目を主キー
他のテーブルを参照する時のキーを外部キー
簡単かつ乱暴に言うとこんな意味になるので、1データベース内に
1つしか主キー、外部キーを持てないわけではない。
789783:03/12/25 16:28
>>788 ありがとうございました。
試験が終わったら読んでみます。
下のヤツもっと簡単に出来ませんか
LoopとかForNextとかで

If IsNull(Me!A) Then
B.Value = ""
Else
If A.Value < 4 Then
B.Value = "×"
Else
If A.Value < 5 Then
B.Value = "△"
Else
If A.Value >= 5 Then
B.Value = "○"
End If以下略
>>790
マスタテーブル作ってJOINするのがいい。
>>790
Switch文で1ステートメントにするか、Select Caseで構造化するのが筋なんじゃ
>>790
コントロールAの値を評価するのが目的ならば
繰り返し文を使う意味が考えにくいんですが。
あえてステートメント変えるならこう?

Select Case Me!A.Value
 Case Is < 4
  B.Value = "×"
 Case Is < 5
  B.Value = "△"
 Case Is >= 5
  B.Value = "○"
 Case Else
  B.Value = ""
End Select
794779:03/12/25 20:57
>>779
>これ↓をテキストボックスの「DefaultValue/既定値」プロパティに書く。
>=Format$(Date(),"yy/mm")

ありがとうございます、やってみます。
795790:03/12/25 23:28
>>791-793
感謝です
これで今年も気持ちよく終われそう
質問させてください。

フォームのテキストボックスに、語句を入力して検索する場合はそのクエリの抽出条件に、
 Like "*" & [Forms]![検索フォームの名前]![txt名前] & "*"
と設定しますよね?

同じ様に、データが数値型で、テキストボックスに入力した数値より上のデータを
出力する場合は抽出条件になんと書けばいいのですか?
> [Forms]![検索フォームの名前]![txt名前]
798名無しさん@そうだ選挙にいこう:03/12/26 13:27
Access バージョン関係なしの事だと思うんですが、
定型入力で例えば、
「9999\/99\/99」
と設定するのと、
「9999/99/99」
と設定するのとは、具体的に何か違いがあるのでしょうか?
どちらでもいいのでしょうか?
定型入力ウィザードでも、円マークがついてるものと、
付いてないものがあるので、気になっています。
よろしくお願いいたします。
そこでの「\」の役割をヘルプ読んで勉強汁
800798:03/12/26 14:08
>>799
いやいや、\の役割はリテラル文字として扱うためというのは存じております。
でも、付けなくても結果が一緒なのです。
何故でしょう。ご存知でしょうか?
コントロールパネルの地域のオプションを色々いじったら結果が変わるよ。
802796:03/12/26 23:25
>>797 レスさんくす。

これを使って複合的な検索フォーム作ってるんですが、
空欄にしたところは無視して、入力された項目のみで
検索するにはどうすれば良いですか?
>>802
VBAで最適なSQL文を動的に作って、サブフォームのレコードソースに設定すれば良い。
804796:03/12/27 04:17
>>803
VBAは苦手なんですが、これを使わないと出来ませんかね?
win98でAccess2000を使用しています。

クエリを作成したいんですが

テーブルは、以下のようなものです。
フィールドが1.2.3とあり、それぞれのフィールドには
・リンゴ
・ミカン
・バナナ
のいずれかが入ります。
このテーブルから、いずれかのフィールドに「ミカン」が
入っているレコードだけを抜き出すクエリを作製したいんですが
どうすればよいでしょうか。
・ミカン・ミカン・リンゴ
・ミカン・ミカン・ミカン
・ミカン・リンゴ・バナナ
などは含めますが、
・リンゴ・バナナ・バナナなどは含めないということです。
>>805
SELECT フィールド1, フィールド2, フィールド3
FROM テーブル
WHERE (フィールド1='ミカン') OR (フィールド2='ミカン') OR (フィールド3='ミカン')
SELECT フィールド1, フィールド2, フィールド3
FROM テーブル
WHERE 'ミカン' IN (フィールド1, フィールド2, フィールド3)
>>805
よーするにクエリのデザイングリッドにある抽出条件の
「または」を使えばいいっつーこと。
フィールド1の1行目、フィールド2の2行目、フィールド3の3行目
にミカンを入れる(つまり斜めになる)。
今、VB(フロントエンド)+Access2000でスタンドアロン業務用の
ちょっとしたツールを作っています。

これまでExcel VBAでぼっこぼこ作られていた20種類くらいの
計算、レポート印刷のソフト!?を一つにまとめ上げ、なおかつ
それらを流用して、お客様訪問時のカルテのようなソフトをつくり
込むというものです。

いわゆるパーソナルデータベースなのですが、事務所の営業の
方全員が使う、且つAccessを使わずにmdbファイルに蓄積させて
ゆくため、MSDE経由で書き込みをさせています。

そこでなのですが、単純な計算だけを行うアプリと商品管理のよ
うないわゆるマスター達は1つのmdbにテーブルを格納したほうが
よいのでしょうか?それとも、分けてそれぞれをMSDEでjoinしたほ
うがよいのでしょうか?>
>>809
MSDE経由でmdbというのがよくわからないのですが…
MSDEのテーブルってSQLServer互換の.MDFファイルに格納されるのでは?
(ODBCやADOでmdbに接続するのならわかりますが)

>>810

SQL互換のMSDEとAccessを使っているのですが、(Access
利用者もいるため)これを

VB→Data Environmentオブジェクト→Access
するに当たって

1.AccessをやめてもらいMSDE一本化する(現在はMSDEから
さらにAccessにデータを流しているため

2.Accessに一本化する

3.利用範囲を決めて一部をMSDE、一部を直接Accessに流す

といった選択肢を経た上で、パフォーマンスとメンテを考慮しようと
した際に3で妥協しました。

その上でAccessに流す際にMSDEをメインDB、AccessをサブDB
とするのか?それともこの際だから一度Accessに全て格納してし
まってから逆にMSDEのほうへ流すか、特定のテーブル群ごとに
mdbに格納してから流すのか なのです

言葉足らず申し訳ない。ちょっとへんてこなソフトウェアゆえ。

P.S.
Accessは営業用のアプリでVBを入り口にJet4.0、MDAC2.8で使う
ようになっています。商品マスタなどをMSDEから流してもらってい
ます
すみません初心者です。
自宅でアクセス2000を使ってますが会社ではアクセス97です。
自宅の2000でデータベースを作って会社の97で開けません。
2000で97でも開けるようにするにはどうしたらいいのでしょうか?
327 名前:NAME IS NULL メール:sage 投稿日:03/12/27 20:40 ID:???
Access2000では、Access97形式を…… _| ̄|○ ヒドイメニアッタ

328 名前:NAME IS NULL メール:sage 投稿日:03/12/27 23:54 ID:???
>>327
それはいうな。 

329 名前:NAME IS NULL メール:yyy 投稿日:03/12/28 08:52 ID:???
>>326 変換無しにいじれますか、安心しました。
>>327 そう、いつの間にかファイル形式が変わってたりしましたよね?
1レコードを1枚の用紙に印刷したいんですが
ヘッダーにあるタイトルが2レコード目から
消えてしまいます。どうしたらよいでしょうか
>>814
タイトル部分を「ページヘッダー」に入れるか、
「グループヘッダー」の場合はプロパティの「セクション繰り返し」を「はい」
816814:03/12/29 11:39
即レス感謝です
できました
817名無しさん@そうだ選挙にいこう:03/12/30 23:57
>>812
自宅に97をインスコール
818名無しさん@そうだ選挙にいこう:03/12/30 23:59
>>811
SQL鯖(MSDE)に一本化しる!
819名無しさん@そうだ選挙にいこう:04/01/02 10:02
>>812
テーブルと本体を分割し97形式のデータのみ移動すれば桶
97形式のmdbは、テーブルデータのみなら2000で問題なく読み書
き使用可能だ。
>>819
つまり、フロントエンドと格納MDB両方にわけて

格納MDBを97、フロントエンドを2000で作って会社で使うってことか
821名無しさん@そうだ選挙にいこう:04/01/02 10:28
>>820
つーことだ
漏れは、97/2000形式両方をネット上で配布しているが
それで不具合が起きたことはないな。
822名無しさん@そうだ選挙にいこう:04/01/02 19:04
OS=winXP
access2000を使用しています。

レポートを出力するときに
文字数によってフォントサイズを変化させることはできますか?

つまり一定数以上の文字列があれば、
フォントサイズを小さくし、すべてが表示されるようにしたいのです。

どうかよろしくお願いします。
まず、自分がどこまでヘルプなりユーザサイトなりで
調べて、どれぐらいの目星をつけてて
どんなことをやってみたのかを出せって。
>>822
まずは「印刷時拡張−はい」で何が不満なのか書け!
話はそれからだ!
825:04/01/05 21:28
こういうテーブルを作りました。

オートナンバー   企業名
   1        NEC
   2        東芝
   3        松下
   4        SONY

これを元に下記の様なフォームを作りました。

企業:[テキストボックス]企業名:[テキストボックス]

企業bノオートナンバーの数字を入れるだけで、
自動的に右側に企業名が表示させることが出来るVBAを
どなたか教えてくれませんか?

っていうか昔使ってたんだけど、ど忘れしてしまったー。
確かとてもシンプルなVBAだったんだけどなー。
826:04/01/05 21:30
↑OSはWindows2000、アクセス2000です。
>>826
ちなみにそれ、VBA使わなくても実現できます
>827

VBAと関数がごっちゃになっているんでしょ


>825
それはともかく、Dlookupで求めることができるよ。
場合によっては再クエリも必要だろうけど。
>>825
企業NOをコンボボックスにすればVBAもDlookupも再クエリもいらない。
企業名テキストボックスのデータコントロールソースに企業NOの
column指定で充分だ!
>>829
だから、VBAなんかつかわなくても出来るって言ったのに........
831名無しさん@そうだ選挙にいこう:04/01/07 12:01
アクセス97で、mdbファイルが開けなくなってしまいました。
ツールからの修復もできないと言われています。
新規のmdbにインポートしようとしても、mdbファイルが壊れてるかmdbファイルじゃないと
言われてインポートもできませんでした。
jetcomp.exeなるものを使用しようとしたんですが、使用方法がイマイチわかりません。
使い方のわかる方アドバイスお願いします。
832名無しさん@そうだ選挙にいこう:04/01/08 00:26
>>831
ダウンロードしたWebの説明ミロ。

それから、Access2000か2002持ってるならそれで開いてみると
助かるケースもあるよ。データだけそうやって救って、バックアップ
してあるだろうAccess97形式のmdbのテーブルに突っ込みなよ。

まあ、完膚なきまでに壊れてることも多々あるけどね。
ついさっきまで20MBあった複数人で使用中のmdbが
突然200B程度になってたり(w
833名無しさん@そうだ選挙にいこう:04/01/08 11:34
>>832 英語よめません。。
Accessの上位バージョン持ってないので。。誰か探すか...
834名無しさん@そうだ選挙にいこう:04/01/10 00:19
>>833
MSの日本語ページある。探せ。
835名無しさん@そうだ選挙にいこう:04/01/10 17:02
ACCESSで100万件〜1000万件のテーブルって扱えるんでしょうか?
自分はまだ10万件未満のデータ蓄積なんですけど、実際使っておられる
セミプロの方はどうでしょうか。クエリーさくさく動きますか?
>>835
普通に考えてダメだろ。
何のため、SQL-Server なんてものがあるのか考えた方がいいと思うよ。
とりあえず、http://www.microsoft.com/japan/msdn/dataaccess/msde/msdeforvs.asp#msdeforvs_topic8
ぐらいは見てから考えたらどうかと。

> セミプロの方はどうでしょうか。
(俺は、違うけど...) プロの方もいると思うけど。
837名無しさん@そうだ選挙にいこう:04/01/10 22:40
>>836
普通に100万件程度Access-JET-mdbで使ってるが?
どう普通に考えるとダメになるんだ?
>>837
「〜1000万件」って書いてあるのが見えてないヴァカがきたよ...。
839名無しさん@そうだ選挙にいこう:04/01/10 23:57
>>838
テストでは伝票明細1000万件ぐらいまで扱っているが、
まぁ問題はないな。
もっともデータは待避するようにしているから、実際には
100万件程度でした実際の稼働の経験はないがな。
それに、扱うデータにもよる。件数だけでは、何ともいえんが、

だから、どう普通に考えるとダメになるんだ?
くだらん煽りの前に、客観的根拠を示せ。
>>839
どんなテストをやってんだか。(藁

マジでやってると言うなら、1000万件入っているテーブルの仕様と、.mdb ファイルのサイズと最適化にかかる時間を晒してみな。
>>836
あのー なにを普通に考えて100万件テーブルがだめなのか
とりあえず理論的に言ってみてくれないかなぁ?

少なくとも、現行では十分な速度で動いているし、最近のマシン
のオーバースペックからすれば、余裕すらある。

そもそもSQL Serverとはベクトルが違うのだが その辺のことを
わかっているんか?
842名無しさん@そうだ選挙にいこう:04/01/11 01:11
>>840
基本的には最適化は考慮していない。
漏れの作成した物は、各店舗の集計データの検索抽出だからな。
インデックスさえきちんとしていれば問題なく実行可能だ。
だいたい、データにもよると明記したはずだが?

よくんでおくように。

まず質問の前に漏れの聞いたことをきちんと答えろ。

「だから、どう普通に考えるとダメになるんだ?
くだらん煽りの前に、客観的根拠を示せ。 」
>>840
ちなみにさ、mdbの最適化なんてのは、業務終了後にでもかければいいだけの
話なので

というよりも最適化などというものを持ち出す前に、理論的に説明しろよ。
あらかじめいっておくが、MDBで重要なのは、レコード数でもなんでもない。

リアルタイムでどれだけのトランザクションを処理するか?なのであって、そこは
について語られる前に最適化などというものを持ち出すのは、データベースを語
る資格がないな
で、>>840 の回答はどうなったんだ ?
845もう寝るよ。:04/01/11 01:43
まじめな話し、1000万件入れて運用してみ。
俺が尋ねていることの意味がわかるから。
まあ、よっほど単純なテーブルとか検索しかしないとか言うなら話は別だがな。
846名無しさん@そうだ選挙にいこう:04/01/11 01:47
>>840>>845
結局、論理的には答えられん糞厨ごときが
でたらめ書きにイチイチでてくるなよ。
だから、実際にやってみな。
どうなるか、わかるからさ。

ちなみに、100万件の奴でいいから、テーブル仕様と .mdb のファイルサイズを書いてみてくれ。
848名無しさん@そうだ選挙にいこう:04/01/11 02:20
>>847
糞厨のあがきか、みっともない。さっさと帰れよ
じゃなければ、

ま ず 理 論 的 に 説 明 し ろ。
まぁ、ファイルサイズくらいサックリ書けよ。
以下のような検索用のテーブルを作りたいのですが、うまくいきません

A地点、B地点の二つの起点があり そこから行き先(選択枝)が全部で
30ほどあります。A地点、B地点からそれぞれの行き先までの料金は
異なり、

フォーム上でA、Bどちらかを選択して、行き先を選択すると料金がはじき
だされるようにしたいです。
その時のテーブル構成を教えてほしいのです。

この部品を受注明細(すでに稼働中)につなぎ、計算結果にその料金を
加算したいのです。現在は一覧を表示させて手動で料金を見て入れさせて
います
「起点〜行先,○○円」という構成のテーブルでなにか問題あるの?

入力時はその情報をソースにコンボボックスでリスト表示させればいいだけだが。
>>848
ぷぷっ、やっぱりファイルサイズすら気にせずにやってるんだな...。

どうせ、1000万件のテストとか言っても、.mdb にぶっこんで検索できてはい OK だろ ?
(それすら怪しいが...。)

まあ、>>835 がどんなテーブルをどういう風に使おうとしてるのか知らんけど、「普通に考えて」 .mdb 薦める奴は、アフォだろ。

ある特定条件で、いろいろ検討して、テストをやって .mdb でもいけると言うことはあるかもしれないけどな。

あと、「理論的に」とかごちゃごちゃ言ってるけど、「理論的に考えて OK なら、全て大丈夫」と言うならこんな楽な商売も無いと言うことに気づけ。
853名無しさん@そうだ選挙にいこう:04/01/11 10:34
>>852
何も答えられず、でたらめ書いて、アホっぷり全開だな、糞厨。

おまえは、mdbを分割することすらしたことがないようだな。
基地外厨が騒ぐ場所じゃないぞここは。
>>853
ププッ、必死で調べたんだね。
(つーか、>>836 の URL 読めばすぐにわかると思うけどな。)

どれぐらい面倒なことか、運用すればわかるよ。

で、100万件の .mdb は分割してるの ?
1000万件のテストではどうやったの ?

各々の、.mdb のサイズを教えてくれよ。
855名無しさん@そうだ選挙にいこう:04/01/11 10:53
>>854
糞厨の煽りか、

>ACCESSで100万件〜1000万件のテーブルって扱えるんでしょうか?

>普通に考えてダメだろ。

>普通に100万件程度Access-JET-mdbで使ってるが?
>どう普通に考えるとダメになるんだ?

ま ず こ れ に 答 え ろ 糞 厨
856μ:04/01/11 11:27
>>835
共有ドライブにおいて複数人で同時に共有して使用するか、
ローカルドライブにおいて単独で使用するかで大きく事情は異なるよ。

共有ドライブにおく場合には、パフォーマンスや破損の可能性などを考慮すると
実運用上はテーブル行数50万行、mdbファイルサイズ50MBを超えるようなら
古いデータを別mdbに切り出す等して上記基準未満になるようにすべきだと思う。

ローカルドライブで単独で使用する場合の限界値は共有ドライブに置く場合の
10倍くらいかな。
>>851
つまり、

行き先テーブル
ID | 起点 | 行き先 | 料金

料金テーブル
ID | 料金

とした時に、リレーションシップとして、
行き先テーブルの料金 → 料金テーブルの料金

とし、行き先テーブルをフォームとしたときに、コンボボックス
を2回選択すると、料金テーブルに登録された料金が自動で
でてくるというわけですね?
>>855
だから、やってみればわかるよ。

なんでダメなのかって ?

そんなことは知らんよ、MS に聞いてくれ。

とにかくやってみてダメだっただけの話だよ。
もちろん、テーブル仕様に依存するけど、結構単純な奴でも大体 >>856 が言うので合ってると思うよ。

そういう (.mdb を使う上の) 常識も知らんで、吼えてるだけだろ ? (ぷぷぷ

>>857
なんで料金テーブルなんか必要なんだ ?
>>858
クエリーで選択させるため。また距離による料金策定ではなくて、
取り決めで、2つの港から輸送先までの料金が決められているの
で、あとで行き先を追加するときに、便利だと思った


料金パターンは10ほど
だけど、A-Bの組み合わせは 始点が2つ 終点がそれぞれに同じ
数同じ場所で30ほど

2-30の関係にある。
クエリーを行うのに、確かに一つのテーブルだけをつくって全てを
含め、AとBを選んだ時の料金をクエリー実行で算出するというのは
いいのだけれど、あとで追加編集するときに

料金をひとつひとつ直すのは面倒だと思ったからです。
晴海 - 渋谷 \4000
晴海 - 横浜 \4000
木場 - 新宿 \4000

なら、テーブルをひとつつくっておくほうが、あとで料金更新の時に
楽です。

>>859
???

> 晴海 - 渋谷 \4000
> 晴海 - 横浜 \4000
> 木場 - 新宿 \4000

これらが「常に」同じ金額だろうから、一つにまとめたいと言うことか ?

だったら、行き先テーブルの料金なんて要らないと思う。

行き先テーブル
起点 | 行き先 | 料金パターン

料金テーブル
料金パターン | 料金

として、料金パターンでリレーションすればいいと思うよ。
>>858
試しにつくりあげたものをアップしてみます。
あとは、クエリにフォームを付けて、始点と終点を選ぶと

テキストボックスに料金がでるようにするだけなのですが......

このあと、別の受注明細DBにこれをつなげて、
受注明細フォームにこのクエリのフォームを統合して、
トータルの料金明細を作る予定です。

http://tool-ya.ddo.jp/2ch/trash-box/contents.jsp?file=20040111164054004.zip
>>861
始点、終点なんてテーブルほんとに必要なのか ?
高々数10個しかないんだから、地名かなんかをそのまま入れてもいいと思うよ。
地名なんかの変更は楽かも知れんが、A-B の組合せを追加する時に大変だし。
ちょっと、正規化にこだわりすぎな気がする。
>>862
あ、それは気にしないでください。VBで皮を作るときに使う物です。
additemでやると面倒くさいので、便宜的に分けただけです。

Rowsourceに当てるためのテーブルです。

あとは、クエリなのですが、2つ目を選んだ段階で金額がすぱっと
導くにはどうしたらいいのか、まだ躓いています。
>>863
いま VB 手元に無いから試せないんだけど、RowSource ってクエリの結果を指定できなかったっけ ?

> 2つ目を選んだ段階で金額がすぱっと導くには

SELECT 料金表.料金
FROM 料金表 INNER JOIN (終点 INNER JOIN (始点 INNER JOIN 行き先テーブル ON 始点.起点ID = 行き先テーブル.起点) ON 終点.終点ID = 行き先テーブル.終点) ON 料金表.料金ID = 行き先テーブル.料金
WHERE (((始点.起点名)="aaa") AND ((終点.終点名)="bbb"));
865名無しさん@そうだ選挙にいこう:04/01/11 21:51
ACCESS少しだけ勉強中です。会社の人がVBは要らない、マクロだけで十分とか
言ってるんですがその人「神」って言われてる割にはVB実は知らなさそうなんです。
僕はその人のことちょっと疑ってるんです・・・結構その人の作ったデータベースはトラブル多いし
発注システムのデーターベースなんですけど発注したのに入っていなかったとかよくあるんです。
何かあるとさわるなと言って怒られます。会社からはシステム担当者だから結構給料もいいみたい。
ほかにパソコンにあまり詳しい人がいないから威張ってるように思うんです。
この板で難しいこと書いてる人こそ本当の「神」でウチの会社のシステム担当者の代わりやって下さい
って言いたいぐらいなんです。何もわからないことをいいことになめられっぱなしです。
いいアドバイスありませんか?
>865
・・・・・・・
>>865
> 何もわからないことをいいことになめられっぱなしです。

2ch なんか見てないで、勉強しろよ。
868865:04/01/11 22:20
確かに勉強不足だ。だけどシステム担当者はパソコンがわからない女子社員を
指導という名目の元にイチャイチャできる特権が・・・許せん。
「許せん。」なんて言ってても仕方ないだろ。
お前も、がんばって勉強してそいつを蹴落とせばイチャイチャできるぞ。
勉強のモチベーションが保てていいじゃん。
870& ◆.HvmQZGRLk :04/01/11 22:29
????? ???. ?? ? ???
871名無しさん@そうだ選挙にいこう:04/01/12 13:25
入力したデータなどを利用者側でバックアップできるような方法を考えています。
例えばフォーム上にボタンを作って、ボタンひとつでバックアップがとれるような機能です。
ですが一体どういう手法でバックアップをとればいいのか、いい方法が浮かびません。
みなさん、バックアップはどうしていますか?
>>865
不覚にもワロタ
>>871
ADOを使う
>>871
小さいmdbなら丸ごと別の場所にコピー。
大きければテーブルのエクスポート。
手動で試してみなきゃ自動化はできない。

>>865
同じ意見の人と連帯して、「その人」の直属の上司に言う。
「トラブル」の証拠になる帳票かなんかをつける。

または「その人」が作ったデータベースのテーブル構造やマクロを分析して、
より優れた代替案を提示する。
875851:04/01/12 16:30
>>861

料金表利用と料金表修正の頻度から考えると、何故使用時の利便(>>851はワンアクション、
キミの案は2アクション)より、料金値修正の手間を重んじるのかが良くワカラン。
#というか、>>857>>859が修正の手間の軽減にも見えないのだけど。
晴海 - 渋谷 \4000
晴海 - 横浜 \4000
木場 - 新宿 \4000
が、一斉に5000円に変更されることなんか無いと思うのだけど。


それ以前に、>>861は「場所〜場所」が「幾ら」なのか決定させる要素が
「行き先テーブル」フォームみたいだけど、それを利用するフォームが無いんじゃないの?

もし、利用フォームが「行き先テーブル」フォームだというなら、料金を規定する場所がないし・・・


どうしても、そのテーブルを使いたいなら、
1.データ入力用のテーブルにフィールドをつくる。
2.そのテーブルをレコードソースにしたフォームを作る。
3.その中にテキストボックスを2個作る。両方とも1.のフィールドをコントロールソースにする。
4.一個のテキストボックスをコンボボックスにして、値集合ソースに以下を張り付け。
  列数=3、列幅=0cm;2cm;2cm

SELECT [料金表].[料金], [始点].[起点名], [終点].[終点名] FROM 料金表 INNER JOIN
(終点 INNER JOIN (始点 INNER JOIN 行き先テーブル ON [始点].[起点ID]=
[行き先テーブル].[起点]) ON [終点].[終点ID]=[行き先テーブル].[終点]) ON
[料金表].[料金ID]=[行き先テーブル].[料金];

コンボボックスには選択時に起点終点が、テキストボックスには料金が出るはず。
コレくらいしか思いつかん。
>>875
> が、一斉に5000円に変更されることなんか無いと思うのだけど。

>>859 料金パターンは10ほど

(つーか、>>860 も読んでないのか ?)
877名無しさん@そうだ選挙にいこう:04/01/12 22:07
帳票フォームのフォームヘッダーにコンボボックスを作り
(コンボのリストは別テーブルに用意)
そのコンボボックスで選択された値を同じ帳票フォームの
詳細のコントロールソースであるテーブルの特定フィールドの
すべてのレコードに一気に入力を反映させたいんだが
どうすればいいんだ?おせーてけろ!

------------------フォームヘッダー------------------
  コンボボックス:リストで選択された値=12345だとすると
-----------------------詳細-----------------------
レコードが5行だとして

テキストボックス:表示される値=12345
テキストボックス:表示される値=12345
テキストボックス:表示される値=12345
テキストボックス:表示される値=12345
テキストボックス:表示される値=12345 

と、表示されて
かつ、
コントロールソースであるテーブルのフィールドにも

フィールド:入力されている値=12345
フィールド:入力されている値=12345
フィールド:入力されている値=12345
フィールド:入力されている値=12345
フィールド:入力されている値=12345

としたいのさ!
878名無しさん@そうだ選挙にいこう:04/01/12 22:20
>>877
なんでそんなことしたいのか想像もつかないけど・・・。

afterupdateイベントでupdate [テーブル名] set [フィールド名]=Me![コンボ名]
とかいったSQLをexecしてやればいいだけだろ。
879865:04/01/12 23:49
ちょっとわかった。俺んとこの馬鹿担当者は全部アクションクエリーを使っている。
だけれどこれってレコード数が多いとモッサリするんだよな。
本読んでたら1レコードづつ処理する方がサックリ動くようだ。エラー分岐もやはり
VBしかできないみたいだし・・・化けの皮をはぐように頑張ります。

880名無しさん@そうだ選挙にいこう:04/01/13 00:55
>>879
逆だ。
普通は、こねくり回して作ったアクションクエリは別として
アクションクエリとゆうか、SQL一撃で処理した方が高速だ。
説明する気にもならんが、、、
881851:04/01/13 04:25
>>876
だから、その「10パターンの修正が常に同じか?」ということをいってんの。
>>859で、
 晴海 - 渋谷 \4000
 晴海 - 横浜 \4000
 木場 - 新宿 \4000
の「テーブルを作った方が更新時に楽」と書いてるだろ?
何が楽なのかワカランのよ。

料金が個別に変わるなら、結局行き先テーブルの料金を一回修正するという点
において、>>851の料金一回修正と手間はかわらん。
もし「楽」に修正する事が出来るというなら、それは上記が一斉に変更がかかるとき、
料金パターンの料金を修正する事で、全ての料金パターンの料金が変更される時くらいだろ?

だから、「【一斉に】変更されること何かあるのか?」と書いてるんだよ。
これは個別にフィールドを割り振ってる「始点」「終点」もそうなんだけど。
もし、「ある」という回答ならそれはそれでいいの。オレは納得するんだから。
只、一般的に聞いたことがないから疑問に思っただけ。
#今まで「新宿」に送ってたものは今後全て「池袋」へ、なんてそうそうないだろうし。
 それに、もし「池袋」が既に存在していたら個別修正がやっぱり必要だしな。

つーか、>>860のテーブル構築は特に異論がないが、オレの投稿に何の関係がある?
キミのフォローはオレの投稿の疑問点の解消に何の役にもなってないよ。
>>871
とりあえず、データ格納専用のmdbとフォーム等実行環境用のmdbを分けて
作成しておけば、単純にバックアップ用ボタン押す>データmdbをコピー
で済む。
あとは、好みに応じて圧縮するとか使用されていないかのチェックとか
細々とした事柄を付け加える。
883名無しさん@そうだ選挙にいこう:04/01/13 12:05
>878
> afterupdateイベントでupdate [テーブル名] set [フィールド名]=Me![コンボ名]
> とかいったSQLをexecしてやればいいだけだろ。

データ保存用テーブルに保存する際に
請求年 請求月 というフィールドを作って(現在の日付ではなく)
年月で抽出するために1レコードごとに請求年 請求月を
入力したいがためこんなことをやってるのさ。

なんか他に良い案もってるですか?
884名無しさん@そうだ選挙にいこう:04/01/13 20:43
 助けてください!!
 いま、ACCESS2002を使っているんですが、マウスホイールを回しても
レコードが移動しないようにしたいと思ってます。
 2002はプロパティにMouseWheelってのがあるからできるっていう
話なんですけど、いったいどうすればよいのでしょうか?
 たしかに、MouseWheelってのは見つけたけど、TrueとかFalseとか入
れても何か違うみたいだし、ヘルプの説明もなんだかよくわかんない。
 だれか、おしえてぇ!!
>>884
移動ボタンを消す
>>881
何勝手に切れてんのかよくわからんけど、あんたの言ってることは >>860 で既出なだけのことだよ。

いまさら蒸し返してもしょうがないだろ。
>>886
VBで、findプロパティをwithで囲ったら、見事望みのものができました。
ありがとうございました。助かりました。

http://tool-ya.ddo.jp/2ch/trash-box/contents.jsp?file=20040113224739226.bmp
889865:04/01/14 00:22
>880 高速!これって重要な要素ですよね。SQLでつか・・・
   クエリー変換すると構文になりますけどSQLもきっちり
   覚えといたほうがいいんですか?あるいは必須知識なんですかね。
890 ◆x.e.K1vy1c :04/01/14 00:43
以下のようなテーブルを、番号ごとに利益を足したいです。
どのようにSQLを書けば良いでしょうか?

テーブル名 main

番号 売上 経費 利益
001 856 600 256
001 500 120 380
002 900 400 500
002 750 150 600
SELECT 番号, sum(利益) FROM main GROUP BY 番号
892名無しさん@そうだ選挙にいこう:04/01/14 08:43
WindowsXP ACCESS 2000
タックシール印刷で印刷しない枚数の設定で悩んでおります。
ttp://www.akj.co.jp/aug/qa/ans0001-0050/0460.html
上記のサイトのやりかたでは、プレビューを介さずに印刷する際は正常に印刷
されますが、プレビューを行った際に、印刷しない枚数が正常に反映されている
にも関わらず、そこから印刷した場合に、印刷しない枚数設定が反映されて
おらず、一枚目から印刷されてしまいます。プリンタが複数台あるので、
プレビューから印刷できたほうが都合が良いので、困っております。

何卒よろしくお願いします。
フォーム上でデータの変更したいんだけど
マクロでデータモード編集で開いても変更できません
読み取り専用で開いてるみたい
これって直せますか?
>>893
フォームのレコードソースが更新不可能なクエリになっているとか?
895893:04/01/14 15:15
>>894
レコードソースが更新不可能なクエリになっているとか?

更新不可能なクエリなんでしょうか、それとも
クエリはそもそもフォームで
更新できないということでしょうか
896初心者:04/01/14 16:16
初歩的な質問なんですがテーブル上に計算式って出せますか?
クエリでは普通にできるんですが、
あまりクエリは使いたくないものでお願いします
897 ◆x.e.K1vy1c :04/01/14 16:55
>>891
 ありがとうございましたうまくいきました。
>>896
お前はACCESSをやめてEXCELを使え。
>>895
1テーブルのみで構成されたクエリを作って、それを
ソースにするフォームを作ればわかるはず。

更新不可能なのはクエリか、フォームの設定のせい。

>>896
「テーブル上に計算式を出す」の意味ワカラネ.
関数を列にしたいってこったろ。
余計意味わかんね。
902 ◆XXY091biCc :04/01/14 22:51
2種類のコマンドボタンを作りたいのですが・・・。
1つ(Aとします)は、特定のレコードを選択してクリックすると、今日の日付と2週間後の日付が別々のフィールドに表示されるように。
もう1つはクリックすると、Aによって表示された日付を消すっていうものにしたいんですが・・・。

おねがいします。
>>902
それ別にデータベース使わんでもできるとも思うけど...。
釣りか ?
904 ◆XXY091biCc :04/01/14 23:44
なんかうちの学校の情報の教師がやれって。。。
簡単ならばぜひお願いしたいのですが。
905名無しさん@そうだ選挙にいこう:04/01/15 11:19
ACCESSを共有環境で使用しております。レコード情報に追加、変更を加えた際に
ログをとることは可能でしょうか?
906893:04/01/15 17:02
>>899
やっとできました
ありがとうございました
907名無しさん@そうだ選挙にいこう:04/01/15 17:03
加納です
ご教授ください。
カンマ区切りのテキストファイルの一定の項目を抽出したいのですが、
このファイル内の項目数が300ある場合はどのような方法をとればよいのでしょうか?
実際に抽出したい項目は10程度です。
この作業は頻繁に発生し自分以外の人がその作業を行うためコマンドメニューにて
インポート、抽出出力と出来るようにしたいのですが。
最初は単純にインポートボタンを配置し、ファイルを丸ごと用意しておいたテーブルに取り込み
選択クエリを開くを仕込んだボタンを配置しておけば良いのかなと考えていたのですが、
フィールド数255以下のテーブルしか作れないみたいで、悩んでいます。

どなたかよろしくお願いいたします。
909 ◆XXY091biCc :04/01/15 20:29
釣りじゃないんです。マジで・・・。
教えてください・・・。
910名無しさん@そうだ選挙にいこう:04/01/15 23:12
>>908
テキストファイルをインポートしようとすると
テキストインポートウィザードのダイアログボックスが開くので
そこで設定ボタンを押してインポート定義の画面にして
フィールドの情報のスキップ欄でインポートしないものにチェックを入れる
これを保存しておけば次回も使える。

>>909
学校で習うべきことじゃないの?
Private Sub コマンド3_Click()
テキスト1 = Date
テキスト2 = Date+14
End If
Private Sub コマンド4_Click()
テキスト1 = Null
テキスト2 = Null
End If

911名無しさん@そうだ選挙にいこう:04/01/16 10:44
データベース分割ウィザードを利用しmdbを分割しました。
分割した後に、リレーションシップを設定しようとしましたが、
どうしても参照整合性を利用できません。(分割したデータのみのdbでは設定ができます)
リンクテーブルに対してのリレーションシップでの制限か何かでしょうか?
テストでリレーション設定をした、dbを分割ウィザードを使って分割したのですが
こちらはうまくいっております。

ACCESS 2002です
912911:04/01/16 11:15
データのみdbでリレーション設定後にリンクテーブルを更新したらいけました。
913911:04/01/16 11:16
>>905

これを詳しく説明してくれているページ、または
書籍など知っている人いたら教えてください。
誰かさ、質問するときのテンプレ作ってくんない?
せめて検索した結果どうだったとか、ヘルプではどうだった、
自分でやってみたらどこがどううまく行かなかった、っていうテンプレが
ないと、いちいち「調べたのか」とか「実はそれはもう試したんですけど」
みたいなアホやりとりが延々終わらない
※テンプレ。こんな感じで如何かと(内容は見本)

【 件名 】 急いでいます!お願いします!
【Windows】 Me
【 Access 】 2000
【 ヘルプ 】 一応見た
【サイト検索】 Googleで少しだけ

トランザクションを使いたいのですが、ヘルプ等の説明では使い方がよく分かりません。
急いでいるので、誰か簡単に使い方を教えていただければ助かります!
というネタはともかく、他板のスレでいいのあったから参考までに貼っとくわ

http://pc2.2ch.net/test/read.cgi/software/1073664639/
917名無しさん@そうだ選挙にいこう:04/01/16 18:59
ヘルプでもググルでも5分もあれば見つかるような事を書き込んで
くるようなやつがほとんどだからテソプレなんか無意味。
918 ◆XXY091biCc :04/01/16 20:00
>>910氏、ありがとうございました。
学校の教師が、「自分でやり方を見つけろ」っっていうダメ教師なもので・・・。
>>918
おまえはさしずめ駄目生徒ってわけだ。
教師が可哀想
920908:04/01/16 20:47
>910
試してみましたがテキストインポートウィザードのなかでも、
255フィールド分しか反映されないみたいで、上手く出来ませんでした。
結局テキストファイルを1レコード毎読み込み、欲しい項目だけを
出力ファイルに吐き出すというベタな方法で解決させました。
即レスいただいて感謝です。
921908:04/01/16 20:49
訂正
結局テキストファイルを1レコード毎読み込み、欲しい項目だけを
出力ファイルに吐き出すというルーチンを作るというベタな方法で解決させました。
数値の変動でフォント色を
変更したいんだけどできるかな?

0以下は赤、10以上は青
みたいなの
>>922
条件付き書式じゃダメなのか?
924922:04/01/19 11:06
>>923
そんなのあったんだ
サンクス
助かりました
925名無しさん@そうだ選挙にいこう:04/01/19 11:57
【 件名 】 ValueとValue$
【Windows】 2k
【 Access 】 2k
【 ヘルプ 】 該当が見あたらず
【サイト検索】 Googleでは見つからず

VBAのコード中に[コントロール名].value$という項目を見かけて
もしや文字型か? と思ったんですがそういうのが見あたりませんでした
value$って文字型のvalueだと思って良いんでしょうか?
926>>925:04/01/19 13:39
変数名の最後に$を付けたら文字列として扱うんじゃなかったっけ?
Strcnv の代わりというか。。。

違ってたらスマソ
>>926氏の説明で概ね合っています。扱いは"型宣言文字"ですが。

ヘルプをキーワードで引いてもヒットしないので、ヘルプで確認するには
Visual Basic ランゲージリファレンスの データ型 の各項目を参照すると
わかります。
928925:04/01/19 19:33
>>926-927
MSDNライブラリ VBドキュメントの"型文字"にてヒットしました
ありがとうございました
929名無しさん@そうだ選挙にいこう:04/01/20 14:25
すみませんが、教えてください Win98 Access97使用です
2つのテーブルがあります
名前テーブル
[名前]
A
B
C
D
E

科目テーブル
[名前][科目]
A   国語
A   理科
B   社会
B   国語
C   算数
C   英語
D   社会
E   算数
E   理科
2つのテーブルは[名前]で、1対多で繋がっています
これを・・・
[名前][科目1][科目2]
A   国語  理科
B   社会  国語
C   算数  英語
D   社会
E   算数  理科
こんな感じに出来るのでしょうか?
お願いします
930929:04/01/20 14:29
>>929のようなことをしろと言われて、困っております
Excel的発想の注文なんですけど・・・
やっぱり、変ですよねぇ。出来ないよ〜と言っても
聞いてくれないんです(´Д⊂グスン
科目テーブルに[順番]みたいな項目を作って、
[名前][順番][科目]
A     1  国語
A     2  理科
B     1  社会
B     2  国語

のようなデータにしたら、クロス集計クエリーを使えば
[名前][ 1 ][ 2 ]
A   国語 理科
B   社会 国語

とできますが....
932929:04/01/20 15:36
>>931
即レス感謝です。わかりました。印字の関係のみで
こんなことしないといけないとは・・・トホホ
[順番]はどうやって付けるのが最善でしょうか?
フォームで入力の度に数字を自動入力か、まとめて採番?でしょうか?
どっちにしても、いい方法思いつかないです。゚(゚´Д`゚)゚。

もともと、頼んできた人は、excelっぽく
[名前][科目1][科目2]のテーブルを作るのが普通
と言っています・・・厨房DBになりますよね?
こんなことしたら、科目が増えるたびに横へ・・・・増え続けるし、そもそも
科目ごとの集計も出来なくなると思うんですが・・・
933929:04/01/20 15:40
あと、書き忘れですが、クロスは、してみました
実際には
[名前][科目コード][科目]
と言った形で、
[名前][科目コード(1)][科目コード(2)][科目コード(3)]・・・・
A   国語                 理科
B   国語       社会
といった感じには出来たのですが、納得して貰えませんでした・゚・(ノД`)

>>933
そりゃもうVB組むしかねえな
935名無しさん@そうだ選挙にいこう:04/01/20 16:29
個人でWebショップを開いていて、サイト上の買い物カゴから送られてくる
定型注文メールを取り込み、顧客管理をしたいと思うのですが
そのようなテンプレはありますでしょうか?使用しているAccessのバージョンは2002です。
メールはOutlookで受信しています。
その「Webショップ」は何をしているんだ?
どうやって「定型注文メール」を送ってるんだ?
937名無しさん@そうだ選挙にいこう:04/01/20 16:49
>>936
CGIのsendmailを使ってメールで注文が送られてくるのです。
メールの本文には
商品:
個数:
氏名:
住所:
電話番号:
てな感じで書かれてます。
実際、このような定型メールを取り込んで顧客登録・管理をするテンプレはあったのですが
シェアウェアの上に必要のない機能が多く付いてるので、フリーで必要情報だけ登録できる
テンプレはないかなと思った次第です。
>937
ウェブショップだろ?
何千円かの費用で手間を買えるんだから素直に買え!
>>938
またお前か!
氏ねよ
>>935
Outlook/Access の VBA でやるのがいちばん簡単かと...。

Outlook NewMail イベントで、メール受信時に内容解析して .mdb に追加すればいいと思う。
アクセス(データベース)嫌いの上司を説得するにはどうすればいいですか。
すべてエクセル2000で作れと言われます。
>>941
CVSエクスポートして、そのクソ虫にだけそれを渡す。
>>941
無視しちゃえ!
自分がわからないからEXCEL
奥さんからお金もらえないからEXCEL
自分の情報はあげたくないが人の情報はほしいからEXCEL
って思考の人がいるのも事実。

アクセス買ってというなら予算とかあるかもしれんが、
アクセス入っているなら仕事やりやすいほうがイイ!
>>941
そのダメ上司にエクセルヒューマンへ行くように言え
っていうか、表計算とデータベースの仕様区別もつかないようなバカは
ほっておけ。典型的な板挟みで追いつめられている中間管理職だから。

そういう区別の付かないバカはね。
ExcelとAceessを比較できている時点で>>941も同類な罠
実は、>>941の仕事がAccessの必要性が欠片もない表作成だけだったりして・・・
941の業務内容が分からない以上、上司が正しい可能性もある。

上司のAccess嫌いというのも、941の主観の可能性もあるし。
「分からないから判断付かないので不許可」とかなら分かるが、
「嫌いだから不許可」ってどういうポリシー?

取り敢えず、941の文だけでは、
購入の説得か、情報管理手段変更の説得なのかもワカランよ。

前者なら、業務に対してexcelとAccessで仕様比較して
便利さを文書(口頭)ででも説明すればいいし、
後者なら、実際に作って便利さを見せつければいい。
948名無しさん@そうだ選挙にいこう:04/01/21 07:56
書式で25:36:15.731と表示させ、計算も出来るようにするには
どうしたらいいですか?
エクセルからインポートしたデータがテキストになってしまうんですが。
>>948
それって時間計算?角度計算?
950929:04/01/21 15:11
>>934さん
>>929です。>>931さんに教えてもらった方法で解決してみました

↓採番用クエリ(Q)↓
SELECT T.名前, T.科目ID, T.点数, DCount("*","T","科目ID<=" & [科目ID] & " and 名前='" & [名前] & "'") AS 連番
FROM T
ORDER BY T.名前, T.科目ID;

↓並べ替えクエリ↓
SELECT Q.名前,
First((select 科目 from Q as A where A.名前=Q.名前 and A.連番=1)) AS 科目1,
First((select 科目 from Q as A where A.名前=Q.名前 and A.連番=2)) AS 科目2
FROM Q
GROUP BY Q.名前;
これによって>>929のような結果を得ることが出来ました
ありがとうございました
951941:04/01/21 23:13
>>942
発注者から渡されたネイティブデータがCSVなんですが。
>>943
無視しちゃえ!
自分がわからないからACCESS
奥さんからお金もらえないからACCESS
自分の情報はあげたくないが人の情報はほしいからACCESS
って思考の人がいるのも事実。

エクセル買ってというなら予算とかあるかもしれんが、
エクセル入っているなら仕事やりやすいほうがイイ!

>>945
誰がデータベースに絡む仕事だといったの?ソース希望。
>>944
なぜ駄目上司だと言い切るのですか?アクセスが嫌いだとしか
言ってませんが。アクセス嫌いはみんな駄目人間ですか、ほー。
ためになりますなー。

ストアドプロシージャってどうやって使うの?
>>951
マターリしようよ、そろそろ長寿板になるんだし。
んなこと言わずに、さっ。
この次は、「その10」ですよ。
くれぐれも、>>1を読んでね
さぁ、総合相談いってみよー
いやぁ、いいこと言った。そろそろ次スレですねぇ。
>>951>>941
自分の無能さを「釣る」という行為で正当化する様はみっともないな。
本当は無能さを論われて悔しかっただけなんでしょ?

一段落:CVSで渡されたデータをAccessで管理して相手に出すときだけCVSで渡すという方法が
     ない訳ではない。DB化出来るデータなら思いつかないキミが無能だし、出来ないデータなら
     Access導入したい考えるキミが無能。
二段落:反論になってないな。多分反論になってないことにすら気付いてないんだろうな。
三段落:誰がデータベースに絡まない仕事だと言ったの?ソース希望。
四段落:DBが必要な仕事で導入しない理由が「Accessが嫌い」ってのはダメな上司だろ?
     ついでに、必要なDBを導入する説得が出来ないキミもダメだろ?
     DBが必要ない仕事で導入しない理由が「Accessが嫌い」ってのは職務内容とDBの必要性の
     関連が全く分かってないんだからやっぱりダメな上司だろ?
     ついでに、必要のないDBを導入したがってるキミもダメだろ?
     で、Access嫌いが「駄目人間」とは誰が言ったのかソースキボンしとこう。
     まぁ、キミの存在がためにならない事だけはわかるなぁ。

オレはキミを馬鹿にするが「釣れ」て良かったね。おめでとう。
CVS
( ´,_ゝ`)プッ
956名無しさん@そうだ選挙にいこう:04/01/22 17:10
こんびにえんすすとぁのことだろう(w
957名無しさん@そうだ選挙にいこう:04/01/22 19:37
しかも2回ともって事は素で知らないんだろうねぇ。

CVSで渡されたデータをAccessで管理して相手に出すときだけCVSで渡すという方法が
ない訳ではない。

マジ!?実例あげろや。
Comma Separated Values なのか Concurrent Versions System なのか
はっきりさせて欲しいものです。

959948:04/01/23 01:02
>949
お返事ありがとうございます。
時間計算です。
>>955-958
typo にしか突っ込めないのか...。
961名無しさん@そうだ選挙にいこう:04/01/24 00:09
あれだけ短い文章であんなにも単純な間違いを「typoでした」で済ま
せられるなんて、いい会社にお勤めですな。
ああごめん、プータとヴァカには用はないから、もう来ないでね。
963名無しさん@そうだ選挙にいこう:04/01/24 17:04
AccessのVBAでPDFをページ指定で開く方法ってありますか?

普通にPDFファイルを開くだけならAPIのShellExecuteできるんですが...
PDFファイル名の後に何か引数付ければページ指定可能とか
無いんですかねえ...

よろしくお願いします。
CVS?
>>963
それはacrobat側が用意してるインタフェース次第だろ
adobeのサイトに行けばドキュメント転がってるんじゃないか?
966超初心者:04/01/26 11:23
ODBCデータベースをインポートするマクロって・・・
ないですよね。
ありますが、何か?
968名無しさん@そうだ選挙にいこう:04/01/26 13:12
教えて・・・
教えてよ・・・




もうおじさん泣いちゃうぞ・・・
969質問用テンプレ:04/01/26 18:23
>>968
【.  目 的  】 何がしたいのか必ず記入。)
【.  条 件  】 (使用OS、ACCESSのバージョン など)
■試したけどうまくいかなかった処理
【. 概  要  】 (どんな処理を試したかを説明)
【駄目な理由】 (動作状況など)
■これだけはやりました
>>1を読んだ】 はい・いいえ (読まない人が多いので必ず目を通してください)
【Googleで調べた】 はい・いいえ (大概の疑問は検索することで解決します)
【検索キーワードは?】 (全て列挙してください)
970超初心者:04/01/26 18:45
【目 的】 サーバのデータ(SQLサーバー)をインポートして
アクセスで得意先別売り上げ帳票とか作ってます。手作業では、
できるのですが、これをアクセスを全く知らない社員にやってもらいたい
と思ってます。ただ手作業(編集からインポートを選んで・・・)を
アクセスを知らない人にさせると間違ってリンクを張ってしまいそうなので、
それではメニュー画面を作って誰でもできるようにしたいと思ったのですが・・・
ODBCデーターベースをインポートする時に使うマクロってなんだろと思った次第です。
【条 件】 (使用OS、WIN2000;ACCESS2000です)
■試したけどうまくいかなかった処理
アクセスの解説書のマクロを読んだんですが、書いてませんでした。
■これだけはやりました
>>1を読んだ】 はい
【Googleで調べた】 はい (大概の疑問は検索することで解決します)
【検索キーワードは?】 アクセス・マクロ・ODBC
>970
[データベースの変換]というアクションで目的が達成できます。

 SQLサーバのODBCドライバがインストールされていれば、
サーバDBからテーブル、ビューをACCESSのテーブルとして
インポートすることができます。逆にエクスポートする場合も、
このアクションを使います。
 アクションに与える引数はヘルプに書いてありますが、
マクロ作成の画面で引数を埋めていけばサックリ作れます。

がんばってください。
972超初心者:04/01/27 08:53
>>971
ありがとうございます。
やってみましたが、ISAMドライバがないという
メッセージがでてしまいましたが、
なんとか自分で解決してみたいと思います。
>957 亀レス スマソ
CVSで渡されたデータをAccessで管理して
相手に出すときだけCVSで渡すという方法が
ない訳ではない。

相手に渡すことはまずないが、業務上の他の人から貰うデータがcsvなので
これを自分のmdbにインポートし、データ上の処理を施して管理してる。
必要があれば、擬似的に貰った時とほぼ同じcsvにして吐き出すように
作ってあるけど…
そう言う意味ならできるよ
974973:04/01/27 15:57
↑あああ…
よく見れば

CSV

ではなく

CVS

ではないか…

逝って来ます…二度と来ません…ごめんなさい
975質問用テンプレ:04/01/27 19:18
>955
>956
DBMSにインポートするデータはCSVで渡すに決まっているが。
>>954の降臨を期待してここ数日ROMってるがかえってこないね。
近年まれに見る模範的Office厨だったのに残念だ。
>>972
このテのDBMSソフトはサーバー側にサーバーアプリケーション、
クライアント側にクライアントアプリケーションをインストール
して使うんじゃなかろうか。
クライアント側にSQLサーバーのクライアントアプリケーションを
インストールするとODBCドライバがインストールされるのじゃないかな?

と、SQLサーバー持ってないので脳内レス。
979名無しさん@そうだ選挙にいこう:04/01/27 23:08
>>978
これ確か、単にマクロの引数を間違っているだけのはず。
Acceessに限らないが、エラーメッセージを鵜呑みにする後で後悔する。

ちなみに、ODBCについてはおっしゃるとおり、AccessのインストーラーはMDACを自動的にインストールするため、勝手にインストールされますです。
そろそろ次スレ考えた方がよさげだね。
981名無しさん@そうだ選挙にいこう:04/01/29 12:03
Accessでプロジェクトにある、
テーブル名やクエリ名、フォーム名等を、
テキストファイルの一覧で出す方法ってありませんか?
982超初心者:04/01/29 13:41
>>978
>>979
おっしゃるとおり、
ドライバがインストールされないのでなくて、
アクションの変数が(SQLサーバーの名前)違っていました。
手動で、ファイルからインポートができる時点でうちの担当SEが
ドライバインストールしてくれてたみたいです。
ちなみに変数のテーブル名なんですが、DOSのワイルドカードの
ように*.*でテーブル全部をインポートとかできないですよね?
できますが、何か?
984名無しさん@そうだ選挙にいこう:04/01/29 21:00
大量データを処理するのはACCESSでは向いてない
と言われますが、どこらへんを基準に大量か
そうでないか判断すればいいんでしょう?

レコード数?
トータルのサイズ?

何十万レコードなんていうと、それACCESSで
やるもんじゃねーよと言われますが、どうなんでしょ。

新スレ建てました。
突貫工事でやったのでいたらない箇所がありましたら、ごめんなさい。

ACCESS総合相談所 その10
http://pc2.2ch.net/test/read.cgi/bsoft/1075378966

それではどうぞ。
>>984
使ってる人達が速度的に耐えられるかどうか。

あと、ネットワークで使用している場合は、まともなDBMSであれば使わない
余分な帯域を食ってしまうので、そういうのを許せるかどうか。

信頼性云々はまた別の話。
処理時に、まずベーステーブルの必要な分だけ切り出す、という風にすれば
レコード数が一定数を超えても体感速度はあまり変わらなくはなるのだけど。
ただそのテーブルを開く時間というやつはどうしようもないかも。
>>970
SQLサーバーなら、なんでわざわざmdbにインポートするのでしょうか?
ADPでフォームとかレポートとか作れば、リアルタイムで処理・表示できるのでは???
といってみる
990超初心者
>>989
漏れへたれなもので・・・・
直接サーバーのDBにアクセスして何か作ったりするのは
あまりやりたくありません。何時かDB壊すんじゃないか心配で・・・
ちなみにサーバーDBの毎日のバックアップもアクセスのインポートで
済ませてます。1分くらいで済むので楽です。
マンスリーのバックアップは、もちろんテープに取ってますが。