【まだまだ】Microsoft Access クエリ2【使える】
レス数が950を超えています。1000を超えると書き込みができなくなります。
00011
04/07/07 09:45ID:???質問・雑談なんでもどうぞ。
00021
04/07/07 09:48ID:???Microsoft Access
http://pc5.2ch.net/test/read.cgi/db/1056952414/
http://pc5.2ch.net/db/kako/1056/10569/1056952414.html
0003NAME IS NULL
04/07/07 09:55ID:???0004NAME IS NULL
04/07/07 10:12ID:???慣れれば、かなり安定して運用できるけどねぇ。
ただ、慣れるのに時間が掛かるので、いまだにJet3.51+ADOだけど。
0005NAME IS NULL
04/07/07 10:47ID:???0006NAME IS NULL
04/07/07 10:52ID:Dh+YPpnJ俺の知ってる範囲だと、スタンドアロンで動いてるやつだと、ぜんぜん問題ないみたいだけど。
0007NAME IS NULL
04/07/07 12:28ID:???Access使用上の注意としてはこれが基本だね。
0008NAME IS NULL
04/07/07 22:16ID:EHs0AWCY0009NAME IS NULL
04/07/07 23:05ID:2fatn0rvと、その数値データが、何かしらのデータフォームに登録されて、数値入力フォームはまた白紙になって違う数値を入れてクリックボタンをクリックすると
前回入力した数値にどんどん足されていくデータベースっていうのは作れるんでしょうか?
作れるとしたらクエリとか、フォームとか、テーブルとか何を作ればいいのか教えてください。
お願いします。
0010NAME IS NULL
04/07/07 23:59ID:37UI6oWnAccessだったら、更新クエリで。
更新欄に次のように記述して
テーブル名.フィールド名+Forms!フォーム名!数値データ
WHEREでそのレコードを指定すれば。
1レコードのみの運用だったら、Whereは指定する必要ないですけど。
0011NAME IS NULL
04/07/08 09:59ID:QqTbl2Mt例えば「今回は200から」と一番最初のレコードに入力すると、次に入力するレコードからは自動的に「201,202,・・・」とナンバリングされるような感じです。
すみませんが、ご教授くださいませ。
0012NAME IS NULL
04/07/08 13:27ID:bs8jTisP自動でユニークのナンバーを入力するなら、
オートナンバーを使うだけのこと。
任意に入力したいのなら、最大値+1を求めて初期表示。
0013NAME IS NULL
04/07/08 13:38ID:???いろんな人がいるもんだね。
0014NAME IS NULL
04/07/08 13:44ID:k6U7Xnws過去にアクセスで給与算出システムを作りましたが
納品時に客が「2台のパソコンで同時入力させろや!」
っていきなり言われたのでMDBファイルをコピーして
2台のPCに入れてテーブルのみリンクさせて使って
います。更新画面はテーブルと非連結なので更新
するタイミングが同時でなければなんとか同時入力
できているみたいです。
スタンドアローンが基本なのは知っていますが
後々へんなことになりますかね?
0015NAME IS NULL
04/07/08 13:47ID:???後々へんなことになりそうですね。
0016NAME IS NULL
04/07/08 13:51ID:k6U7Xnws>>15
例えばどんな症状が起きるのでしょうか?
納品して半年、まだクレームがきていませんが・・・?
0017NAME IS NULL
04/07/08 13:57ID:???どんな症状が起きるかはテーブル等の設計次第。
クレームきてないんならほっといてもいいんじゃない?
0018NAME IS NULL
04/07/08 17:32ID:bs8jTisPやバックアップを考慮しとけば、数十台で同時入力するような
個所でも使用は可能だろう。
ただ、かえって設計は面倒だし、データ量など考えたら、
mdbでやる意味など無い。
漏れは、そんなことする気は全く無いけどな。
0019NAME IS NULL
04/07/08 17:42ID:k6U7Xnws一応同時アクセスの限定はしてます。バッチ処理はいづれかのmdb
からのみ実効可能(まぁ当然ですが)
同時入力を行うのはマスタのデータ登録画面と給与データの保守画面
のみです。
もちろんクエリのリレーションがかかっているテーブルの同時
更新も行えないように片方のMDBのメニューからなくしました。
0020NAME IS NULL
04/07/08 18:47ID:bs8jTisP結局何が言いたいわけだ?
漏れは別に、2-3台程度でデータ件数も知れていて、
問題なく運用できる自信があれば、お好きにどうぞ
と言っているわけだが?
0021NAME IS NULL
04/07/08 23:04ID:n/uPySIoあなたの会社のサポートはうけたくない。
0022NAME IS NULL
04/07/09 09:52ID:4RiSCMN+後々変なことになるか?という質問に対して変なことになる
と自身満々に答えたあなたの自身はどこから来たの?
と言いたい。過去の事例に基づいていっているならもう少し
詳しく聞きたかったんだが・・・。
どうやらおまいは知ったかでいっているようだな。
無知な技術者はPC初心者のスレに行きなさい。
>>21
こっちもお断り。逝ってよし。
002420
04/07/09 11:22ID:D5mPkM2s文面見て判断できんのか?
0025ななしのごんべい
04/07/09 12:43ID:gYKaIf2G0026NAME IS NULL
04/07/09 15:41ID:RxJ07FmE0027NAME IS NULL
04/07/09 22:14ID:???0028悩み中
04/07/10 09:09ID:M3ce3HdHたとえば、仕事番号1.2.3というのがあって、作業者Aが7/7に仕事番号1を50分やりました。作業者Bは仕事番号2を30分やりました。作業者Cは仕事番号1.2.3を30分ずつやりました。7/8に作業者A.B.Cは仕事番号1.2.3を90分ずつやりました。
作業者の日報は一人ずつ毎日入力するのですが作業者Aの7/7の日報を入力したらクリックすると登録されるボタンでも押してそれを押すと入力フォームが白紙になって作業者BとCの日報を入力できるというフォームをつくり、
0029悩み中
04/07/10 09:15ID:M3ce3HdH重要なのはクリックすると白紙になるってとこと時間がどんどん足されていくというところが出来なくて今悩んでいます。教えていただけませんか?フォームはおおかた出来てるんですが…
0030NAME IS NULL
04/07/10 10:53ID:azeV388dクリックした時、新たなレコードに移動すれば、入力部分はNullになります。
もし過去の日報をそのフォームで閲覧不可能にしたいのなら、非連結のフォームを作成して、
クリック時、追加クエリでテーブルに入力すればいいと思います。
そして、そのクリック時の追加クエリ発現後、入力欄をVBAで空白にする。
例
Me!txt日報=Empty
入力フォームが開いている時間を調べたいのなら、開く時にVBAでTimeを使って、特定のテーブルのフィールドに開始時刻を記録し
閉じる時に再度Timeを使って終了時刻を記録し、その差分を求めるようにすれば作業時間は求まると思います。
開始時に自動的に開くフォームがあるなら、そのフォームの開く時イベントで、Timeを使い、
通常の閉じるボタンの使用を不可にして、自ら閉じるコマンドボタンを作り、そのクリック時イベントで、Timeを使う。
という感じです。
通常の閉じるボタンの使用不可については他のAccess質問サイトを検索すれば、見つかると思います。
私用のためレスできずもうしわけないですが、これで失礼します。
テーブルについて、フォームのコントロールの内容について、
もっと詳細に書かれたほうが、解決は早いと思います。
0031NAME IS NULL
04/07/10 13:09ID:???0032NAME IS NULL
04/07/11 22:49ID:qjDKOaVhそれぞれ「名前」「「ふりがな」「住所」「電話番号」の4つの項目があります
AをBと比較して
完全一致するデータと、部分一致:例えば「名前」と「電話番号」だけ一致、
、「電話番号」だけ一致
みたいな判別して、Aリストに「判別結果」という項目を作って
表示したいのですがどうやったらよいですか
教えてください
0033NAME IS NULL
04/07/12 01:35ID:???ソースが欲しいのか?
003433
04/07/12 01:42ID:???0035NAME IS NULL
04/07/12 16:20ID:AfStwXD+2003からはその辺が変わってVisual Studio Tools for Officeとかいうツールが必要になるみたいですが
.NETがなんたらかんたらと書かれているあたり一癖ありそうな気がするのですが・・・
実際に使われている方いらっしゃいましたら、使用感など教えて下さい。
今のAccessの最新版はAccess2003ですが、Access2002もまだまだ健在?
素直に2002にした方が吉でしょうか?
003632
04/07/13 00:31ID:+bgP3iLcソースって何?
とにかく結果のリストに「どこ」と「どこ」の項目一致という列を作って
入れたいのです
起きたらおねがい
0037NAME IS NULL
04/07/14 04:17ID:diP05LXk以下のコードのAテーブル、Bテーブル並びに各フィールド名を変更してください。
SQLで出来るのが一番いいんだけど、わかりませんでした。
コードの実行処理は遅いかも。
次の文字列が判別結果フィールドに入力されますが、32さんに合うように変えてください。
"完全一致"
"名前、住所一致"
"名前、電話番号一致"
"住所、電話番号一致"
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim a As Integer
Dim i As Integer
Set cn = CurrentProject.Connection
rs.Open "Aテーブル", cn, adOpenKeyset, adLockOptimistic
If rs.EOF = False Then
a = rs.RecordCount
For i = 1 To a
If rs.EOF = False Then
Else
Exit For
End If
If DCount("名前", "Bテーブル", "名前 = '" & rs!名前 & "' And 住所 = '" & rs!住所 & "' And 電話番号 = '" & rs!電話番号 & "'") >= 1 Then
rs.Update "判別結果", "完全一致"
ElseIf DCount("名前", "Bテーブル", "名前 = '" & rs!名前 & "' And 住所 = '" & rs!住所 & "'") >= 1 Then
rs.Update "判別結果", "名前、住所一致"
ElseIf DCount("名前", "Bテーブル", "名前 = '" & rs!名前 & "' 電話番号 = '" & rs!電話番号 & "'") >= 1 Then
rs.Update "判別結果", "名前、電話番号一致"
ElseIf DCount("名前", "Bテーブル", "住所 = '" & rs!住所 & "' And 電話番号 = '" & rs!電話番号 & "'") >= 1 Then
rs.Update "判別結果", "住所、電話番号一致"
End If
rs.MoveNext
Next i
End If
0038NAME IS NULL
04/07/14 06:23ID:???クエリ使え
0039NAME IS NULL
04/07/15 01:57ID:???「少なくとも名前と住所は一致している」クエリ2
「少なくとも名前と電話番号は一致している」クエリ3
「クエリ1とクエリ2を結ぶ。クエリ2.名前→クエリ1.名前 で、クエリ1.名前=Null」クエリ2A
「クエリ1とクエリ3を結ぶ。クエリ3.名前→クエリ1.名前 で、クエリ1.名前=Null」クエリ3A
あとは別テーブルでも用意して、クエリ1に「完全一致」、クエリ2Aに「名前と住所だけ一致」、
クエリ3Aに「名前と電話番号だけ一致」のフラグをくっつけ、インサート。
クエリ1は選択クエリとして再利用しなきゃならないから、インサートは別の追加クエリつくらなきゃ
ならないけど、クエリ2Aとクエリ3Aは初めから追加クエリとして作っちゃってOKかな。
実際に試したわけでもない妄想実験なのでダメだったらごめんね
004039
04/07/15 02:07ID:???たぶん>>32はさ、テーブルの構造ややりたいことの詳細を簡略化して書いてるんだよね。
で、こっちは、それを鵜呑みにしたふりして時間つぶしの妄想パズルやってる。
ユニークID云々とか、ところで名前とフリガナの食い違いは、みたいなことも、まるで眼中に
ありませんってふりしてさ。
ホントはこんなんじゃ全然解決にならないって、分かってるのにさ。
0041NAME IS NULL
04/07/17 21:37ID:???キーワードフィールドには、1,2,5のように「,」で区切られた数字が入っています。
テーブルAの各レコードのキーワードがテーブルBの各レコードのキーワードとが
いくつマッチしているか調べたいのですが、どうやったらいいんでしょうか?
つまり、セパレータ「,」で区切られた文字列を比較して一致した個数を返す関数
の作り方が分からないのです・・・_| ̄|○
0042NAME IS NULL
04/07/17 23:06ID:???0043NAME IS NULL
04/07/18 01:10ID:DoJkEoo4ありがとう!本当に助かります
当方初心者ゆえ本当にわからないんです
教えていただいた事、今から試します!
でもその前に言っておくと
要するに不一致クエリの結果選ばれた対象を
スプレッドシートに選んで出すのではなく
もともとの表のまんまのものにもう一項目付け加えて
「不一致」とか表示したいって事なんだ
0044NAME IS NULL
04/07/18 07:50ID:???http://sports8.2ch.net/test/read.cgi/base/1090045353/
http://homepage.mac.com/butinyaon/news/kiji0002.html
0045NAME IS NULL
04/07/19 16:52ID:???IIf([在庫数]<=0,"MsgBox ("在庫がありません",0+16,"在庫不足")=1 ","")
でドコが間違いですかねえ?
0046NAME IS NULL
04/07/19 17:14ID:???MsgBoxのコマンド文字列返して何するんだろう…
フォームのイベントプロシージャで、単にメッセージを表示したいのなら
If [在庫数]<=0 Then Call MsgBox("在庫がありません", vbOK Or vbInformation ,"在庫不足")
では?
0047NAME IS NULL
04/07/21 11:02ID:???テーブル設計そのものが悪い。とりあえず「正規化」でぐぐるべし。
正規化しとけば、集計関数で簡単にマッチする個数が出せるから。
>>46
45はマルチ野郎。
http://pc5.2ch.net/test/read.cgi/db/1057041973/
>962 :NAME IS NULL :04/07/19 17:00 ID:???
>ACCESSで初心者質問です
>
>IIf([在庫数]<=0,"MsgBox ("在庫がありません",0+16,"在庫不足")=1 ","")
>
>これでエラーになるんですけど・・・・
0048NAME IS NULL
04/07/22 16:46ID:???一つ聞きたいんだが、テーブルA、B共に10レコードあった場合、
どう比較されるんだ?
テーブルAの1レコード目とテーブルBの1レコード目
テーブルAの1レコード目とテーブルBの2レコード目
:
テーブルAの1レコード目とテーブルBの10レコード目
テーブルAの2レコード目とテーブルBの1レコード目
:
テーブルAの10レコード目とテーブルBの10レコード目
だと100通りの比較が必要だが、それとも
テーブルAの1レコード目とテーブルBの1レコード目
テーブルAの2レコード目とテーブルBの2レコード目
:
テーブルAの10レコード目とテーブルBの10レコード目
の10通りなのか。
0049NAME IS NULL
04/07/23 00:56ID:???0050NAME IS NULL
04/07/23 09:52ID:???まずはテーブルAを正規化する。
TableA
ID key other
1 1,2,4 100
2 2,3 200
↓
TableA
ID other
1 100
2 200
KeyTableA
ID key
1 1
1 2
1 4
2 2
2 3
テーブルBに関しても同様に。
あとは、こんな感じでいけるはず。
SELECT KeyTableA.ID, count(*)
FROM KeyTableA, KeyTableB
WHERE KeyTableA.ID = KeyTableB.ID AND KeyTableA.key = KeyTableB.key
GROUP BY KeyTableA.ID
0051NAME IS NULL
04/07/27 23:28ID:2OjAMHehUNIX DB使え、
0052初心者T
04/07/28 00:24ID:KCb+S7h1急にMS-ACCESSで簡単なDB作れと言われてしまい、参ってます。
簡単に例を書きますと
利用しているACCESSは、
MS-ACCESS 2000です。
県名→群名→市町村名
というような絞込をフォーム上でやりたいのです。
(県名→群名→市町村名というのはあくまでも例であり、
実際には違います。
ですので、郵便番号検索オプションは利用不可です)
県名の選択をコンボボックスかリストボックスでやり、
その結果によって、
群名のコンボボックスもしくはリストボックス内に
該当の郡名群が表示されるようにしたいのですが、
どのようにしたらよいでしょうか。
なるべく標準機能で出きれば良いのですが、
標準機能だけで作るのが難しい場合には
VBA等でも構いません。
初心者がここのカテゴリに来るのは如何なものかと
迷ったのですが、どなたかよろしくお願いします。
0053NAME IS NULL
04/07/28 00:34ID:???初心者にコンボコンボはお薦めできない。
0054初心者T
04/07/28 00:46ID:KCb+S7h1アドバイス有り難うございます。
本を読んでいてもやり方が書いていないので、
きっとそうなんだろうなとは思っていましたが。。。
でもいきなり郡名を選ぶとなると、
選択肢が多くて探すのが大変になってしまうんです。
なにか良い方法ないでしょうか?
コンボコンボ、もしやるとしたら、どうしたらよいでしょうか?
併せてお願いします。
0055NAME IS NULL
04/07/28 01:00ID:Gshvi7n8Aテーブル →[氏名],[名前]
Bテーブル →[氏名],[結婚後氏名]
(1)上のようなテーブルがあります。クエリで、AテーブルとBテーブルの[氏名]フィールドをキーにしてリレーションを組み、A,Bテーブルのフィールド全てを表示させます。
(2)(1)で抽出されたデータだけ、Aテーブルの[氏名]フィールドをBテーブルの[結婚後氏名]フィールドに書き換えたいのですが・・・・
注意)Bテーブルの[結婚後氏名]には空欄もあります。
よって、更新クエリでAテーブルの[氏名]フィールドに上書きしてしまうと
空欄まで上書きされてしまいます。あくまでもBテーブルの[結婚後氏名]
にデータがある人だけをAテーブルの[氏名]フィールドに上書きしたいのですが・・・。
なにかよい方法はありますでしょうか。
詳しい方、教えてください。
宜しくお願い致します。
0056NAME IS NULL
04/07/28 02:00ID:/5vEUw1P「演算子がありません」というメッセージがでるのだが、どうしてでしょうか。
0057NAME IS NULL
04/07/28 11:01ID:???テーブルAのフィールドに、県名、郡名、市町村名。
県名のコンボボックスの値集合ソースには、クエリ画面でテーブルAの県名のみを選択。
郡名の値集合ソースのクエリ画面では、県名、郡名のフィールドを選択し、県名の抽出条件に
県名のコンボボックスを指定する。(Ex. [Forms]![入力フォーム]![県名])
ついでに県名のフィールドは表示のチェックボックス外しちゃってもいいでしょう。
市町村名の値集合ソースのクエリ画面では、県名、郡名、市町村名を選択し、県名と郡名に抽出条件を設定する。
県名と郡名の表示はオフ。
説明へたくそですません。
0058NAME IS NULL
04/07/28 11:39ID:???更新クエリで対応できると思います。
更新クエリのフィールドに、Aテーブルの氏名、Bテーブルの結婚後氏名を選択します。
氏名フィールドのレコードの更新セルに、[結婚後氏名]と入力。
結婚後氏名フィールドの抽出条件に is not null と入力。
(1)で仰っているクエリは不要だと思います。
蛇足ですが、氏名でリレーションを組み、その氏名を更新するというのはあまり歓迎できません。
できれば個人を識別するID番号等のフィールドを設けて、そこでリレーションを組みましょう。
すべて了承した上のことでしたら、失礼致しました。
0059NAME IS NULL
04/07/28 11:47ID:???0060NAME IS NULL
04/07/28 12:30ID:???そうです
006155
04/07/28 23:29ID:Gshvi7n8なるほど!!出来ました!!
有難うございました!!!!!
0062NAME IS NULL
04/07/29 04:41ID:???多分Access君がいっぱいいっぱい。
クエリをSQLビューにて直書きしているのであれば、まずは記述ミスを疑う。
デザインビューで作成していてそうなっている場合は、結合したいテーブルを数段階に
分けて、複数のクエリーにして結合する。
ただし、これすると無茶苦茶処理が遅くなる(場合がある)ので、この手のことをしたい
場合は、その結果を見たいところ(フォームなりレポートなり)を開かせる処理のところ
で更新クエリーを使って、空テーブルにテンポラリーデータを作成して結合させて
いきまつ。
0063初心者T
04/07/30 00:43ID:o7X62hPaありがとうございます。
早速やってみましたが。。。うまくいきません(;;)
もう少し続けてやってみます。
>県名のフィールドは表示のチェックボックス外しちゃってもいいでしょう。
←これはどうやるのでしょう?
0064初心者T
04/08/04 00:15ID:ENSvGynwこれまでしたことの手順
(1) テーブルを3つ作成。
(i) テーブルAは基本データで、ここに県名と郡名を取り込む
(ii) テーブルBには県名と県コード
(iii) テーブルCには郡名と郡コードと県コード
(2) テーブルAを使ってフォームAを作成
(3) フォームAの県コンボボックスのプロパティ内の、値集合ソースに、
テーブルBの県名を指定
(4) フォームAの郡コンボボックスのプロパティ内の、値集合ソースに、
テーブルBの県名とテーブルCの郡名を指定。
県名は非表示。
県名で抽出条件[forms]![フォームA]![県名]
(5) フォームAの郡コンボボックスのプロパティ内の、イベント−フォーカス取得時に
マクロビルダを使ってマクロを指定。
マクロの中身は、
「再クエリ」引数は「県名」
以上。ここまでやって、コンボボックスが連動するようになったんですが、
不具合が。。。orz
不具合内容は
(a) フォームAのレコード番号を変えれば、
県名も郡名も一度リセットされて、
郡名のコンボボックス内のデータも新たに選択された県名に連動すべきなのですが、
最初に入力した県名のデータに連動された郡名が、
いつまでも郡名コンボボックスに残り、
正しい郡名を選択出来ないのです。
どこが悪いのでしょう?
再クエリした内容を、コンボボックスからフォーカスが
外れた時点でリリースすればいいように思いますが、
やりかたが思いつきません。
どなたか、ご指導よろしくお願いします。
0065NAME IS NULL
04/08/04 07:14ID:LIw+Ax9c4月から使い始めて簡単なのでハマった
vbとか簡単〜
クエリのデザインとか楽すぎ
コードは醜くなるけど
0066NAME IS NULL
04/08/04 21:32ID:4tvJMmst0067NAME IS NULL
04/08/05 08:27ID:???県名コンボボックスの更新後処理イベントにコード
Me.郡名.Requery
でいいのでは?
0068NAME IS NULL
04/08/05 08:29ID:???少しはヘルプ見ろ
※Ac2000以降のヘルプの場合
VBエディタ側のヘルプで「書式」と入れて「"Format/書式" プロパティ ― 日付/時刻型」を...
0069NAME IS NULL
04/08/05 22:16ID:EBb5gW84テーブルを直接参照する冗長なクエリがあるのですが
パフォーマンスを比較する方法はありますか?
0070NAME IS NULL
04/08/06 20:10ID:WiPfD8pX0071NAME IS NULL
04/08/06 21:22ID:i7wsIAieCPU処理時間とか……
0072NAME IS NULL
04/08/06 21:22ID:???0073NAME IS NULL
04/08/06 21:31ID:???それって負荷じゃ・・・
0074NAME IS NULL
04/08/06 21:33ID:???お客さんへのファンサービス
007569
04/08/07 00:11ID:hhIeO9uhhttp://www.microsoft.com/japan/msdn/sqlserver/columns/sysbuild/sysbuild3.asp
このページに書いてあるところの、「クエリの総コストがより低い」状態
と意図しています。
手元には ACCESS と PostgreSQL しかありません。
なので、Microsoft SQL Server のような表示は出てきません。
0076NAME IS NULL
04/08/07 02:49ID:b3We31b9凄い使い易いし。
結局sql serverの一部ツールとして考えれば最強。
0077NAME IS NULL
04/08/09 20:13ID:szBIdzj90078NAME IS NULL
04/08/09 21:10ID:D3DW4m3E使える。
0079初心者T
04/08/11 08:51ID:Z7yNIn/w64です。できました。ありがとうございました。
0080NAME IS NULL
04/08/26 14:09ID:L70NqcYu名前を選ぶコンボボックスで「Aさん」を選んだ場合、自動的にクラスが「1組」に書き換わり、
その直後クラスを選ぶコンボボックスで「2組」を選んだ場合には「2組」が保存される、
というようなものを作るにはどうしたらいいのでしょうか?
0081NAME IS NULL
04/08/26 16:51ID:2UxZ/ddt氏名とクラスを格納するテーブルを「学年名簿」とすると
Private Sub 氏名_Change()
Dim dbs As Database, rst As Recordset, strCriteria As String
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("学年名簿", dbOpenDynaset)
strCriteria = "名前 = " & Me!名前
rst.FindFirst strCriteria
If rst.NoMatch Then
Exit Function
Else
Me!クラス = rst!名前
Exit Sub
End If
End Sub
こんな感じのプロシージャを氏名コンボボックスのChangeイベントに書けばいいと思う。
保存するにはクラスコンボボックスのChangeイベントに保存用のプロシージャが必要。
0082NAME IS NULL
04/08/26 23:24ID:???わや亀レスですが、
ヘルプは、見ました。
「時間間隔の単位」で使った時の違いがわからなくて質問したのです。
(本来、そういう使い方すべきではないのかもしれませんが、
あるテキストにのっていたので)
それに対する答えは、ヘルプになかったと思いますが・・・
でも、解決しました。
0083NAME IS NULL
04/08/30 15:23ID:ko3yWlYh質問です。
テーブル及びクエリのフィールド名を、プログラムから
変更することは可能でしょうか。
よろしくお願いいたします。
0084NAME IS NULL
04/08/30 15:55ID:wm4+ze2v可能です。
0085NAME IS NULL
04/08/31 00:07ID:ErtCixzY83です。
ご回答、ありがとう御座います。
続けて質問なのですが、その方法を教えて
頂けないでしょうか。
まだ、始めたばかりで詳しくないので、
よろしくお願いいたします。
0086NAME IS NULL
04/08/31 00:44ID:JN7+kpHnSub ChangeFieldName_Table()
Dim l_Database As Database
Set l_Database = CurrentDb
On Error Resume Next
l_Database.TableDefs.Delete ("T_TEST")
On Error GoTo 0
Dim l_TableDef As TableDef
Set l_TableDef = New TableDef
l_TableDef.Name = "T_TEST"
Dim L_Field As Field
Set L_Field = New Field
L_Field.Name = "F_OLD"
L_Field.Type = dbLong
l_TableDef.Fields.Append L_Field
l_Database.TableDefs.Append l_TableDef
l_Database.TableDefs!T_TEST.Fields!F_OLD.Name = "F_NEW"
Set l_Database = Nothing
End Sub
Sub ChangeFieldName_Query()
ChangeFieldName_Table
Dim l_Database As Database
Set l_Database = CurrentDb
On Error Resume Next
l_Database.QueryDefs.Delete ("Q_TEST")
On Error GoTo 0
Dim l_QueryDef As QueryDef
Set l_QueryDef = New QueryDef
l_QueryDef.Name = "Q_TEST"
l_QueryDef.SQL = "SELECT F_NEW FROM T_TEST"
l_Database.QueryDefs.Append l_QueryDef
l_Database.QueryDefs!Q_TEST.SQL = Replace(l_Database.QueryDefs!Q_TEST.SQL, "F_NEW", "F_NEW AS F_NEW2")
Set l_Database = Nothing
End Sub
0087NAME IS NULL
04/08/31 00:55ID:ErtCixzY85です。
早々にご回答頂きありがとう御座いました。
早速、これを参考にチャレンジをしたいと思います。
ありがとう御座いました。
0088NAME IS NULL
04/08/31 04:03ID:???このコードは使えない肝吸い
0089NAME IS NULL
04/09/02 01:18ID:XOkoeo+vテーブル2に「番号」「種類」「商品名」というフィールドをつくります。
テーブル1の「番号1」と「番号2」をテーブル2の「番号」に対応させて、
テーブル1をメインにしてテーブル2の「種類」「商品名」をそれぞれ「番号1」「番号2」
の横に表示させるようにするにはどのようにしたらよろしいでしょうか。
0090NAME IS NULL
04/09/02 02:49ID:???フラットな構造にした方が早いと思うんだけど。
0091NAME IS NULL
04/09/02 02:57ID:???テーブル2を参照するクエリ2を作成。
あとは2つのテーブルと1つのクエリをデザインビューに配置。
2本とも結合のプロパティでテーブル1の全レコードを含めるに設定。
0092NAME IS NULL
04/09/02 10:25ID:vgt66x6m85です。
多少試行錯誤しましたが、何とか上手く出来ました。
ありがとう御座いました。
0093NAME IS NULL
04/09/04 15:49ID:???009493
04/09/04 17:39ID:???0095NAME IS NULL
04/09/05 07:14ID:RVUXCNscなかったのですが、他の板で気になる表記を見つけで、
ネットワークでの共有に関して、教えてください。
ACCESSだけで、データベースの共有を行う、c/sみないな事って
実現出来るのですか?どこかの掲示板で2000以降なら可能という
記述を見た事があります。例えば、1台のホストに統合的に全て
のデータが集まり、10台くらいのクライアントから更新する
として、そのカラクリは?
009695
04/09/05 07:17ID:???MS SQL ServerのクライアントとしてACCESSで作ったものを
見せてもらったのですが、SQL鯖との接続部分は、
ACCESSの設定で、サーバのレプリケーションを作って、
そのローカルデータへの作業を、後からサーバに返して
あげるというニュアンスの話を聞いた記憶があります。
なんでも排他制御でしんどい思いをするとか市内とか?
こんな認識であってますか?
教えてエロイ人
0097NAME IS NULL
04/09/05 07:34ID:???あ、あ、あ、危なーーーーーーーーーーい!逃げて、逃げてぇーーーーーーーー!
009895
04/09/05 15:00ID:???自分で何かしようという訳ではないのでご安心を。???
実現する方法とその仕組みが知りたいのです。
ああ、そういえば>>96の件はもっと使いやすく作り直して
って頼まれていて、クライアント側はc#あたりで作ろうと
は思ってます。
0099通りすがり
04/09/05 18:33ID:UmnB7WJLファイル共有であり、SQLによるクライアントサーバでは無ですが。
偶然2台のクライアントが同じレコードを修正して書き込む時に警告が出ます。
昔はMDBが壊れやすかったですが、最近は大丈夫みたいです。(Backupはしっかり)
>>96 私はACCESSのレプリケーションしか経験が無いですが、排他制御は自動的に
やってくれます。
これも競合時にはワーニングが出ます。
ACCESSのレプリケーションは、データだけでなくプログラムも同期してくれますが
通常、開発環境と実行環境は異なるので、データだけレプリケーションさせた方が
良いでしょう。
オートナンバー型がランダムしか使えないとか、レプリケーションID(GUID)を
理解する必要があったり、ちょっと面倒かも。
今はWANでも速いので、レプリケーションより、ただのC/Sのほうが良いかも。
010095
04/09/05 22:14ID:???レスありがとうございます。
>ファイル共有であり、
smb経由のファイル共有で複数のホストがMDBファイルをオープンして、
ACCESSが協調して同時書き込み等を制御してくれる・・・という理解
で良いですよね。
>今はWANでも速いので、レプリケーションより、ただのC/Sのほうが良いかも。
SQL Serverのクライアントになるには、レプリケーション型と、生粋
のc/sが可能。レプリケーションでは気をつけなければならない事が
少しばかりある・・・と。
ただのc/sとは?どういう話ですか?ACCESSのスクリプトでSQL問い合
わせを行って、result-set objectみたいなのを生成してVBAでゴリゴリ
やるという感じでしょうか?それなら素直にVBかC#かで良さそうに思え
ますし、ACCESSならではのメリットってあるのですか?
質問ばかりですみません。
0101通りすがり
04/09/06 15:06ID:IXNXpIbA>ACCESSが協調して同時書き込み等を制御してくれる・・・という理解
あくまでイメージですが・・・
1.クライアントがデータを読み込んだ時、オリジナルデータをとって置く。
2.クライアントが変更データを書き込む直前に、もう一度データを読み込む。
・もし直近データと、オリジナルデータが同一なら、誰もデータを変更して
いないので、そのまま変更データを書き込む。
・もし直近データと、オリジナルデータが異なっていたら、誰かが変更データ
を書き込んだことになる。
このまま自分が書き込むと、他人の変更を上書きしてしまうので具合が悪い。
そこで警告を出し、そのまま書き込むか、自分の変更を無効にするか選択させえる。
以上のようなことを内部的に行っているようです。(楽観的ロック)
他のクライアントと通信する必要は無いし、読み込み時にレコードロックする必要
もなく、排他制御のコーディングも必要ありません。
0102通りすがり
04/09/06 15:08ID:IXNXpIbAクライアントからサーバに直接SQLを投げるということです。
レプリケーションの場合、クライアント側にあるレプリカDBに対してSQLで
データ更新ます。
レプリカとサーバDBは定期的に同期処理を行い、更新済データを交換し合います。
レプリケーションは、クライアント・サーバ間の回線が細い時、レスポンス
低下を避ける為、クライアント側に複製データを置くものです。
複製データですから、他のクライアントの変更がリアルタイムに反映せず、
同期処理時にデータ競合が起こる可能性があります。
>それなら素直にVBかC#かで
どんな開発が「素直」かは、その人が使って来た開発環境によるでしょう。
ACCESSは、テーブルとモジュールが同じMDBに含まれており、自分のデータに
アクセスする時のコーディング量が少なくて済みます。
(データの場所を指定する必要がありません)
基本的にフォームのコントロールはDBのフィールドに連結しているので
単純なデータ更新なら、素早く作成できます。
本当に必要なビジネスロジック作成に専念できます。
・単純なテーブル(従業員テーブル、県テーブル 等)なら
DBサーバ → リンクテーブル → 連結フォーム
・パフォーマンスが要求されるなら
DBサーバ → パススルークエリー → 連結フォーム 又は VBAでゴリゴリ
0103NAME IS NULL
04/09/06 18:59ID:SInApfrv環境によってPNGファイルが表示できたりできなかったりします。
どこをチェックすれば、その可否がわかるんでしょうか?
0104NAME IS NULL
04/09/06 19:03ID:SInApfrv自己レス、失礼スマタ
010595
04/09/06 21:17ID:???詳細ありがとう。分かりやすかったです。
で、またまた質問で恐縮です。
>クライアントからサーバに直接SQLを投げるということです。
ここのコネクションは、どのような手法でしょうか?
ODBCとかADOとか(じつはADOよくわかっていない)
oo4oとかlibpqとかはcやvbで使ったことあります。
それともACCESSならではのクライアント機構があるとか?
実はPostgresやMySQLのクライアントにも簡単になれるとか?
それなら実にうれしい。
0106通りすがり
04/09/06 22:38ID:IXNXpIbAORACLE+DAOの場合ですが、先ず[ODBCデータソースアドミニストレータ]
で、接続先のDBに合わせて、データソースを作成します。
その後の処理を 簡単な方から説明すると・・・
1.リンクテーブルと連結したフォームから手入力でデータを設定する。
上記データソース経由でDBのテーブルのリンクテーブルを作成します。
作成したリンクテーブルに連結したフォームを作成します。
フォーム上で行った更新は、自動的にDBに反映します。
データの表示・更新書込に関してはコーディングは必要ありません。
2.リンクテーブルから、VBAでレコードセットを作成し一レコードずつ
読込み処理する。
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("select * from テーブルA")
Do Until rst.EOF
--ここに処理を書く
rst.MoveNext
Loop
3.パススルークエリーでデータを取得し、VBAで処理を記述したり、
レポートなどのレコードソースにする。
先ず、雛型となるパススルークエリーを作成し、下記のように利用します。
Dim rst As Recordset
CurrentDb.QueryDefs("パススルークエリー").SQL = "select * from テーブルA"
Set rst = CurrentDb.OpenRecordset("パススルークエリー")
Do Until rst.EOF
--ここに処理を書く
rst.MoveNext
Loop
更新する時は、更新用のパススルークエリーを作成して、下記のように利用します。
CurrentDb.QueryDefs("パススルークエリー").SQL = _
"update テーブルA set 項目1=" & 更新値 & " where ID=" & 更新ID
CurrentDb.QueryDefs("パススルークエリー").Execute
------------------------------------------------------
「1」のリンクテーブル利用は、パフォーマンスが悪いですが、手入力
相手なら問題ありません。
「2」は、ACCESSのテーブルと同じコーディングですから理解しやすいです。
「3」は、SQLが直接サーバDBで実行されるので速いです。
特に、複数テーブルをJoinする時は、桁違いです。
PL/SQLの実行など、サーバがサポートするSQLは全て実行できます。
ACCESSのSQLではなく、対象DBのSQL文法に従う必要があります。
一番早く開発できるように、上記方法を組み合わせます。
010795
04/09/06 22:46ID:???>「1」のリンクテーブル利用は、パフォーマンスが悪いですが・・・
>「2」は、ACCESSのテーブルと同じコーディングですから理解しやすいです。
>「3」は、SQLが直接サーバDBで実行されるので速いです。
ウホ。だいたい分かったなり。
ありがとう、通りすがり さん。いい人だね。
アタシは3番のが性に合っている様に思います。
ここまで分かったら、興味わいてきたので、
インストールして試してみます。
0108NAME IS NULL
04/09/08 19:08ID:pRMLS3SIFIREBIRDで作成したテーブルをACCESSでリンクしようとしたところ、
『システムで予約されているエラー』になります。
FIREBIRDではキーファイルを作成しています。キーファイルを削除したところ、リンクが出来るようになりました。
しかし、キーファイルはそのままでACCESSとリンクしたいのです。
ODBCの設定が悪いのか、わからない状況です。
環境
OS WINDOWS98
DBMS FIREBIRD1.5
ODBC IBPhoenix1.2
ACCESSは素人なもので、教えてください。
0109NAME IS NULL
04/09/09 01:58ID:JdVhfrfL内部結合でFROM句にテーブルを並べた場合、
出てきたクエリを変更しようとしても、まるで
スナップショットが選択されているが如く更新できません。
確認のためにデザインビューで開いてみても
プロパティはダイナセットになっています。
冗長ですがJOIN句を追加すると更新できます。
バグですか?
0110NAME IS NULL
04/09/09 08:18ID:/JZUED5Sクエリで得意先CD毎に集計しました。
金額を降順にしたのですが、なぜかマイナスの値が
最大値になってしまいます。
-1000
10000
9000
8000
...
のようになってしまいます。
初心者なもので、全然理由がわかりません。
Win2000
Access2000 です。
よろしくお願いします。
0111NAME IS NULL
04/09/09 08:33ID:???データ型は数値型?
フィールドサイズを「十進型」にしてませんか?
金額ならできるだけ「通貨型」にして「\」マークが付くのがイヤなら
書式を標準にした方が後々いいと思います。
0112110
04/09/09 09:35ID:NEAnFtsQ十進型になっていました。
ただ、リンクテーブルなもので、テーブルを変更することはできません。
クエリで変換とかはできるものなのでしょうか?
0113NAME IS NULL
04/09/09 10:01ID:4g3XcIyANullの行があったりするとかなり大変。
0114110
04/09/09 10:15ID:NEAnFtsQNullはないと考えて大丈夫なのですが
それだとなんとかなりますか?
0115NAME IS NULL
04/09/09 10:29ID:4g3XcIyAそれだったら、
SELECT CCur(T1.F1) AS F1 FROM T1
とかで何とかならない?
0116NAME IS NULL
04/09/09 10:54ID:???NullあってもNzで0にしてやればいいと思います。
SELECT CCur(Nz([F1]))
FROM T1
ORDER BY CCur(Nz([F1])) DESC;
0117110
04/09/09 13:00ID:NEAnFtsQそのような方法があったのですか、ありがとうございます。
回答を確認する前に、
クエリに項目「int(金額)」を追加し、それで降順をかけたらうまくできました。
回答していただいた方々、ありがとうございましたm(_ _)m
0118h
04/09/11 01:02:25ID:???Accessで,テーブル一覧を取得するSQLは存在しないんですか?
しょうもない質問で恐縮ですが(^^;
0119h
04/09/11 01:49:28ID:???GetOleDbSchemaTable()を使え,と・・・.
0120NAME IS NULL
04/09/11 17:56:36ID:xzy8zwwc種類(数値型)、タイトル(テキスト型)
という感じになっています。
種類(数値型)をコンボボックスにして「ルックアップ」→「値集合ソース」で
1;"SM";2;"モロ";3;"女子高生";4;"主婦";5;"風俗情報"
という風に設定していて、少しでも使いやすくなるようにしています。
最近看護婦物の数が増えて来て女子高生よりよく見てモロよりよく見ないぐらいの頻度なので
1;"SM";2;"モロ";3;"看護婦";4;"女子高生";5;"主婦";6;"風俗情報"
という風に「値集合のソース」を変更したいのですがどうすればいいでしょうか?
値集合のソースだけを変更すると「種類」の表示が変わってしまいました。
0121NAME IS NULL
04/09/11 21:06:11ID:???値集合のソースを変更すればいいじゃん。
その前に、設計が……
0122NAME IS NULL
04/09/11 22:03:26ID:???0124NAME IS NULL
04/09/13 01:16:55ID:FQ5cpePN0125NAME IS NULL
04/09/14 16:17:36ID:???0126NAME IS NULL
04/09/19 16:20:40ID:IrgpIJa8それと CREATE DOMAIN が使えないのですが、バグですか?
0127NAME IS NULL
04/09/20 13:09:57ID:???SELECT ID,SHOHIN_CD,MyFuncNedan(SHOHIN_CD) from SHOHIN_MST
みたいな感じで。
この「SQL内でVBの自作関数を使う」っていうのを、
VBプログラムからADOつかってmdbファイルにアクセスするときに
やりたいんですけど、どうやるかわかる人いますか?
mdbファイル内に使いたい関数を作っておいて(モジュールファイルに記述)
上記のようなSQLをADO recordset の open メソッドで指定しても
エラーになってしまいます。
どなたかご存知の方いらっしゃいましたら、ご回答よろしくお願いします。
0128NAME IS NULL
04/09/20 14:28:04ID:liuCgybGできまへん。
Access内で完結するマクロをつくって、VBから呼ぶことはできるけどね。
単純なSQLでレコードセット開いて、自前で関数に掛けて使用汁。
0129NAME IS NULL
04/09/20 20:59:42ID:e9WUcsEh種類(数値)、大分類(数値)、中分類(数値)、小分類(数値)、種類名(テキスト型)
という感じになっています。
種類(数値型)は000102という感じの6桁の数値で打ち分けは
00 01 02 という感じで桁数によって大分類・中分類・小分類からなっています。
(この場合は大分類=00/中分類=01/小分類=02)
種類を入力したときに大・中・小分類に、大・中・小分類を入力したときに種類に自動で入力されるようにしたいのですが
どうすればいいのでしょうか?
知恵を貸して下さいm(__)m
0130NAME IS NULL
04/09/20 22:22:34ID:???0131NAME IS NULL
04/09/20 22:30:07ID:???種類=大分類 & 中分類 & 小分類 なのよね。
自分ならまず、
○テーブルから種類列(または大中小分類のどちらか)を無くす。
●次に、大中小分類に入力すると更新前動作で種類フィールドに合わさったものが入るようにする。例えば
種類.value=right("00" & 大,value,2) & right("00" & 中.value,2) & right("00" & 小.value,2)
●同様に、フォームの種類フィールドに入力した値が大中小分類の入力フィールドに分かれる
ようにする。
○種類フィールドを非連結にする。
○元の「種類、大分類、中分類、小分類、種類名」と同じように見える選択クエリを
つくって、別の表示用のフォームなりレポートはそれをレコードソースとして食うようにする。
とするかなぁ。書いてあることだけやるなら、黒●のやつだけやれば実現できるけど、冗長で
食い違った内容が入ったら怖いし、まだ作ってないなら白○のとこも考えてちょ。
時に、種類に 000102 が格納されているとしたらそれテキスト型じゃ、ってオモタけど、
わかりやすいようにそう書いてあるだけよね?
0132129
04/09/20 23:05:51ID:???>>130-131
詳しくありがとうございます。
確かに冗長ですね。大・中・小分類だけにすることにします。
わからないことだらけであまりよく理解できてないのですが
わたしがやりたかった(過去形)のは「種類」(数値、書式000000)にデータシートビューで000102と入力すると
自動で大分類に00、中分類に01、小分類02にと入力されたら楽ちんでデータが食い違うこともなくていいなーと思ったんです。
もしかしてデータシートビューではそういうことはできないんでしょうか?
うまく伝えられなくてすいません。
0133NAME IS NULL
04/09/21 22:55:29ID:???(゚Д゚#ええーいデータシートビューで見ているのはテーブルだ!!概念スキーマだ!!
それをユーザに触らせるなんて言語道断!!そういう「見た目を扱う部分」「ユーザが触る部分」は
外部スキーマの「選択クエリ」や「フォーム」、「レポート」で表現しる!!
そしてテーブルには冗長性を排除した本当のデータのみを格納すべきなのです!!
0135NAME IS NULL
04/09/22 12:03:48ID:W0KcCCVNプライマリキーをLONGあるいは6桁のDECIMAL値としてその書籍分
類マスタを作るっていうのはどうでしょうか(大・中・小分類が
01 02 03 なら 10203)。マスタを使うときは大・中・小分類に
分解するクエリーを通せば良いと思います。
-- 書籍分類マスタの定義
Create table 書籍分類マスタ (
id long,
name text(50),
constraint pk_書籍分類マスタ primary key (id)
)
-- マスタを使うときに通すクエリ
SELECT ([id]\10000) Mod 100 AS 大分類, ([id]\100) Mod 100 AS 中分類,
[id] Mod 100 AS 小分類, 書籍分類マスタ.name FROM 書籍分類マスタ;
で、マスタへの登録変更フォームにも[id]を大・中・小分類に分解した
内容を表示させるテキストボックスを用意するという方向で。
0136NAME IS NULL
04/09/22 12:29:35ID:???いい発想だが、来月に小分類あたりが100を超えて破綻。
0137NAME IS NULL
04/09/22 13:43:20ID:???分類コードのコード体系が数字なんだから仕方ないじゃん。
っつーか、小分類が100を超えるなんて分類のしかたが
悪いんだよ。
0138NAME IS NULL
04/09/22 22:34:50ID:???文字型にして16進数に
0139NAME IS NULL
04/09/22 22:35:50ID:???0140NAME IS NULL
04/09/22 23:10:17ID:???0141NAME IS NULL
04/09/22 23:28:45ID:???ISBNには出版国とか出版社、細かいジャンルも含まれてるから
ISBNと書名だけあれば十分じゃないかと。
0142NAME IS NULL
04/09/22 23:36:53ID:???0143NAME IS NULL
04/09/22 23:59:41ID:???>>129はどうする気だい?
0144NAME IS NULL
04/09/23 00:11:53ID:QstrfqMz作業してるんですけど
時々レポートが突然消えたり、開いたフォームを
閉じれなくなったりするんですけど
どんな原因が考えられますでしょーか…
0145NAME IS NULL
04/09/23 01:56:08ID:???それってたぶんオペレータが商品登録時にその場の気分体調で判断することになるんだよね。
DBとして破綻する前に、商品登録はじめの10個あたりでデータ自体どうでもよくなっちゃうんじゃないかな。
というわけで141に一票
>>144
LANケーブル踏んづけたとか、HUB蹴っ飛ばしたとか、いろいろ
0146NAME IS NULL
04/09/23 04:08:21ID:SoLULyfB0147NAME IS NULL
04/09/23 06:20:48ID:???属性という扱いにしてテーブル分けたほうがよさげ。
0148NAME IS NULL
04/09/23 15:18:29ID:???0149NAME IS NULL
04/09/23 17:36:55ID:???0150NAME IS NULL
04/09/23 18:41:45ID:???ジャンルってものがあるだろうがw
0151NAME IS NULL
04/09/23 23:29:12ID:VhHsEf5kテーブル間に「リレーションシップ」作成しました。
作成の前後で、線が引かれた以外で目に見える
変化は起きませんでした。
(DRI でも、直積の制限でもない?)
一体、参照整合性の無い「リレーションシップ」は
何をやっているのでしょうか?
テーブルの定義が変わるのでしょうか?
ご教示ください。(ビジネス soft 板から移動してきました。)
0152NAME IS NULL
04/09/25 02:06:05ID:???クエリ作るときに自動的にINNER JOINしてくれる程度の役にしか立たなかった希ガス
0153129
04/09/25 02:54:25ID:???レスいっぱいありがとう。
わたしが知りたかったのは>>135さんの方法なのですが
わたしには難しそうなので大・中・小だけでデータの種類を表すことにします。
ISBNは名案なのですが、将来本以外も扱いそうなので大中小だけという方法でいきます。
_(._.)_
0154さぼい
04/09/25 19:09:05ID:6XnjLPxYチェックボックス(商品名)をいくつか作り、それぞれに数値(価格)を与えて、
チェックされた箇所の合計を求めたいのですが、どうしたら良いでしょうか?
オプショングループで何度かやってみたんですが、うまくいきませんでした…。
「商品」チェックボックスの規定値、値(数値データ)を「合計」フィールドに保存、
を試みてるんですが、数式の入力もクエリでやるのかテーブルでやるのか分からない程の初心者でして…
どなたか教えて下さいませ!!m(_ _)m
0155NAME IS NULL
04/09/26 02:26:07ID:+Sm6B5mIかわいい
0156NAME IS NULL
04/09/26 03:40:40ID:???な感じかな。
チェックボックスって使った経験なしだから良く分かんね
もしかしたらTrueじゃなくONとかになるのかな。
合計「フィールド」って言葉が気になるな。
たぶんフッターかヘッダーに貼りつけたテキストボックスのことだよな。
これだとチェック入れたり消したりするたびにRequery しなきゃならないか。
それよりは「合計」の既定値=0 にして、
チェックボックスクリック時
もしONなら
[合計] = [合計] + [価格]
そうでないなら
[合計] = [合計] - [価格]
おわりもし
のほうがいいかな。
でも何だかよく分かんね。
質問の意味も実は分かってね。
0157さぼい
04/09/26 21:43:19ID:XJeK7tcRありがとうございます!早速やってみます。
DSUM、条件にあったものの合計、ってことですよね。
チェックが入っているものを条件に出来れば良いんですね!
…って、自分で納得出来たような分かんないような…;
とにかくありがとうございます!!m(_ _)m
0158NAME IS NULL
04/09/26 22:03:56ID:uGuPGAeiオフィスXPsp2のアクセスなのですが、
テーブルのデザインビューのデータ型からルックアップウィザードを
使って、ルックアップさせようとすると
「選択されたデータソースからデータを取得することができません。
別のテーブルまたはクエリを選択してください」というエラーが出てきてしまうのです。
いろいろなテーブルでやってもダメでして、エラーをグーグルで検索しても
ダメなのです。よろしくお願いします。
0159NAME IS NULL
04/09/27 01:15:26ID:???一度も遭遇したことが無いなあ。
ルックアップフィールドウィザードで追加されたフィールドの
ルックアップの値集合ソースプロパティの値をコピーして
普通のクエリとして貼り付けて実行できる?
0160NAME IS NULL
04/09/27 01:25:10ID:???参照されるテーブルのフィールド名を半角英数字だけにしてみるとか。
MDB?ADP?
http://support.microsoft.com/default.aspx?scid=kb;ja;278867
0161NAME IS NULL
04/09/27 15:35:34ID:???A>0
もしくは
B>0
の時、レコードを表示したいのですが
どうすればいいでしょう?
A | B
------
>0 | >0
といった感じにデザインビューで定義しても
and条件になってこまっています。
0162NAME IS NULL
04/09/27 16:02:12ID:???Bフィールドの条件を1つ下に書くと...ORになる
0163NAME IS NULL
04/09/27 16:06:05ID:???0164160
04/09/27 16:25:57ID:???where
MONA = 0 and (GIKO = 1 or NIDA = 0)
のようなクエリはどうやってデザインビューで
定義すればよいですか?
MONA| GIKO NIDA|
------------------
0| 1| |
-------------------
0| | 1|
なんていわないでください。
0165NAME IS NULL
04/09/27 20:08:09ID:???0|.1|
0| |0
0166NAME IS NULL
04/09/27 20:13:37ID:???目的のSQLが分かってるならSQLビュー使え。
0167NAME IS NULL
04/09/28 15:33:49ID:???普通に入力しても、入力した半角スペースが消えてしまいます。
半角スペースだけの入力ってできないのでしょうか?
0168NAME IS NULL
04/09/28 16:43:39ID:???紛らわしいのでおすすめできないが。
0169NAME IS NULL
04/09/28 17:04:43ID:???できました。ありがとうございます。
Accessのレコードに ' ' と入れてみたところ、思い通りに動きました。
0170NAME IS NULL
04/09/30 11:33:01ID:A74TNTmU現在ACCESS2003でデータベース作ってるんですが、
顧客の相談内容を入力する欄を、相談されるたびに
追加するにはどうすればいいんでしょうか?
お客様によって相談回数が異なるので、基本フォーム
には一回分だけ入力欄を作り、相談するたびに新しい
スペースを追加していきたいのですが・・・。
最初っから入力欄をたくさん作っとくってのはどうも・・・。
何卒よろしくお願いします。
0171NAME IS NULL
04/09/30 12:00:11ID:???何回相談があっても新規レコード作るだけ。
正規化について学習しる。
0172170
04/09/30 13:15:46ID:A74TNTmUははぁ、なるほど別テーブルですね。
ありがとうございます。
恥かきついでにもう一点。
マウスのホイールをまわすとフォーム内の縦スクロールではなく、
次の入力フォーム(新規)に移動してしまうんですが、
縦スクロールするにはどうしたらいいのでしょうか?
0173NAME IS NULL
04/09/30 15:47:10ID:9PUJMLNY使った事があるのですが、今探すとどうしても見つかりません。
知ってる人いませんか?
0174NAME IS NULL
04/09/30 15:50:01ID:???単票フォーム、だよね
だったらしょうがないんじゃないの
よく知らないけど
0175NAME IS NULL
04/10/01 11:15:19ID:???これか?
ttp://www.ruriplus.com/msaccess/tol/tol_idx.html
0176173
04/10/03 01:07:58ID:???コレダーありがとん
0177NAME IS NULL
04/10/03 19:21:09ID:???VBAでひとつずつフォームのデータを集めてから書き込んでいるんですか?
すっごく面倒なんだけど楽な方法ありませんか?
0178血糖馬券死インスリン
04/10/04 09:41:43ID:mrKXTtyYhttp://www.geocities.jp/umazanpai/
db33.lzh
グラフのリンクが挙動不審、正しいリンクのさせ方教えて。
0179NAME IS NULL
04/10/05 00:58:21ID:GdbmbLhZWIN98で動かしたいんだけど、どうすればいいんだろ?
MDAC 2.7 SP1 Refreshというのをインストしたけどだめでした。
0180NAME IS NULL
04/10/05 09:12:45ID:???0181NAME IS NULL
04/10/05 23:28:15ID:KdTKVF/Jという表を日付と得意先別に集計したいんですが、
(10月の得意先別売上集計など)
今は日付をBetween〜Andで選択してテーブルを作り、
そのテーブルを得意先ごとに集計して作成しています。
これだと二度手間なので、一度でできる方法はないでしょうか?
0182NAME IS NULL
04/10/06 00:16:02ID:???得意先に重複なしのコードが割り当てられているのかどうかちょっと不安だけれど、
それも気づかなかったことにして
どういう形で実現しようとしているのか今ひとつ分からないけれど、
フォーム上に
[いつから]
[いつまで]
[どの得意先]
みたいな抽出条件用のテキストボックスか何かつけてボタン一発でやりたい、として
Private Sub ボタンクリック時
Dim MyStrQry as String
MyStrQry = "SELECT 日付, 得意先, 何ちゃら, ・・・ "
MyStrQry = MyStrQry & "FROM 元になるテーブルだかクエリだか "
MyStrQry = MyStrQry & "WHERE (日付>=#" & Me![いつから] & "#) AND "
MyStrQry = MyStrQry & "(日付<=#" & Me![いつまで] & "#) AND "
MyStrQry = MyStrQry & "(得意先='" & Me![どの得意先] & "')"
Me.RecordSource = MyStrQry
End Sub
0183NAME IS NULL
04/10/06 00:17:18ID:???FROM hoge
WHERE 日付 BETWEEN foo AND bar
GROUP BY 得意先
ORDER BY 得意先;
とかすればいいんでないの?
0184182
04/10/06 01:04:38ID:Kctj/Umqありがとうございます。
抽出用のフォームを作って更新すればいいんですね。
早速>>182-183をお手本にして作ってみることにします。
一応、得意先も商品もそれぞれ重複なしのコードをつけて
別のテーブルから引っ張ってくるようにはしています。
0186NAME IS NULL
04/10/07 09:49:54ID:???xp上でそのブックが正常に動作するんなら
98にMDAC 2.7 SP1 RefreshをインストールでOKのはずだが。
俺の場合、XPでビルドしたブックをWIN2000でアクセスと
連携させてるが、MDAC 2.7 SP1 Refreshのインストールで
フツーに動いてる。
01871192
04/10/10 17:38:26ID:Z2btVjPb0188NAME IS NULL
04/10/10 18:59:40ID:6LhXPlpH仕入-在庫-売上をアクセスで管理したく、
いろいろと奮闘しているのですが、
SQLで分からないことがあるので教えてください。
今月の売上分に対応する商品を、月初在庫数+今月仕入分-月末在庫分という
式で求めようと思っています。
月初在庫数というのは前月の最後に在庫を確認したときの数字を使おうと思うのですが、
SQLで日付に対してMAX()を使っても、結果がでません。
以下のようなSQLを書きました。
>SELECT max('日付')
>FROM 在庫履歴
>WHERE 日付 Between #10/1/2004# And #10/30/2004#;
WHERE FOMATを使い、何月かを入力したら、自動で前月の最終在庫確認の日と
その月の最後の在庫確認の日を出してくれるSQLというのはどう書くのでしょうか?
よろしくお願いします。
0189188
04/10/11 21:12:13ID:???select top 1 日付 from 仕入履歴;
というSQLを元にすればよいのではないかと思いました。
日付を軸に別のテーブルとくっつけるときは
副問い合わせとinを使い表現しようと思います。
selectでテーブルを出力し、さらに別のテーブルと結合したいのですが
これはunionを使うのでしょうか?
0190NAME IS NULL
04/10/11 21:35:50ID:???横につなげるならカンマでつなげるか JOIN 、縦に積むなら UNION。
SELECT top 1 a.日付 AS 前月日付, top 1 b.日付 AS 今月日付
FROM 仕入履歴 a, 仕入履歴 b
WHERE 前月日付<Dateserial(year(date()), month(date()), 1);
とかかな?Access 手元にないからわからんけど。
0191188
04/10/11 21:46:07ID:???自分はまだSQLの勉強を始めたばかりで、
アクセスにVBAや関数がどう使われるのか分かってなかったのですが
実例を見せていただき、ありがとうございます。
0192NAME IS NULL
04/10/16 17:47:17ID:A3CJ3oFV変更のあったプロシージャなどをリストとして出力してくれたりするツールってない?
0193NAME IS NULL
04/10/17 19:19:45ID:uH7rsvffAccess97で開く方法ってないのでしょうか?
とにかく今は、Acccess97しか使えない状況です。
VBで吸い出すことも考えたのですが、
mdbの中身を把握してないし、
コーディングしてる時間もあまりありません。
ツールとかあればお教えください。
0194NAME IS NULL
04/10/17 19:52:00ID:???失礼しました。
(193)
0195NAME IS NULL
04/10/17 23:56:06ID:???0196NAME IS NULL
04/10/18 22:39:33ID:jLcmhR3gベクターでツールを見つけました。
http://www.vector.co.jp/soft/win95/business/se258994.html
自分の目的が、
中のデータを取り出してオラクルに入れるだけなので、
一応、このツールでデータをエクセルに吐き出し、
それをコピペして、Access97のodbcオラクル・リンクテーブルに
入れました。
が、実際、コピペで入れてると、
型が合わないなどで、全部のデータを入れる事ができませんでした。
今日、職場のAccess2000の環境にて、
旧バージョンでのmdbファイル作成を試したところ、
同じく、型が合わないなどで、旧バージョンmdbの作成を断念しました。
結局、私の目的を難なく達成する場合、Access2000が必要なようです。
0197NAME IS NULL
04/10/19 07:52:38ID:???'-----mdbファイルを最適化.vbs-----
Option Explicit
Dim path1, path2, con1, con2, jet
path1 = "C:\最適化前.mdb"
path2 = "C:\最適化後.mdb"
con1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path1
con2 = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Engine Type=4;Data Source=" & path2
Set jet = CreateObject("JRO.JetEngine")
jet.CompactDatabase con1, con2
'Createobject("Scripting.FileSystemObject").CopyFile path2, path1, True
0198NAME IS NULL
04/10/19 22:37:36ID:???あれば教えてください、お願いします。
0199NAME IS NULL
04/10/19 22:57:46ID:???http://www.amazon.co.jp/exec/obidos/ASIN/4891008407/
http://www.amazon.co.jp/exec/obidos/ASIN/4891008431/
0200NAME IS NULL
04/10/19 23:34:00ID:???ありが�d探してみます
0201NAME IS NULL
04/10/20 17:58:42ID:???$ strings a.mdb > a.txt
$ strings b.mdb > b.txt
$ diff -c a.txt b.txt
0202NAME IS NULL
04/10/21 00:30:28ID:???Access2000からでもオラクルのリンクテーブルに貼り付けるときエラー出ると思う。
自分でもいろいろ試したんだけど、oracleのvarchar2型で長めのカラム
(256バイト以上とかの)への貼り付けでだめになるみたい。
もし同じ現象なら、コピー元のACCESSやEXCELで、そういうカラムに対応
するとこに半角スペース(なんでもいいから空じゃない文字列)を設定して
おいてコピーペーストするとうまくいったよ。
0203NAME IS NULL
04/10/21 23:09:25ID:???[選択クエリ]
SELECT 子.品目コード, マスタ.品目名, 子.数量, Weekday([親.日付]) AS 曜日
FROM (子 LEFT JOIN 親 ON 子.外部キー = 親.主キー) LEFT JOIN マスタ ON 子.品目コード = マスタ.品目コード
WHERE 親.日付 Between #7/1/2004# And #7/30/2004#;
[クロス集計クエリ]
TRANSFORM Sum(選択クエリ.数量)/(DateDiff("ww",#7/1/2004#,#7/31/2004#,選択クエリ.曜日)-Int(選択クエリ.曜日=Weekday(#7/1/2004#))) AS 数量の平均
SELECT 選択クエリ.品目コード, 選択クエリ.品目名
FROM 選択クエリ
GROUP BY 選択クエリ.品目コード, 選択クエリ.品目名
PIVOT 選択クエリ.曜日;
子テーブルの「数量」列を曜日別に平均 (数量の合計/任意の期間内での曜日の出現数)したいのです。
合計の場合は素直に Sum(選択クエリ.数量) で望む結果が得られます。
解決方法が分かる方が居られましたら、よろしくお願いします。
0204203
04/10/22 00:45:19ID:???mdbのクロス集計クエリでは無理?だと思ったので、adpを作成し、MSSQLのストアドプロシージャに
任意の期間に出現する曜日の回数を平均値の算出に使う「割る数」用パラメータとして投げ、
T-SQLで計算しました。
というか、質問するときに SQL Server 2000 + Access 2003 という環境を書いていませんでした。
すみませんでした。
0205NAME IS NULL
04/10/22 00:49:49ID:i7bEvDLp>>202
レスありがとうございます。
一応、Access2000(Office2000)を人から借りました。
Access97で出てた貼り付けエラーはAccess2000では出なくなりました。
今は、手動でデータをコピペするのに疲れまして、
一括でデータをコピーできる方法は無いか考え中です。
Dim mdb1 As Database
Dim mdb2 As Database
Dim mdb2_path As String
Dim table_name As String
Dim strSql As String
Dim lngLoop As Long
mdb2_path = InputBox("データコピー先MDBファイル", "C:\db2.mdb")
Set mdb1 = CurrentDb()
Set mdb2 = DBEngine.Workspaces(0).OpenDatabase(mdb2_path)
For lngLoop = 0 To mdb1.Containers("Databases").Documents.Count - 1
table_name = mdb1.Containers("Databases").Documents(lngLoop).Name
strSql = ""
strSql = strSql & "INSERT INTO " & mdb2.name & "." & table_name
strSql = strSql & " VALUES( SELECT * FROM " & mdb1.name & "." & table_name )"
mdb1.Execute strSQL
Next
こんなような事がしたいです。たぶんコレ↑のSQL文は動かんでしょう。
コーディングのアバイスや、VBAを使わなくても出来る方法等、ございましたらお教えください。
0206NAME IS NULL
04/10/22 22:14:45ID:???何もないところにFormを作って、その中にテキストボックスのコントロールを
追加するというのをVBAでやりたいのですが、可能でしょうか?
本を読み漁って見ましたが、フォームはCreateForm(DB,Name)で
可能みたいですが、その後のコントロール作成まで書いていませんでした。
0207NAME IS NULL
04/10/23 09:44:03ID:???CreateControl
0208NAME IS NULL
04/11/01 12:43:32ID:???HELPのIN句をみれ
0209NAME IS NULL
04/11/05 21:03:41ID:U4IQ8MN62人同時に使用したことによってひらけなくなりました。
バックアップファイルもなく、
修復もインストールもできません。
何か開く方法はありませんか?
0210NAME IS NULL
04/11/06 00:57:42ID:???(-人-)ナムナム
新しいMDB上からインポートで吸い出したり、ADO とかで差し込んでテーブルだけでも…
だめだろうナァ。
(-人-)♪バ〜ックアップを忘れずに〜、メモリが飛べばおしまいだ (あっ)
0211NAME IS NULL
04/11/06 01:55:03ID:???興味があるのでその壊れたmdbどっかにうpして!
調べるから。
0212NAME IS NULL
04/11/06 12:04:19ID:???0213NAME IS NULL
04/11/18 22:25:24ID:???顧客の担当者が部署を変わるたびに部署コードを
顧客の電話番号を入力して検索ボタンを押して待つ(十秒ぐらい)
↓
検索結果が表示されたら修正をする
↓
更新ボタンを押して待つ(十秒ぐらい)
と一件一件開いて更新しています(つД`)
おかしくないですか。
0214NAME IS NULL
04/11/18 22:37:19ID:???おかしい。
その担当者は前の部署の後任に顧客を引き継ぎするべきだ。
0215NAME IS NULL
04/11/18 23:17:45ID:???0216NAME IS NULL
04/11/18 23:28:36ID:???(ノД`)シクシク
0217NAME IS NULL
04/11/18 23:35:14ID:???0218NAME IS NULL
04/11/18 23:38:47ID:???0219NAME IS NULL
04/11/19 00:19:27ID:???200〜250人くらいが限界だな。それ以上になると列を増やせなくなるから特別なテクニックが必要になる。
0220NAME IS NULL
04/11/19 09:17:17ID:???おまえ素人だな。
テキスト型のフィールドに固定長でデータを持てば項目数の限界なんか一発で解決するぞ。
0221NAME IS NULL
04/11/19 09:38:24ID:???勢いで買っちゃったしなあ。月2000件ペースでレコード入力なんですが。。
0222NAME IS NULL
04/11/19 10:08:28ID:???普通に作れば全然大丈夫。
ただし、同時に複数箇所からデータ入力とかしないこと。
0223221
04/11/19 12:24:42ID:???てか、同時入力なんて恐ろしい事が出来るんですか?
ガクブルですね、勿論しません。
0224NAME IS NULL
04/11/19 12:32:51ID:waZhySUTいや、あんたがせんでも偶然他人がすることもあるだろ。
Access危険ってのはそのへんの制御があんまり効かないのも
一つの理由。
0225NAME IS NULL
04/11/19 18:23:24ID:VrSFpYy50226NAME IS NULL
04/11/19 18:29:57ID:LY57dq1wDelete
0227NAME IS NULL
04/11/19 22:01:38ID:???イパーイなんですが、これが基幹がAccessということですか?
それとももっと上位のデータベースを使っていても
Accessのファイルを使うということがあるんでしょうか?
全国の支店あわせて社員1000人ぐらいはいるとおもうんですが
Accessでもそこまでできるものなんですかね (゚д゚;)
0228NAME IS NULL
04/11/19 22:09:09ID:waZhySUT無理。絶対無理
0229NAME IS NULL
04/11/19 23:09:40ID:???工エエェェ(´д`)ェェエエ工
0230NAME IS NULL
04/11/20 04:26:09ID:RTyGiyyl0231NAME IS NULL
04/11/20 08:13:34ID:???>検索ボタンを押して待つ(十秒ぐらい)
て言うのは普通か?
0232NAME IS NULL
04/11/20 09:38:50ID:???同感。基幹でMDBいっぱい使ってデータ分散させてるってのはちょっと考えられないっす。
基幹DBは他にあって それを参照するために MDBからリンク張ってるか。
全然別個の業務に使ってるとかだろーね。 基幹がAccessではなく 枝葉がAccess
0233NAME IS NULL
04/11/20 10:37:18ID:???Oracleとか使っててもAccessファイルを使う
ということもあるんですか…。
でもそれをするメリットって何なんでしょうか?
> >検索ボタンを押して待つ(十秒ぐらい)
> て言うのは普通か?
普通じゃないんですか?(´・ω・`)
もっと待つことある…というより、1クリックごとに
フリーズしていると言ってもよいぐらい重いことも多いのですが、
枝葉とはいえAccessがからんでいることが一つの原因に
なったりしますか?
0234NAME IS NULL
04/11/20 10:49:26ID:???ACCESSなら素人でも開発できるからw
帳票はしばらく前までは最強の部類だったし・・・最近は知らん
0235NAME IS NULL
04/11/20 10:52:51ID:???なぜなら検索をACCESS内部で行う為にテーブルデータを一度全部持ってくるから
嘘のようだが本当の話・・・やっぱり最近は分からんがw
パススルークエリを使えばDBMSの機能を使えるが、ACCESSを使う意味が薄れる。。。
0236NAME IS NULL
04/11/20 10:59:40ID:???まともな処理速度にするための第一歩は
Accessを使うのをやめることだが、
人材がなければAccessをやめるのは難しい…
というかんじでしょうか。
0237NAME IS NULL
04/11/20 11:13:50ID:???0238NAME IS NULL
04/11/20 11:48:16ID:???システムがランクうpすれば、
エンドユーザーにとっては時間の短縮になるけど、
システム担当者の仕事はいままでより時間がかかるようになる
んですか?
0239NAME IS NULL
04/11/20 20:17:12ID:???最近のDBMSはメンテフリーと言っても嘘じゃない(ACCESSで処理できるような範囲なら)からシステム担当の負担は増えないと思う
ただ、クライアント1台ごとにライセンス料が発生するわ、保守に入らないといけないわで、(ACCESSと比べて)とんでもなくお金が掛かる
0240NAME IS NULL
04/11/20 21:15:14ID:???おまいら見た目で分かるんですか?
0241NAME IS NULL
04/11/20 21:38:49ID:???やっぱりお金ですね・゚・(ノД`)・゚・。
いろいろ教えてもらい、みなさんありがとうございますた。
0242NAME IS NULL
04/11/21 11:15:55ID:???分からない
0243NAME IS NULL
04/11/22 10:29:45ID:TYoF+TTMAccess2000を使い始めたぺーぺーなんですが、テーブル上のレコード件数を取得(表示?)する方法はないんでしょうか?
いまあるデータベースに27カテゴリーのデータがあっていちいち検索絞りででた結果のビューの
スライドバーで件数を確認して取得してます。
もぅまんどくさくてまんどくさくて…(ToT
自動でやれるようにしたいんですが、クエリなんか出来るんでしょうか?
それともVBで組まないとだめポ?
0244NAME IS NULL
04/11/22 10:38:42ID:???0245NAME IS NULL
04/11/22 11:07:13ID:TYoF+TTM0246NAME IS NULL
04/11/22 11:43:14ID:???0247NAME IS NULL
04/11/22 12:07:19ID:???DCountではダメなの
0248NAME IS NULL
04/11/22 12:34:12ID:???0249NAME IS NULL
04/11/22 14:49:22ID:TYoF+TTM27カテゴリごとに何件のレコードがあるかを一発で表示、もしくはテーブルにして
表のようにしたいんです。
しろーとには無理でしょうか?
0250NAME IS NULL
04/11/22 14:58:28ID:???データーベースファイル(MDB)はあまり大きくなってくると不安定になってくるようなウワサを昔聞いたのですが、
どれくらいのサイズまで大丈夫でしょうか?
現在3.5MBくらいです
0251NAME IS NULL
04/11/22 15:12:25ID:???27カテゴリって何だよ。
そのカテゴリとやらの考え方や何をどう数えるのかも説明せず
どうすればいいですか?じゃ誰も答えられん。
0252NAME IS NULL
04/11/22 16:52:03ID:TYoF+TTMごめんなさい。
01000から27999までの抜けのある番号を主キーにしたデータテーブルがあるんですが、
それらの上2桁が店舗番号になるんです。
つまり、14番店舗は14000〜14999まで範囲があって、その範囲のなかに番号を持つ
レコードがいくつあるかを、手作業で個別ではなく一括で取得したいと…
出来れば、新しいテーブルに01から27までのフィールドをつくってそれぞれ対応するレコード
件数を書いたテーブルまで作れれば…と思って勉強中なんですが、道はかなり遠いと思い
質問してみました。
よろしくお願いします。
0253NAME IS NULL
04/11/22 21:26:00ID:???FROM テーブル
GROUP BY 番号 \ 1000
ORDER BY 1
0254NAME IS NULL
04/11/23 16:23:35ID:???2GBまでならモウマンタイ。但し一つのテーブルのサイズが1GBを超えないように。
0255NAME IS NULL
04/11/23 20:24:27ID:neRorjd9インデックスの再構成とかクエリの効率改善とか。
ただ単にサイズの圧縮だけなら、記憶域に余裕があれば限界容量に近づいたときに
かけてやるくらいで、つまりほとんどの利用シーンでまったくかけなくても良いものでは
ないか考えたのですが…
0256NAME IS NULL
04/11/23 20:42:45ID:EO0kIJOS圧縮っつーよりデフラグに近いイメージだぞ。
0257NAME IS NULL
04/11/23 23:27:05ID:???>>クエリの効率改善
たぶんだけど、逆
最適化されたmdbのクエリは、使い古しでボロボロになったmdbのクエリより遅い
(ような気がする)
ただ、SQL文直書きの場合は別
以下、アホな素人の勝手な想像
クエリってのは初めて実行されたときにコンパイルみたいなことが行われている。
ゆえに2回目以降の実行は速い。
でも最適化されると新品に戻っちゃう。
SQL文直書きの場合は、どっちにしろ実行しながらのコンパイルなので、
新品だろうが中古だろうが関係ない。
間違ってるかな。
誰か詳しい人解説キボンヌ
0258NAME IS NULL
04/11/24 02:07:10ID:???mdbファイルを一旦消して作り直してる
0259NAME IS NULL
04/11/24 18:29:28ID:???元MDB
↓
テンポラリMDB作成(最適化処理含む)
↓
元MDB削除
↓
テンポラリMDB名を元MDBにリネーム
つまりMDBが別ファイルになるので,アクセス権を個別に設定している場合は
設定し直す必要がある.
0260NAME IS NULL
04/11/24 23:06:23ID:oskyx2hAシステムドライブと同じドライブにあるMDBだと、最適化を実行したユーザのみフルコントロールに
権限塗り変わるから端末を共用してる場合あとからきたユーザが使えなくなるのな。ドハマリしたよ…
NT4 までは良かったのにW2kから突然なってとても困った…
0261NAME IS NULL
04/11/25 16:17:40ID:oyLspmrqレポートを印刷するために、余白設定で上下を0にしたいのですが、
いくら0にしても6mmに戻ってしまいます。
ちなみにプリンタはNECのドットプリンタ700JXです。
Win98+Win2000のときには上手くいっていたのですが。。。
用紙はユーザー定義の用紙で、プリンタサーバ上で作りました。
1000インチ×1000インチ で余白0の設定です。
ちなみに、プリンタはNTのプリンタサーバにぶら下がってるネットワークプリンタです。
ACCESSとはちょっと無関係?かもしれませんが、
原因ご存知の方よろしくお願いします。
0262NAME IS NULL
04/11/25 17:27:13ID:7tC4W3je0263NAME IS NULL
04/11/25 19:54:16ID:???「印刷」「閉じる」の文字の書かれたボタンを追加する
ことはできますか?
自作のツールバーをドッキングさせたりはできない
ですよね?
0264NAME IS NULL
04/11/26 10:12:00ID:???プロパティのポップアップを「いいえ」にすればいいのでは?
0265NAME IS NULL
04/11/26 14:04:17ID:???私の場合、
・レポート用のツールバーを新規に作成し、当該レポートのツールバープロパティに設定
・レポートOpenイベントにレポート最大化コードを書く
・レポートCloseイベントにレポートを元のサイズに戻すコードを書く
ってなことをよくやります。
こうすればメインウィンドウにあるレポート用ツールバーが
あたかもレポートウィンドウにあるように見せかけることができます。
(レポート以外かは見えなくなっちゃうけど)
0266NAME IS NULL
04/11/26 14:21:17ID:???その方向でやってみます。
0267NAME IS NULL
04/11/26 22:16:02ID:???うろ覚えなのですが、確かプログラムで自動的に余白0にすることは
できなかったように思います。
(ACCESS 2003からできるようになったはずです)
余白0をプログラムでやるためには、Windows APIを使うとできたはずです。
その方法を解説しているホームページもどっかにあったはずです。
いいかげんなことを言ってたらすみません。
0268NAME IS NULL
04/11/28 10:58:53ID:ykSPN17q取り込もうとしたとき4割くらいの確率で
「ファイル"***.xls"をインポートするときにエラーが発生しました。
ファイルはインポートされませんでした。」
と出てしまいます。
特に対象としているxlsファイルを開いているとかしていないのですが、、、
何か原因分かる方がいたら教えてください。
0269NAME IS NULL
04/11/28 14:43:20ID:FuQWq6CJ表示して、選択したリストのみのレポートのページ
を表示できるようにするにはどうすればいいのでしょうか?
今の所リストを選択するまではできたのですが、
指定したレポートのページだけを抽出できません。
どなたかご教授お願いします。
0270NAME IS NULL
04/11/28 15:18:05ID:zaWAG4jcエクセルファイルのバージョンは?
マクロは?
パスワードは?
ていうか開ける?
0271ほよよ?
04/11/28 16:04:45ID:0EO2fi0Vデータインポートしたいんですけど、
「既存テーブル」のリストボックスが選択できないんです。
なんかコツがあるんでしょうか?
ちなみに、エクセルとアクセスの、フィールド数やデータ型は
一致させています。
0272268
04/11/28 18:16:21ID:ib0KDqeqAccess2000でExcel2003のファイルを開こうとしたからかな?
ノートPC買ったときに付録にWORD2003とExcel2003が付いてたのでこの2つだけ2003なんですがこれが原因ですか?
0273NAME IS NULL
04/11/29 02:01:41ID:???ttp://support.microsoft.com/default.aspx?scid=kb;ja;207878
0274NAME IS NULL
04/11/29 09:41:17ID:tn+gSIPb入力フォームを作る時に、「商品コード」を入れると「商品名」が
表示されるにはどうしたらいいでしょうか。
住所入力支援ウィザードというのがありますが、あんな感じで。
それぞれフォームののテキストボックスのコントロールソースを
「商品コード」「商品名」にすると、当然ながら連動しないのですが、
検索してもその方法しか見つからなかったもので困っています。
0275NAME IS NULL
04/11/29 12:00:41ID:???根本的に間違ってない?商品コードと商品名は1つのテーブルに
しないと思うのですが...
商品名テーブルに商品コードフィールドを追加してDLookupで
0276NAME IS NULL
04/11/29 12:42:56ID:???商品名テーブルの一意キーは何なのかと。
商品コードテーブルのフィールドは商品コードだけなのかと。
ただコードが縦に一列並んでいるだけなのかと
みかんが20581709
りんごが56182677
であることを、誰がどうやって保証してくれるのかと
ささ、飯喰って昼寝だ
0277NAME IS NULL
04/11/29 12:49:56ID:tn+gSIPb「別に存在」という書き方がおかしかったようですみません。
納品書などの入力フォームのデータテーブルとは別に、
「商品一覧マスター」のようなテーブルがある、という意味でした。
そこで「商品コード」をオートナンバーにし、「商品名」や「単価」などを
登録していっています。
その「商品一覧マスター」テーブルを元に、納品書などのフォーム
入力の時に、「商品コード」を入れると「商品名」が選択できるように
したいなと思っていたのですが…。
>>275さんの言うDLookupを使えばいいのかな。調べてみます。
0278NAME IS NULL
04/11/29 12:51:47ID:???話を省略しすぎだ。訳ワカメ。
商品マスターを入力する時の話なら、それは両方とも同じ
テーブルに入れる。(商品名も入力するし)
売上や仕入れを入力するテーブルの話なら、「商品コード」と
「商品名」の双方を含むクエリーを作成して、それをフォームの
レコードソースにするのがセオリー。
(商品コードを入れると商品名は自動的に出る)
初心者向けのAccess入門書には必ず説明がある筈なので、
入門書を買って来ることを強くお薦めする。
もしくは、サンプルのNorthWindデータベースを見て、自分の
希望に近い動きをしている部分がどうなっているか調べるとかね。
ただなー、コンボボックスで商品名を選択すると商品コードが
入力される(コードは選択時にしか表示されないが)パターンも
可能なんだがな。
>275
DLookup関数は、帳票フォームで使用されると致命的なまでに
遅くなる。
害虫^H^H外注が未完成で放り出したmdbを完成させるように
命じられた時、一応出来ている部分だけど異様に遅いのも何とか
してくれと言うので調べてみたら、帳票フォームでDLookup関数を
使っていた。
単票フォームなら、まだ良いけどね。DLookup関数を使う事自体が
悪いのではなく、害虫の奴のTPOが・・・
0279NAME IS NULL
04/11/29 13:10:38ID:tn+gSIPb分かりづらくてすみません。
まず、「商品マスター」には「商品コード」「商品名」の両方入っています。
そして売上や仕入れを入力する時(のフォームを作っていて)、「商品コード」と
「商品名」それぞれのテキストボックスを作り、「商品コード」に入力したら
「商品名」も連動して出るようにしたかったのですが、それの答えが、
>「商品コード」と「商品名」の双方を含むクエリーを作成して、
>それをフォームのレコードソースにするのがセオリー。
もしくは
>コンボボックスで商品名を選択すると商品コードが入力される
>(コードは選択時にしか表示されないが)パターンも可能
ということなのですね。
一応、エクスメディアの図解ACCESS2000基礎編を片手に
作っているのですが、もう一度よく読みなおすことにします。
サンプルNorthWindデータベースもじっくり研究してみます。
皆さん、ありがとうございました。
0280NAME IS NULL
04/11/29 13:30:13ID:???本支店間でデータを共有するとしたらどのような方法が考えられるか
教えて頂きたいです。(出来るだけコストを掛けない方法で)
MSDE+Accessで考えていますが、レスポンスとか悪くなりそうで・・・
初心者に毛が生えた程度だと思うのでお手柔らかにお願いします。
0281NAME IS NULL
04/11/29 13:48:31ID:???共有するのは全てのデータか、一部のテーブルだけか?
共有するデータに対する要求は参照だけか?更新もあるのか?
更新された場合、他へリアルタイムに反映する必要があるのか?
そうでなければどんなタイミングで同期を取るのか?
最低ラインこれくらいは決めておかないと。
どちらにしろ細かい事になっちまうんで、業務の面から話した方が早いかもなー
0282250
04/11/29 14:18:00ID:???まだ3MBくらいだから全然大丈夫そうですね
0283NAME IS NULL
04/11/29 15:36:22ID:???>281
ありがとうございます。
共有するのは最低限の一部のテーブルだけでいいはずです。
データは追加・修正・削除を行います。
業務内容として
受注・伝票の作成
納品書の作成
原価管理
請求書の発行
入金処理
その他
ってかんじでして1日の更新が100件程度になります。
もとのmdeファイルは私が作成した物ではないのですが、修正変更は私がしました。
Webも考えたのですが、Accessのレポートの機能がどうしてもはずせなくて・・。
LAN内ではMSDE+Accessで十分と思うのですが、
>255あたりにレスポンスのことが書いてあったので、
WAN経由だと遅すぎることになるのかな・・・
データのサイズが営業所毎にmdeで40MBとかなってまして
合計すると200MB・・・・
FTTH接続でも遅くなりそうで・・・・
0284NAME IS NULL
04/12/01 01:00:16ID:E2Io6v+G最繁時間帯の一時間あたり何件の更新要求があるか、更新時一件当たりの容量、検索処理数、
それで流れる一回あたりのデータ量をあわせて、WAN の帯域を必要以上に食いつぶさなければ
本店MSDE --WAN== 各支店AccessProject(ADP)
という構成でよいと思われ。
MSDE+ADP ならサーバがテーブルの結合から選択・射影までサーバがやるから、ネットワークを
流れるデータ量は検索結果のレコードセット分しかない。
AccessMDB(MSDE+MDEリンクテーブル) だと結合する全対象テーブルが転送されて、各端末で
結合などをするからネットワークに優しくない。
MSDE+ADP でなお検索で流れるデータ量が大きすぎるなら、レプリケーションを組んで本社に
パブリッシャ/ディストリビュータ(マスタ)MSDEを、特に転送量に問題のある支店に
サブスクライバ(バックアップ)MSDEを設置する。
転送量の多い支店は自分のところのサブスクライバMSDEを参照すれば負荷を減らすことが
できる。でも、この場合サブスクライバのデータは常に最新ではなくなるから注意。
0285NAME IS NULL
04/12/01 01:13:21ID:???文書ファイルの文章やインターネット上の文章をドラッグして選択し、
右クリックから選択文字列をデータベースで検索ということをしたいのですが
Access VBAでこれは可能でしょうか?
0286285
04/12/01 02:55:40ID:???右クリックメニューに「データベースから検索」というようなものを追加する事はできるか
ということです
どなたか是非教えてください。お願いします。
0287NAME IS NULL
04/12/01 10:10:55ID:???ありがとうございます。
今使用しているmdeをもとに作り直す予定なのですが、
もとのアプリはVBAで処理を全部を行っています。
実のところSQL Serverのビューとかストアドプロシージャとかいまいち分かっていません。
特に設定しなくても問題ないのでしょうか?
現在LAN内でMSDEサーバーを作成して移行作業中なのですが、
Windows認証だとレスポンスが悪すぎます。(接続するのに1分とかかかってしまう。)
SQL Server認証だとレスポンスは悪くはないです。
何か設定上の問題なのでしょうか?
どなたかご教授お願い致します。
0288NAME IS NULL
04/12/01 10:24:00ID:???レポートでコントロールを255以上できませんエラーで怒られました
レポートの内容は集計形式で、小計、中計、大計、総合計と
コントロールは貼り付けていったところ、最後の総合計あたりで
数の限界がきました。どうやったら回避ますか?
0289NAME IS NULL
04/12/01 11:24:24ID:???余白設定した領域に印刷する方法はないのでしょうか?
詳細の中に直線オブジェクトを配置する方法だと左右で
違うのを実装するのが大変なので、フォーマット時の
ハンドラなどでLine()で描画したいのですが。
普通にやると余白領域はクリップされてしまいます。
よろしくお願いします。
0290NAME IS NULL
04/12/01 12:57:37ID:???複数のサブレポートに分割するとかはだめ?
試したことないからちょっと怪しいけど…
うまくいったら結果報告キボンです。
0291NAME IS NULL
04/12/01 13:01:45ID:???あー、なるほどですね。
やってみます。
0292NAME IS NULL
04/12/01 16:49:58ID:MByc81pd0294NAME IS NULL
04/12/01 21:01:13ID:???取引先コード 取引先 企業コード・・・・
D345555 aaa 001
D345544 aab 001
D345555 bba 002
F345847 bbb 002
�@コンポボックスに企業コードを重複させずに表示させて
001
002
�Aそして001を選択すると別のコンポボックスに
aaa
aab
↑のように表示され
�Bそこで選択した取引先の情報がテキストボックスに表示される
上記のようなことをVBを使わずにできますか?
アドバイスお願いします。
0295NAME IS NULL
04/12/01 22:30:46ID:???0296294
04/12/01 23:46:33ID:???�@コンポボックスに企業コードを重複させずに表示させて
↑の部分がわからない・・・・何を使えばいいのですか?
0297NAME IS NULL
04/12/02 00:15:21ID:Ekcd2egYSELECT DISTICT 企業コード
0298284
04/12/02 00:23:45ID:???>今使用しているmdeをもとに作り直す予定なのですが、
>もとのアプリはVBAで処理を全部を行っています。
>実のところSQL Serverのビューとかストアドプロシージャとかいまいち分かっていません。
>特に設定しなくても問題ないのでしょうか?
設定しなくても使えるけど、mdb 共有よりもはるかに遅くなる。そんな使い方をするなら素直に
mdbを共有しとけってこった。ちゃんとインデックス張ればそれなりに早いぞ。それなりに。
ビューもストアドも、mdbでいうクエリをデータベース側に保存したもの。選択/射影/結合などを
データベースに実行させて、その結果のみを受け取ることでネットワークに流れるデータ量を
削減する効果がある。
ビューは普通の選択クエリ、ストアドはパラメータクエリや追加/更新/削除クエリなど
パラメータを与えたり行を返さないクエリがそれぞれ該当する。ストアドはちょっとしたプログラムを
作成できるからmdbのアクションクエリより高機能。
>Windows認証だとレスポンスが悪すぎます。(接続するのに1分とかかかってしまう。)
BDCやPDCがMSDEサーバのネットワーク外にない?
0299NAME IS NULL
04/12/02 13:31:02ID:???VBもよくわからないが。VBAはもっとサパーリです。
0300NAME IS NULL
04/12/02 16:55:15ID:???データベースウィンドウのテーブルの何もないところで
右クリックしてインポート
0301NAME IS NULL
04/12/03 00:03:24ID:???12月のデータは13月になってしまい抽出されません
どうしたらいいものか・・・
0302NAME IS NULL
04/12/03 00:24:18ID:???month MOD 12 + 1
0303NAME IS NULL
04/12/03 00:30:47ID:???0304NAME IS NULL
04/12/03 12:46:57ID:???month = month - 11
else
month = month + 1
end if
0305NAME IS NULL
04/12/03 19:51:04ID:???ありがとうございます!皆さんの式を
自分なりに考えて作ってみましたが上手くいきません。
生年月日のフィールドから来月の誕生日を抽出する条件なんです。
302の方、もう少し詳しい解説を頂けますか? よろしくお願いいたします。
0306NAME IS NULL
04/12/03 20:06:11ID:???0307NAME IS NULL
04/12/03 20:20:12ID:???>302の解説?ヘルプで「MOD」嫁
0308NAME IS NULL
04/12/03 22:49:50ID:???テキスト型、
昭和○○年○月○日
ここから月の部分を取り出したフィールドを作って→month(生年月日)、
来月が誕生日の人だけが抽出されるように条件をどうすればいいのか
考えているところです
0309NAME IS NULL
04/12/03 23:17:15ID:???print DatePart("M", cdate("昭和60年5月23日"))
5
0310NAME IS NULL
04/12/03 23:25:03ID:???クエリでとあるフォームの値+1で抽出するとか
0311NAME IS NULL
04/12/03 23:40:24ID:???ありがとうございます。初めて見る関数ですが今からやってみます。
>>310
それをやったら12月+1は13月となり、
1月の誕生日の人が抽出されませんでした
0312NAME IS NULL
04/12/04 00:26:41ID:???(´゚▽゚`)ヘェーcDateって和暦にも対応してるんだ。
DatePart("M", cdate(生年月日)) = month(date()) MOD 12 + 1
とかなるのかな。
#激しく重そうな悪寒
0313NAME IS NULL
04/12/04 09:50:49ID:???出来るようにして、前年度のデータはそのままどこかにボタン1つで残せるようにって
できます?その時に更新された次年度の時には、入力フィールドには前年度分はクリア
されてるようにしたいんですが…。
マジで困ってます。
ヘルプお願いします。ファイルを渡せれば一番わかってもらいやすいのですが
ここでは無理そうだし。どうしたものですか?
0314NAME IS NULL
04/12/04 10:00:40ID:???今テーブルを参照してるなら、選択クエリで今年の分だけ見せるようなクエリをつくって、それを
参照するように変えたらどうカナ?どうカナ?
SELECT * FROM hoge WHERE 日付>=dateSerial(year(date), 1, 1)
データ量が多くてあふれてしまうようなら物理的に移動する必要があるけど、そうでないなら
これで見かけ上今年の分しかないように見せられる。
0315NAME IS NULL
04/12/04 10:09:37ID:???テーブルにボタン1つで移動して、それをCDに焼いて保存したいみたいなんですよ。
その作業をするのも初心者の人が扱うから、ボタン一つでファイルそのまま別で保存して、
テーブルはきれいに初期化できないのかと考え中です。
一度、どこかにファイルをアップしますので、みていただけませんか?って
どこにアップすれば見てもらえるか、わかんないですが…。(泣
0316NAME IS NULL
04/12/04 10:34:22ID:???その MDB を CD に落とすと言うことか。
そうなら、プログラムから
新しい MDB を生成 -> 新しいMDBに向けて前年度分を SELECT INTO 〜
-> 現在のテーブルから前年度分を DELETE
若しくは
新しい MDB を生成 -> 新しい MDB に現在のテーブルの構造をコピー
-> 新しいテーブルに前年度分を INSERT 〜 -> 現在のテーブルから前年度分を DELETE
すればバカチョン操作も可能かな。新しいmdb作るの面倒ならモデルとなるmdbをどっかに
置いといてコピーしてやればよし。
制約やインデックス無しでただデータを別テーブルに移したいなら前者の
SELECT INTO 〜 を使って前年度のデータを適当なテーブルにポイポイ。
テーブルを事前に作らなくてもいいから簡単。インデックスとかも再現するには
SELECT INTO したあとで ALTER TABLE とか CREATE INDEX しないとアカン。
制約やインデックスも保持したいなら、後者のとおり元のテーブルをコピーして
内容を全て消したものを新 MDB に用意しておいて、これに
INSERT INTO 〜 で前年度のデータを INSERT すると。事前にテーブルを作る
手間があるけどインデックスとかちゃんと張った状態にできる。
0317NAME IS NULL
04/12/04 10:40:11ID:???0318NAME IS NULL
04/12/04 12:49:12ID:???神よ!できました! ご協力いただいた皆さん、本当にありがとうございます!
0319NAME IS NULL
04/12/07 16:41:04ID:???ツール→起動時の設定で「すべてのメニューを表示する」のチェックを
外してしまったのですが、起動時の設定の画面を表示させるにはどうした
らよいのでしょうか?
0320NAME IS NULL
04/12/07 19:27:29ID:???●Shift 押しながら開くとよいよいよい(例のアレ含む)
0321NAME IS NULL
04/12/07 19:59:55ID:z3NKJSUC97で作ったやつ開くとデータベースウインドウやらフォームやらが
タスクバーに複数表示されてしまうんですが、これはこういうものなんでしょうか
_____________________________________
|Microsoft Access| |○○ 21:10 |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
つまり↑(97)が↓(2002)みたいになるんですが
_____________________________________
|データベース ウィ...||フォーム1||フォーム2||フォーム3| |○○ 21:10 |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0322321
04/12/07 20:17:29ID:???オプションに項目がありましたね・・・
スレ汚しごめんなさい
0323NAME IS NULL
04/12/08 13:37:11ID:Piqvil6sとある条件抽出した結果をこのフィールドの番号の上位3桁(↑の場合‘142’。ほかにも‘149’‘201’といろいろある)
ごとに並び替えたい時ってどう指定すんでしょうか?
文字列抽出関数( getstr("1424A1",1,3) …"1424A1"の1番目から3文字を取り出すの意)みたいなのも見当たらないし…
0324NAME IS NULL
04/12/08 13:58:49ID:???0325323
04/12/09 08:14:36ID:YLsSSe+iまだまだヒヨッ子なもんで(^^;
調べてみます。
0326NAME IS NULL
04/12/09 11:27:45ID:???1レコードに100以上のフィールドがある為、フィールド毎に抽出してチェックしていく方法を取ると膨大な長さになってしまいます。
何か良い方法は無いものでしょうか?
int1 = RS1!フィールド1 'int型変数にRS1データベースのフィールド1のデータを代入
int2 = RS2!フィールド1 'int型変数にRS2データベースのフィールド1のデータを代入
If Not (int1 = int2) Then
flg=flg+1 'マッチングしなかったフィールドをカウントする
end if
↑みたいな照合を100フィード分する様なケースです。
0327NAME IS NULL
04/12/09 11:33:54ID:???If rs1("フィールド名") <> rs2("フィールド名") Then 〜
じゃあかんの?
一歩進めてForEachでFieldsを回せば、列数がいくらあろうと数行で済む。
0328NAME IS NULL
04/12/09 13:01:13ID:???早いレスありがとうございます!お陰様で解決しました!
0329NAME IS NULL
04/12/09 20:28:13ID:I8w4oeccsql文を勉強したいのですが
抽出条件に日本語を入れると
抽出できません。回避する方法を教えて欲しいです。
よろしくお願いいたします。
0330名無しさん@編集中
04/12/10 00:08:52ID:tbEhD8x/やることになりました。まったくの初心者からなのですが初心者向きの
テキストでよい本はないでしょうか。
0331NAME IS NULL
04/12/10 08:24:11ID:ZPm6RTeRいいと思います。これでおおよその概念を理解したら各種ブ厚い技術書などで
何をAccessでどうするには、こうする…といった事を学べばいいと思います。
0332319
04/12/10 16:54:30ID:???遅くなりましたが、ありがとうございました
0333NAME IS NULL
04/12/13 22:40:52ID:???0334NAME IS NULL
04/12/14 22:49:22ID:D72VyWAr0335見習
04/12/15 01:06:07ID:k4K3flzjデザインクエリで外部結合するのってどうしたらいいんでしょうか?
0336NAME IS NULL
04/12/15 01:11:21ID:???0337NAME IS NULL
04/12/15 01:12:11ID:???0338NAME IS NULL
04/12/15 09:36:17ID:???0339NAME IS NULL
04/12/15 10:38:04ID:???彼女にINSERT権限がありません
http://pc5.2ch.net/test/read.cgi/db/1057289721/
0340NAME IS NULL
04/12/16 00:02:50ID:???物理結合だな
じゃあ、漏れは論理結合だ
プログラマーのくどき文句を考えよう。
http://pc5.2ch.net/test/read.cgi/prog/1102083541/
0341NAME IS NULL
04/12/16 11:39:49ID:???なんとなく結合が高速で出来そうだが
0342NAME IS NULL
04/12/16 17:18:45ID:???発作であぼーん…
( −人−)合掌
0343NAME IS NULL
04/12/16 18:21:31ID:???FROM hoge, moge って書いとけ
0344NAME IS NULL
04/12/18 02:34:11ID:h2gNGJtdいくらぐらい貰ったらいいんだろ?
年商8,000万くらいの企業で、当方ただのpcオタク。
相場はどんなものか教えてエロイ人
0345NAME IS NULL
04/12/18 03:16:27ID:???毎日使い方の質問責めにあい、遅いと文句を言われ、
追加開発はロハでやらされ、バグが出ようモンなら徹夜で対処、
会社に損害与えりゃ下手すると賠償 →廃人まっしぐら
結論: 逃げろ
0346NAME IS NULL
04/12/18 09:33:50ID:Q/BQD6+3どこまで面倒見るかだけど
800万円くらいじゃね?
0347NAME IS NULL
04/12/20 01:02:18ID:DjaX5ZluVB6(DAO)+SQLで.mdbファイルにテーブルを作成する際、それと同時にフィールドの説明欄への
文字入力を行うためのSQLコマンドは存在するのでしょうか?
過去にどこかで見たような気がするのですが、必要になったとき探してみると見つからなくて…。
0348いなむらきよし
04/12/20 18:33:49ID:Be2dmnG60349NAME IS NULL
04/12/21 17:18:16ID:9oIOyQt+他人が作ったフォームに新たにフィールドの値を表示させるテキストボックスを作ったんですが、
そのテキストボックスにどのテーブルのどのフィールドの値を対応させる…とかいう設定が見当たら
なくて困ってます。
そのフォームはデザインウィンドウにした時、ツールボックスの『フィールドリスト』が選択不能(灰色)
になってます。
何がどうなったんのか、トホホ
0350NAME IS NULL
04/12/21 23:00:57ID:???0351NAME IS NULL
04/12/22 01:02:57ID:???0352NAME IS NULL
04/12/22 02:15:49ID:NFyyyNPRExcelなら単に上のセルと引き算すれば良いだけなんだが、Accessはまったく異なるよね?
他のテーブル(TOPIXとか日経平均先物など)も作成するので、日付データなんかは別テーブルに
した方が良い?
0353NAME IS NULL
04/12/22 02:33:31ID:???>株価の4本値のDBを作りたいんだけど、前日比はどうやって計算させたら良いの?
SQL使え。
>他のテーブル(TOPIXとか日経平均先物など)も作成するので、日付データなんかは別テーブルに
した方が良い?
お好きなようにしてくらはい。
0354NAME IS NULL
04/12/22 07:53:06ID:NFyyyNPR>353
> SQL使え。
簡単に言ってくれるじゃないか。
スキルが伴わないんだよ・・・
クエリのフィールドへ数式入れてみたんだけど、エラーが出て使えないのだ。
> お好きなようにしてくらはい。
らじゃ
0355NAME IS NULL
04/12/22 09:45:44ID:???どんな風に書き、どんなエラーが出たのか書きなよ。
別テーブルの同名フィールドの計算ならフィールド名の前に
当該テーブル名(ex:テーブルA!)を付ければ大丈夫だけど...
0356NAME IS NULL
04/12/22 09:55:45ID:990xE7a3ちなみにコレってプログラムか何かで、テーブルの各フィールド値を放り込んでる
とかってんでしょうか?(予想)
だったら、僕にはどーしよーもないやorz
0357NAME IS NULL
04/12/22 10:31:05ID:NFyyyNPRj_Data(日付):IDjD(主キー、オートナンバー)、Data(日付)
225t(日経平均4本値):ID225t(j_DataのIDjDとリレーション)、
225O(始値)、225H(高値)、225L(安値)、225C(終値)
<クエリ> :<フィールド>
jq(上記2テーブルから):Data、225O、225H、225L、225C、
225Ch(前日比を算出させたいフィールド)
225Ch:[225C]-(select 225C from 225t as A where A.ID225t=225t.ID225t-1)
上記のようにクエリのフィールドに入力して、
"[225C]-(select 225C from 225t as A where A.ID225t=225t.ID225t-1)"構文エラー
と出た。
ただ、上記の計算式は受け売りなので、どこが構文エラーなのかワカラン・・・
0359NAME IS NULL
04/12/22 12:24:21ID:???> 225Ch:[225C]-(select 225C from 225t as A where A.ID225t=225t.ID225t-1)
のサブクエリがおかしい
SELECT [225t].[225C] FROM 225t, 225t AS A WHERE A.ID225t=[225t]![ID225t]-1;
こうしてみてどうか?
0360357
04/12/22 12:58:34ID:NFyyyNPRありがと。
それって以下のようにしろってことだよね?
225Ch: [225C]-(SELECT [225t].[225C] FROM 225t, 225t AS A WHERE A.ID225t=[225t]![ID225t]-1)
試したら、「カレントレコードがありません」ってエラーダイアログが出た・・・
0361357
04/12/22 13:01:26ID:NFyyyNPR225Ch: [225t].[225C]-(SELECT [225t].[225C] FROM 225t, 225t AS A WHERE A.ID225t=[225t]![ID225t]-1)
0362NAME IS NULL
04/12/22 13:01:50ID:???0363NAME IS NULL
04/12/22 14:00:46ID:???225tの中にID225tフィールドの値が重複して存在する?
その場合はサブクエリ単体で起動(※)すると分かるけど値が
複数出るからエラーが出る。
※
SELECT [225t].[225C]
FROM 225t, 225t AS A
WHERE (((A.ID225t)=[225t]![ID225t]-1));
をSQLビューに貼り付けて見て複数行でれば問題あり
0364NAME IS NULL
04/12/22 14:31:54ID:???当日終値-前日終値をするの?
その逆?
0365357
04/12/22 15:11:34ID:???重複していない。
361は、(知識も無いのに)「もしや・・・」と思ってやってみただけなのでスルーで。
>>364
そう。
前日との差を出したい。
0366357
04/12/22 15:17:09ID:???前述のものでは出来ないよ
サブクエリで抽出した値が複数行に必ずなるから
225Cからは複数行の値は引けない
SELECT j_Data.IDjD, j_Data.Data, [225t].[225O], [225t].[225H], [225t].[225L], [225t].[225C], [225t]![225C]-Nz([Q1]![225C],0) AS 225Ch
FROM (j_Data LEFT JOIN 225t ON j_Data.IDjD = [225t].ID225t) LEFT JOIN (SELECT [225t]![ID225t]+1 AS ID225t, [225t].[225C]
FROM 225t, 225t AS A
WHERE (((A.ID225t)=[225t]![ID225t]))
) as Q1 ON j_Data.IDjD = Q1.ID225t;
長いけど...
0367359
04/12/22 15:19:02ID:???357は359ということで...
0368357
04/12/22 15:35:39ID:???うおっ!でけた!
ありがとん!!
ただ、表示される差(本日終値-前日終値)の桁が、小数点以下第2位だったり、
同11位だったりバラエティに富んでるんだけどw・・・・なぜ?
プロパティで表示桁数を指定しても駄目っす。
と、もう一つ。
今回は日経平均だけなんだけど、他に日経平均先物・TOPIX・TOPIX先物も
同様にする場合は、別のクリエとして作成した方が良い?
同じクエリに詰め込んでしまおうかと考えてたんだけど・・・(何せ無知なんで)
もし、同じクエリでもOK!ってな場合なら、同様の差を出すようにするのは困難?
・・・・って聞いてる時点で困難か?
0369359
04/12/22 17:11:28ID:???如何せんこちらは株には疎いので...
コンマ以下の数字も必要なの?
値の入っている(テーブルの)フィールドを通貨型にしてみれば?
(小数点以下4位まで可能)
> もし、同じクエリでもOK!ってな場合なら、同様の差を出すようにするのは困難?
SELECT j_Data.IDjD, j_Data.Data, [225t].[225O], [225t].[225H], [225t].[225L], [225t].[225C], [225t]![225C]-Nz(Q1![225C],0) AS 225Ch, [226t].[226O], [226t].[226H], [226t].[226L], [226t].[226C], [226t]![226C]-Nz([Q2]![226C],0) AS 226Ch
FROM (((j_Data LEFT JOIN 225t ON j_Data.IDjD=[225t].ID225t) LEFT JOIN (SELECT [225t]![ID225t]+1 AS ID225t, [225t].[225C]
FROM 225t, 225t AS A
WHERE (((A.ID225t)=[225t]![ID225t]))
) AS Q1 ON j_Data.IDjD=Q1.ID225t) LEFT JOIN 226t ON j_Data.IDjD=[226t].ID226t) LEFT JOIN (SELECT [226t]!ID226t+1 AS ID226t, [226t].[226C]
FROM 226t AS A, 226t
WHERE (((A.ID226t)=[226t]![ID226t]))) AS Q2 ON j_Data.IDjD=[Q2].ID226t;
こんな感じでやってく...分からないなら
サブクエリを使わないで
Q1クエリ
SELECT [225t]![ID225t]+1 AS ID225t, [225t].[225C]
FROM 225t, 225t AS A
WHERE (((A.ID225t)=[225t]![ID225t]));
Q2クエリ
SELECT [226t]![ID226t]+1 AS ID226t, [226t].[226C]
FROM 226t, 226t AS A
WHERE (((A.ID226t)=[226t]![ID226t]));
のようにクエリを作ってGUI(デザインビュー)で繋げた方(結合線)がいいぞ
0371NAME IS NULL
04/12/23 21:33:23ID:mmzK1fwbEXCELからのファイルのインポートに失敗して困っています。
具体的な方法としてはACCESSからインポート先のACCESSファイルを開き
[ファイル]-[外部データの取り込み]-[インポート]からインポート元となるEXCELファイルを指定しています。
フィールド数・レコード数が少な目のテストデータをインポートした時には成功するのに
実際の本番データでは「●●件のレコードが失われました」となります。
その失敗した件数が、[契約期間(始)][契約期間(終)]に日付データが入っているものばかりです。
EXCELのファイルのフィールドは次のとおり。
[顧客名][顧客カナ名][TEL][FAX]・・・[契約期間(始)][契約期間(終)]
もちろんACCESSファイルにも全く同じフィールドが存在します。
レコードは大量にあります(ファイルに因るが最高で500件くらい)。
このEXCELファイルの後の方のフィールド[契約期間(始)][契約期間(終)]は、表示形式を「2004/11/30」の日付形式にしているので
実際には日付のシリアル値が入っている事になると思います。
このフィールドはACCESS側でも日付形式です。
何か良い方法はないでしょうか?仕事にならなくて困っているのでどうかよろしくお願いします!
0372NAME IS NULL
04/12/24 08:54:05ID:d0I1mRl1アクセスの各ウィンド内に表示されるテーブルやクエリなどのデータ表示の
フォントを大きくしたり小さくしたりって出来るんでしょうか?
こまごまとしたデータやクエリのデザインなどでは字を大きくして見やすく、
ほんのすこしスクロールが必要な位のテーブルは字を小さくして画面内に収める、
とか出来たら便利か、、、
0373NAME IS NULL
04/12/24 09:31:19ID:???たぶんなのだが...
データの1列目には、[契約期間(始)][契約期間(終)]両セルともデータが
入っていない(もしくは日付型でない何かある)のでエラーとなるのでは?
xlsをリンクテーブルにしてみて確認してみては?
0374NAME IS NULL
04/12/24 17:18:09ID:ae30sZD8給料計算のレポートを作っているのですが、
・テーブルで時給を記入
・クエリで時給×勤労時間を計算し、給料を算出
として、
・レポートで時給と給料を記入
したいのですが、レポートウィザードで
・テーブルから時給を
・クエリから給料を
選択しようとしたら、
「選択したフィールドのレコードソースにアクセスできません。テーブルと、
そのテーブルを基にしたクエリのフィールドを選択した可能性があります。
もしそうであればテーブルかクエリのどちらかのフィールドだけを選択してください」
とエラーが出るのですが、
レポート1枚にテーブルとクエリの情報を両方載せることは不可能なのでしょうか?
0375NAME IS NULL
04/12/24 17:50:50ID:???クエリにも時給フィールドを追加してけばいいのでは?
0376NAME IS NULL
04/12/24 19:41:36ID:xpCRdUCq横書き住所のときは気にならなかったんだけど
縦書きでレポート作って出力すると
数字が横になったりハイホンが縦に入らなきゃ変なのに横になったりと
直接入力とカナ入力での違いの出力に激しく違和感があるんだけど
なにか改善策ってありますでしょうか?
0377NAME IS NULL
04/12/24 22:47:41ID:VbD8Zt5s縦書きの場合、数字を全角・ハイフンを半角で入力する。
同じ入力方式で、双方に対応させたいというなら・・・・・・・・
数字は全角で、ハイフンの代わりに「の」にするしかない・・かな。
0378NAME IS NULL
04/12/25 13:29:54ID:???ttp://www.google.com/search?num=100&hl=ja&inlang=ja&ie=Shift_JIS&oe=Shift_JIS&q=%90%94%8E%9A%81@%8A%BF%90%94%8E%9A%81@%95%CF%8A%B7%81@ACCESS&lr=lang_ja
0379NAME IS NULL
04/12/26 10:49:36ID:veR7i32Aちょっと問題が出た。
長くてスマソ
>>366 を元に以下の流れでクエリを作った。
テーブル名(225t→TSE)・フィールド名(ID225t→IDjD)の変更
>>366 を以下に編集。
SELECT j_Data.IDjD, j_Data.Data, [TSE].[225O], [TSE].[225H], [TSE].[225L], [TSE].[225C], [TSE]![225C]-Nz([Q1]![225C],0) AS 225Ch
FROM (j_Data LEFT JOIN TSE ON j_Data.IDjD = [TSE].ID_TSE) LEFT JOIN (SELECT [TSE]![ID_TSE]+1 AS ID_TSE, [TSE].[225C]
FROM TSE, TSE AS A
WHERE (((A.ID_TSE)=[TSE]![ID_TSE]))
) as Q1 ON j_Data.IDjD = Q1.ID_TSE;
225Chのフィールドの値。
225Ch: [TSE]![225C]-Nz([Q1]![225C],0)
ここで、クエリを簡潔にするために225C(前日差)のみとするために、Data・225O・225H・225Cをデザインビューから削除。
要はIDjDと225Chのみ。
これに前日比を出すフィールドを追加。
225R: [225Ch]/[TSE]![225C]
ここまで問題なく作業が進み、データシートビューでも正しい値が表示された。
SQLビューは以下。
SELECT j_Data.IDjD, [TSE]![225C]-Nz([Q1]![225C],0) AS 225Ch, [225Ch]/[TSE]![225C] AS 225R
FROM (j_Data LEFT JOIN TSE ON j_Data.IDjD = TSE.ID_TSE) LEFT JOIN [SELECT [TSE]![ID_TSE]+1 AS ID_TSE, [TSE].[225C]
FROM TSE, TSE AS A
WHERE (((A.ID_TSE)=[TSE]![ID_TSE]))
]. AS Q1 ON j_Data.IDjD = Q1.ID_TSE;
このクエリを225Gとして保存して、再度開いていも問題なくデザインビューで閲覧できる。
しかし、これを一度閉じてデータベースウィンドウをテーブルに切り替えた後、
再度クエリに戻りデザインビューで開こうとすると以下のエラーが表示される。
「デザインビューで、連結式 j_Data.IDjD = Q1.ID_TSE を表示できません。」
もちろんこの間にフィールド名の変更など一切行っていない。
なぜこのようなエラーが出るの?
0380357
04/12/26 10:53:30ID:???エラーが表示された後の記述は以下。
SELECT j_Data.IDjD, [TSE]![225C]-Nz([Q1]![225C],0) AS 225Ch, [225Ch]/[TSE]![225C] AS 225R
FROM [SELECT [TSE]![ID_TSE]+1 AS ID_TSE, [TSE].[225C]
FROM TSE, TSE AS A
WHERE (((A.ID_TSE)=[TSE]![ID_TSE]))
]. AS Q1, j_Data LEFT JOIN TSE ON j_Data.IDjD = TSE.ID_TSE;
なんで勝手に変更されんねん!!!
0381357
04/12/26 11:24:31ID:???クエリの書き換えをされないようにするにはどうしたらいい?
それとも書き換えされるってことは、元の構文がダメダメ?
0382NAME IS NULL
04/12/26 13:38:01ID:???「デザインビュー」で表示しようとすると勝手に書き換えるよ。
(そういう仕様)
それでエラーになるのは、複雑過ぎて処理できないんでしょうね。
UNIONクエリーだとデザインビューで表示する事が出来ないから
書き換えは無いんだが。
と言うわけで、手でSQL文を書き込んだ奴はデザインビューで
表示しない方が良い。
0383359
04/12/27 08:46:25ID:???382氏がいうとおり、SQL文を書き換えてしまうのはAccessのSQLビューの仕様らしい
サブクエリ使用時は特に
(****) AS Q1を[****]. AS Q1と書き換えるのでたぶんその辺を再度(****)AS Q1の
ように書き換えれば大丈夫かと...
だから、サブクエリを使わずに小クエリでやったら?と提案したわけ...
>369の「サブクエリを使わないで」以降を参照
0384NAME IS NULL
04/12/27 09:14:27ID:B7Xnonh+何がどう違うのでしょうか?
あと2004って発売予定ってあるのでしょうか?
0385NAME IS NULL
04/12/27 12:58:44ID:???Officeファミリ全体に言えることだけど、2002でXMLとの連携機能が搭載されて2003で強化された。
以下Accessの差異。これで全部じゃないけど。
2002で複数回のUndo,Redoに対応して生産性が向上した。
2002でピポッドテーブル、ピポッドグラフを扱うことが可能になった。
2002バージョンのファイル形式が追加されてレスポンスが向上した。(既定は2000形式)
2003でAccessにもスマートタグ機能が搭載されて操作性が向上した。
2003でプロパティやフィールドの継承が可能となり生産性が向上した。
2003でクエリ等オブジェクトの依存関係をAccessが憶えてくれるので保守性が向上した。
2005は .NET Frameworkベースの開発環境になる可能性がある、と海外のBlogで仄めかしがあった。
次期VB.NETからDBシステム構築関係の部分だけを抽出した状態で出てくるんじゃないかと思う。
実際のところは分からんけども。
0386385
04/12/27 13:02:42ID:???0387384
04/12/27 13:18:37ID:B7Xnonh+説明が出来なければ2003を買えといわれるだけですが、、
0388NAME IS NULL
04/12/27 14:28:11ID:UbXan2Tw| / / |文|/ // / (´⌒(´祭だ!!祭だ!!`)⌒`)
|/ /. _.| ̄|/|/|/ (´⌒(´∧ ∧⌒`)`)`)⌒`)
/|\/ / / |/ / (´⌒(´(,゚Д゚ )つ `)`)
/| / / /ヽ (´⌒(´⌒ (´⌒( つ |〕 /⌒`)⌒`)
| | ̄| | |ヽ/| 遅れるな!! ( | (⌒)`)⌒`)
| | |/| |__|/. ∧_∧ ⌒`).ドし'⌒^ミ `)⌒`)ォ
| |/| |/ (´⌒(´( ´∀` )つ ド ∧_∧⌒`)
| | |/ (´⌒(´( つ/] / ォと( ・∀・ ) 突撃――!!
| |/ ( | (⌒)`) ォ ヽ[|⊂[] )`)
| / (´ ´し'⌒^ミ `)`)ォ (⌒) |
|/ .  ̄ (_)`)`)
/
http://news13.2ch.net/test/read.cgi/news/1104088900/
0389NAME IS NULL
04/12/27 15:47:11ID:???2000と2003を使った俺の感想
2003のアクチがマンドクサ
0390NAME IS NULL
04/12/27 16:25:59ID:???0391385
04/12/27 17:43:32ID:???今必要なら今、最新バージョンを買う。
必要でなければ買わない。
自分で言っておいてアレだけど、正式発表もされていない製品を待つのは良くない。
現在VSTOが存在し、次期VisualStudioでOffice開発がサポートされるのを見ても
MSがOfficeファミリの開発環境を .NETベースにしたいのは確かなようだけど、
何故かAccessだけ置いてきぼりなんだよねw
.NETに対応したバージョン(出るならば)からAccessの世界に飛び込むのもアリかもしれないけど。
0392NAME IS NULL
04/12/27 21:48:28ID:???0393NAME IS NULL
04/12/28 01:16:39ID:???使ってるけど、駄目だと思ったこと無いよ。要はT-SQLをどう書くかでしょ。
何でそういう質問を思いついたの?
0394NAME IS NULL
04/12/28 16:04:35ID:???0395NAME IS NULL
04/12/28 16:05:49ID:SSo49SuO列挙型のEnumやSplit関数が使用できず困っています。
参照設定でなにかを指定しないといけないのでしょうか?
ご存知の方いましたら、ご回答よろしくお願いします。
0396NAME IS NULL
04/12/28 17:42:34ID:XZSeSs4G既存のAccess97で開発したシステムを、Access2000+SQL Serverで再構築を行っております。
mdbファイルからadp、DAOからADOにプログラム変更したのですが、リストボックスのWhere句での抽出条件処理(値集合ソース=クエリ)が機能しません。
SQL文は以下のようになってます。
SELECT dbo_tblDKeikan.KeikaID AS ID, dbo_tblDKeikan.KaisyaCode AS 番号,
(中略)
FROM dbo_tblDKeikan INNER JOIN
dbo_tblMKaisya ON dbo_tblDKeikan.KaisyaCode = dbo_tblMKaisya.Code
WHERE (dbo_tblDKeikan.KaisyaCode LIKE N'[forms]![frmKeikan]![cboKaisyaCode] & [%]')
AND
(dbo_tblDKeikan.ShinryouSyo LIKE N'[Forms]![frmKeikan]![cboShinryouSyo] & [%]')
ORDER BY dbo_tblDKeikan.KeikaID DESC
どなたか解決方法をご存知の方がおられましたら、ご教授ください。
よろしくお願いいたします。
0397NAME IS NULL
04/12/28 20:12:54ID:???LIKE N'[forms]![frmKeikan]![cboKaisyaCode] & [%]')
-> LIKE [forms]![frmKeikan]![cboKaisyaCode] & '%')
他のlike句全部同様に処置する。
0398NAME IS NULL
04/12/28 21:55:36ID:???>>何でそういう質問を思いついたの?
アップサイジングウィザード使って作ったADPをさわっていて思いつきました。
クエリに連結したフォームの使い方がさっぱりわからんので勉強してます。
0399393
04/12/29 10:58:50ID:???ADPを勉強するならPASSJの連載が解りやすいと思う。
http://www.sqlpassj.org/bunkakai/begin/series/s01/default.aspx
0400名無し募集中。。。
05/01/02 03:34:41ID:???→ → ∧
0401NAME IS NULL
05/01/08 04:11:37ID:???用語検索をしたときに
用語Aを検索>検索結果フォーム1にAの結果
用語Bを検索>検索結果フォーム2にBの結果
用語Cを検索>検索結果フォーム3にCの結果
用語Dを検索>検索結果フォーム1にDの結果
用語Eを検索>検索結果フォーム2にEの結果
・・・
のように検索結果を3つの検索結果フォームでマルチウインド表示し、3つ表示した時点で古い検索結果のものから
最新の検索結果に入れ替えるにはどのようにしたらよいのでしょうか?
どうぞよろしくお願いいたします。
0402NAME IS NULL
05/01/08 08:51:21ID:???「3つ表示した時点で古い検索結果のものから最新の検索結果に入れ替える」
としか言えんよ。
0403NAME IS NULL
05/01/08 12:09:54ID:STFU6DzG1 1
1 2
1 3
2 1
2 2
3 1
4 1
4 2
というようなデータがあってNo一つに対する枝番の最大値を求めたいのですが
Dmax文で抽出できるでしょうか?
↓こんな感じで抜き出したいのですが・・・。よろしくお願いします。
1 3
2 2
3 1
4 2
0404NAME IS NULL
05/01/08 13:17:49ID:???SELECT [No], Max(枝番) AS 式1 FROM テーブル名 GROUP BY [No];
0405NAME IS NULL
05/01/08 13:19:10ID:???じゃだめなの?
0406NAME IS NULL
05/01/08 13:20:40ID:???>>404 405 スマソ
0407NAME IS NULL
05/01/08 15:54:10ID:???ありがとうございました!
0408NAME IS NULL
05/01/10 14:28:54ID:Cb/ktuI3ファイルサーバーにデータを積むMDBを作成しました。(MDB1)
そのテーブルをリンクし、フォームとマクロを使って画面を作り、台帳を作成
しました。(MDB2)
MDB2を各ローカルへコピーし、複数人が使用するという使い方なんですが、
たまに
「○○.mdbは認識されません(MDB1の方)」と出て、
修復と最適化が必要となります。
また、それで直るケースと直らないケースがあり、最適化をかけると、主キー
設定した項目にだぶったデータや、「####」という意味不明な文字列になった
り、消えるレコードがあります。
これらはどういったことが原因で発生するのでしょうか?
Accessは2000と2003を使用する人が混在し、NTとXPも混在しています。作った
MDBは2000で作成しています。
0409NAME IS NULL
05/01/10 14:41:37ID:???> マルチポストですいません。
許さん。
どことのマルチなのか明記するように。
0410NAME IS NULL
05/01/10 14:44:33ID:Cb/ktuI3いや、書き方悪かったので書き直しましたが、 DB板自治・質問・雑談スレ (265)にもいる。
0411NAME IS NULL
05/01/10 14:57:08ID:???Accessと言うより、Jet Database Engineのmdbを複数人で同時に
使用するような仕組み、特にファイル共有でのそれは推奨されません。
データの読み書きの際に、データの排他処理を行うが、これが
アクセスしているPCそれぞれで個別に管理しているので、排他処理
自体が上手くいかない事がある。
書き込みのタイミングが上手い具合に一致すると排他処理が上手く
出来なくてmdbファイルが破損する。
データベースを格納する部分だけでもMSDEやSQL Serverに
変更することを強くお勧めする。
0412NAME IS NULL
05/01/10 15:15:01ID:Cb/ktuI3情報を見ると、ADOは2.8と2.6という差分が
VBAは6.04と6.00の差分があります。
これはトラブルの元でしょうか?
0413NAME IS NULL
05/01/10 15:16:20ID:Cb/ktuI3そうなんですか・・・。ありがとうございました。
みんなに、オプションの設定を一致してもらうようにはしているのですが。
それでも無理でしょうか。
0414NAME IS NULL
05/01/10 15:45:04ID:???>オプションの設定を一致してもらうようにはしている
詳しく
0415NAME IS NULL
05/01/10 15:54:24ID:Cb/ktuI3全般→名前の自動修正情報をトラックするチェック外し
名前の自動修正を行うチェック外し
詳細→規定の開くモード
共有モード
規定のレコードロック
編集済レコード
レコードレベルでロックして開くにチェック
です。これをコピーしたMDBに対して行ってもらっております。
です。
0416NAME IS NULL
05/01/10 17:12:41ID:Cb/ktuI3Excel側で以下の問題が発生します。何が問題が教えて下さい。
�@フィールド名が"□□□"と表示されます。
ただし、そのセルにカーソルを移動すると、内容は正しく表示されています。
�A1つのセルに表示しきれない文字数のデータがある場合に隣のセルの文字列が重なって表示されます。
双方とも、フォントタイプを再入力することによって、正しく表示されます。
0417NAME IS NULL
05/01/10 17:22:33ID:???それは排他処理を行うための設定だよね?そして、>>411には「排他処理自体が
上手くいかない事がある。」って書いてあるが・・・
0418NAME IS NULL
05/01/10 17:42:06ID:Cb/ktuI3いや、その排他をうまくきかせる手段として、設定はそろえているよって意味ですが、
それ以外に何か共通してマシン設定をそろえるべき項目があるのですか?
0419NAME IS NULL
05/01/10 19:51:42ID:1v7gpRzY0420NAME IS NULL
05/01/10 21:18:41ID:???> いや、その排他をうまくきかせる手段として
(どんな設定をしても) 「排他処理自体が上手くいかない」と言う日本語の意味がわかりませんか ?
0421NAME IS NULL
05/01/11 13:01:09ID:eXcZErlNじゃ、だめってことだ。
了解.
0422NAME IS NULL
05/01/11 22:12:59ID:???フィールドのプロパティで書式設定をすれば良い話では?
0423NAME IS NULL
05/01/13 03:27:57ID:uwPoRp0lテーブル名のインポートがリストに出てきませんがどうすればよいですか?
0424NAME IS NULL
05/01/13 09:02:59ID:???どのプロパティのことをいってるの?
変換の種類
定義名
テーブル名
ファイル名
フィールド名の設定
HTML テーブル名
コードページ
0425yo-ko
05/01/13 19:55:32ID:KcEKcyWW初歩的な質問で恐縮ですが物凄い勢いで教えて下さい。以下のような3つのテーブルを結合したいのですがうまく行きません。どうか助けて下さい。
テーブル:甲
+-----+-----+-----+
| A | B | C |
+-----+-----+-----+
| 1| 1| 600 |
| 2| 1| 200 |
| 3| 2| 500 |
| 4| 3| 800 |
| 5| 1| 300 |
+-----+-----+-----+
テーブル:乙
+-----+-----+
| A | D |
+-----+-----+
| 1| 100|
| 2| 500|
| 2| 800|
| 4| 300|
| 5| 200|
+-----+-----+
テーブル:丙
+-----+-----+
| A | E |
+-----+-----+
| 1| 500|
| 1| 600|
| 3| 300|
| 5| 700|
| 3| 900|
| 5| 100|
+-----+-----+
B = "1" の時の結果が以下になるようなselect文が書けません。
+-----+-----+--------+--------+
| A | C | sum(D) | sum(E) |
+-----+-----+--------+--------+
| 1 | 600 | 100 | 1100 |
| 2 | 200 | 1300 | null |
| 5 | 300 | 200 | 800 |
+-----+-----+--------+--------+
SELECT 甲.A, 甲.C, sum(乙.D), sum(丙.E) FROM 甲 LEFT JOIN 乙 ON 甲.A = 乙.A LEFT JOIN 丙 ON 甲.A = 丙.A WHERE 甲.B = 1 GROUP BY 甲.A ;
上記のように私なりに書いてみたのですが、以下のように合計値がダブってしまいます。
+-----+-----+--------+--------+
| A | C | sum(D) | sum(E) |
+-----+-----+--------+--------+
| 1 | 600 | 200 | 1100 |
| 2 | 200 | 1300 | null |
| 5 | 300 | 400 | 800 |
+-----+-----+--------+--------+
0426NAME IS NULL
05/01/13 20:11:12ID:???このスレはMicrosoft Access。スレ違いだ。
0427yo-ko
05/01/13 20:11:51ID:KcEKcyWWごめんなさい。よろしくお願いします。
0428NAME IS NULL
05/01/14 00:51:50ID:36mDG7eHAccess2000を使っていますが、クラスの継承はできますか?
例えば標準のボタンクラスを継承させて新メンバを設けたnewボタンクラスを作り、
それをフォームにペタペタ貼り付けていくとか。
あともうひとつ、関数にオブジェクトへのポインタを渡すことはできますか?
自前関数の引数にクラスオブジェクトを放り込んで、
そのクラスのメンバ関数を実行したりできるととても幸せなのですが。
0429423
05/01/14 00:54:46ID:???変換の種類 には 区切り記号付きインポート を選んでます。
現在定義しているテーブル名のリストがインポートとエクスポートの1種類づつ出てくると思ったのですが…
新しくテーブルを定義しても自動で出てきてくれません。
人から受け継いだファイルには1つづつあったもので
0430NAME IS NULL
05/01/14 01:40:26ID:36mDG7eHあれはテーブルを定義しただけではでてきません。
インポート/エクスポート定義は、それ単体で独立しているので、
テーブルとは別に定義のみ作成する必要があります。
作成方法は、
1.手動でインポートウィザードを出す。
2.左下に「設定」のボタンがあるので、これを押す、
3.次のダイアログで保存のボタンを押すと、作成できます。
ここでいぢることもできますが、まぁそこはフィーリングで。
0431423
05/01/14 02:23:00ID:???0432NAME IS NULL
05/01/14 02:41:00ID:36mDG7eH0434NAME IS NULL
05/01/14 22:13:32ID:???SR1 -> SP3 に更新しる
0435NAME IS NULL
05/01/16 22:56:21ID:???現在、以下の様なフィルタをかけて、フォームなりテーブルで表示したいのですが、うまくいってません。
(当然、私のレベルが低いのが問題なんですが。)
一つのレコードが、5つの似たようなフィールドを持っています。実際には元素記号が入るのですが。
例えば
ID 名称 元素1 元素2 元素3 元素4 元素5
1. プラスチック C O Ca Na Ba
2. 消しゴム C O B
3. ステンレス Fe Ni Cr
みたいな感じです。
(内容は適当に書いてます。)
これに、入力フォームをくっつけて、任意の元素記号を入力したらその元素記号でフィルタをかける
クエリを作成していたのですが、複数の元素記号を入力した時、そのいずれかが含まれるフィルタは
私でもどうにかかける事が出来ました。
ここでやりたいのは、仮に"C"と"O"と"Ca"を入力したら、上のテーブルのプラスチックだけをフィルタ
するようなクエリです。いずれかが含まれるではなく、レコードのどこかに、入力された項目全てが
含まれているものだけを抽出クエリです。(判りにくくて申し訳ありません。)
CとかOとかが決まった所に書かれていればいいのですが、O C Na Ca Baのように異なった順番で入力
されている物も、ヒットさせるようにしたいです。
色々探してみたのですが、なかなかうまく行きません。(上記の、いずれかが含まれるフィルタでも
結構悩んだと言うレベルです。)
悩んだ挙句、皆様の御知恵を拝借したいと思いまして書き込む事にしました。
どうぞ宜しくお願いします。m(__)m
(呼び方を間違って記述している所があるかも知れません。その際は御指摘下さい。)
0436NAME IS NULL
05/01/16 23:05:28ID:???SQL文の"SELECT"句の"AND"と"OR"を勉強して下さい。あと、テーブルの設計に
ついても勉強して下さい。急がば回れです。がんばって!
0437NAME IS NULL
05/01/17 01:24:55ID:d2Hp/LvvSQL文のSELECTの次に来るフィールド2つを変数化してVBA
でループさせることは可能でしょうか?
たくさんの項目から2つづとりだし、それぞれの組み合わせで他の項目
がどうなるか分析したいもので。
0438NAME IS NULL
05/01/17 02:49:50ID:6bIxb6Godb.fields.item(i)
next i
みたいなのでいいのか?
0439437
05/01/17 09:59:23ID:d2Hp/Lvvありがとうございます。初心者(あるいはAFO)なんで直接
テキストとして代入を試みてうまくいってませんでした。
438と手元の本、HELPなどで夜にでも再挑戦してみます。
フィールドを定義して呼び出し、変数としてループさせる
ということですよね?
0440NAME IS NULL
05/01/17 11:16:18ID:/nf658MC436の中に >あと、テーブルの設計についても勉強してください。
とありますが、実際、私がこのテーブルを設計すると
[元素構成] [構成物]
ID| 元素 ID| 名称
-------- -------------------
1 | C 1 | プラスチック
1 | O 2 | 消しゴム
1 | Ca 3 | ステンレス
1 | Na
1 | Ba
2 | C
2 | O
---以下略---
の2つのテーブルに分けます。その上で元素構成テーブル上で、
集合[C,O,Ca]の全てを元素に含む、そういうidを探すことになります。
これは、30年以上前RDBが提唱された直後から関係代数の割り算として
知られている演算で、実際にしばしば現われる参照です。
実は、私は気まぐれにここを覗いただけでの者で、肝心のACCESSや
それを呼び出している環境について詳しくないのでこの演算の
実現方法については、他の方のサポートを待ちたいと思います。
0441NAME IS NULL
05/01/17 11:34:27ID:/nf658MC[元素構成] [構成物]
ID| 元素 ID| 名称
-------- -------------------
1 | C 1 | プラスチック
1 | O 2 | 消しゴム
1 | Ca 3 | ステンレス
1 | Na
1 | Ba
2 | C
2 | O
---以下略---
さて、これでどうか。
0442NAME IS NULL
05/01/17 16:38:02ID:SRsHoSwzオプショングループの中にオプションボタンがあるのですが、
オプショングループの使用可能を常時"いいえ"にしています。
違うところのオプションボタンを選択したときのみ"はい"になるように
フォーカス取得後、喪失後のイベントプロシージャにコードを書き込んだのですが、
グレーアウトが直るだけで、中にあるオプションボタンが選択できません。
なぜですか?スレ違いかもしれませんが、お願いします。
0443NAME IS NULL
05/01/17 16:51:26ID:???オプショングループのフレームに対し行う
Private Sub 違うところのオプションボタン名_AfterUpdate()
If Me. 違うところのオプションボタン名9 = True Then
Me.オプショングループのフレーム名.Enabled = True
Else
Me.オプショングループのフレーム名.Enabled = False
End If
End Sub
な感じ...
0444NAME IS NULL
05/01/17 17:10:29ID:SRsHoSwzありがとうございます
早速やってみます。
0445NAME IS NULL
05/01/17 18:19:43ID:???SQL文の"CREAT VIEW"と"INNER JOIN"を勉強して下さい。
もう一息です。がんばって!
0446435
05/01/17 21:31:38ID:???アドバイスありがとうございます。現状のテーブルのまま簡単にクエリーで検索しようと思ったのが甘かったようですね。
なんとはなく、440-441さんの言われるようなテーブル構成はおぼろげながら考えていました。色々サンプル作って
勉強しながら実験してみたいと思います。
遅ればせながらSQL解説HP等を、参照していた所です。
"CREAT VIEW"と"INNER JOIN"ですね。早速、調べてみます。
その他、こう言った事知っておいた方がいいよとかありましたら、御指導いただけたらと思っています。m(__)m
(今まで、EXCEL VBAとVB.NET、C++builderはかなり使い込んでいましたが、データベース関係は初めてに近い
ので色々戸惑っている最中です。(苦笑)
今後とも宜しくお願いします。m(__)m
0447NAME IS NULL
05/01/18 20:36:17ID:???タブが半角スペース4つに強制的に直されてしまうのですが、どうにかなりませんか?
簡単な代入式が続く場合に、イコールの桁位置を統一させたいのですけど、
これも強制的に直ってしまうので、何か良い方法はないですか?
0448NAME IS NULL
05/01/18 20:49:49ID:???自分の心を入れ替える。これが一番。
あれに身をゆだねてしまえばそれなりに快適だよ。
プログラマたるもの、それぐらいの柔軟性がないと。
0449NAME IS NULL
05/01/19 00:39:14ID:???0450435
05/01/19 00:39:45ID:???事後報告です
おかげさまで、とりあえず、ちゃんと検索出来るようになりました。ありがとうございます。
リレーションちゃんと設定してテーブル作り直したら、クエリー操作だけでおっけですね。
SQL表示させると、INNER JOINも・・・。的確な助言のおかげで、自分の勉強にもなりました。
これでACCESSの使い方の概念が見えてきたかなと言う気がいたします。
後は、未入力の項目があった時の処理くらいですか・・・。Nz関数使うのかな?いや、それ
よりも・・まず、現存する既に作成されたテーブルを、分ける作業ですか。(笑)早速、EXCELに
エクスポートして、元素テーブルを作成するVBA作って変換作業していました。
また、お世話になる事もあるかと思いますが、今後とも宜しくお願いします。m(__)m
0451NAME IS NULL
05/01/19 09:18:32ID:???ツール>オプション>タブ間隔を変更するのではダメなの?
0452437
05/01/19 17:17:07ID:HqQNoClgオソレスですが、事後報告です。
フィールドの取得もできましたが、SQL文にVBAの変数を入れる形で
なんとかやりたいことはできました。ありがとうございます。
Dim Koumoku1 as String
途中略
.CommandText = Array( _
"SELECT TableA.`" & Koumoku1 & "`, 以降略
この``がAFOの混乱をまねいたようです。
0453NAME IS NULL
05/01/21 11:24:22ID:QYqmjmPHレコードソースのORDER BY句が無視されてしまうのですが
何か対処法ないですか?
0454NAME IS NULL
05/01/21 11:32:58ID:QAlrrp5B小文字する機能を無効にするには、どうすればよいのでしょうか。
0455NAME IS NULL
05/01/21 12:25:49ID:???半角スペースに置き換わることがイヤなのですよ。
>>453
あれはORDER BY句を変更する機能だからそれが普通なんだが...。
クエリで別に作ったら?
>>454
CapsLockをオンにすれ。
0456NAME IS NULL
05/01/21 12:47:37ID:???いや、二文字目までを大文字にしたいのに、勝手に小文字にされるのが
イヤなんです。
全角文字も使いたくないんです。
0457NAME IS NULL
05/01/21 12:57:23ID:???他のバージョンは知らんが2003だと、
ツール→オプションでスペルチェックのタブを選択。
「オートコレクトオプション」ボタンをクリック。
あとは自分で見てみ。
0458NAME IS NULL
05/01/21 13:15:05ID:???データソースをクエリで
ORDER BY フィールド1 にしています。
フィールド2順に右クリックで「昇順で並び替え」をしたとき
ORDER BY フィールド2 になってしまうが、
これを
ORDER BY フィールド2, フィールド1
にしたいのですが無理ですか?
0459NAME IS NULL
05/01/21 13:23:47ID:???感謝!!
046033
05/01/21 16:05:17ID:Slcbaq0V0461NAME IS NULL
05/01/21 18:08:13ID:???ORACLEの(+)が使えたらめちゃめちゃ簡単なのに・・・。
0462NAME IS NULL
05/01/21 18:37:56ID:???テーブルデザインでフィールドの順番を入れ替えれば、
範囲選択で複数フィールドで主キーを設定できるが、
フィールドの順番そのままというのはわからん。
パススルークエリでSQL書くとかいう方法もないわけではない。
>>460
できるよ。基本すぎて本買えといいたくなるが...。
0463NAME IS NULL
05/01/21 20:40:49ID:???よおーし決まった。
今日からお前のニックネームはけんさくだ!
0464NAME IS NULL
05/01/22 00:35:59ID:???けんさく、がんばれー
0465NAME IS NULL
05/01/24 15:26:06ID:???どうしても分からない部分あるので質問させて下さい。
|19|590607|
|20|030607|
上記のように日付項目が本来は1959/06/07というように一項目で表示させたいのです、
しかし、元のテキストではセパレータ"|"で分けられ、ACCESSにインポート後、
項目が二つに別れてしまいます。
考えた方法として、それぞれを文字型に変換して文字列として付加させた後に
日付型に変換する方法を考えたのですけど、ACCESSでどのように処理するのか
分かりません。
ACCESSにインポート後に日付型項目として一項目にまとめる方法があれば
それを教えていただきたいです。
よろしくお願いします。
0466NAME IS NULL
05/01/24 17:46:51ID:???フィールド1:1959
フィールド2:06
フィールド3:07
DateSerial([A]![フィールド1],[A]![フィールド2],[A]![フィールド3])
0467465
05/01/25 11:21:23ID:???フィールド1は数値型で西暦の上2ケタのみ
例)
19
20
フィールド2:はテキスト型で西暦の下2ケタと月、日
例)
590607
030607
です。
質問する前にも、DateSerialまでにもっていく方法が分からないという事で質問させていただきました。
すみません、よろしくお願いします。
0468NAME IS NULL
05/01/25 12:01:48ID:???|19|590607|
|20|030607|
でなく
|1959|06|07|
|2003|06|07|
こう切れませんか?
0469NAME IS NULL
05/01/25 12:04:42ID:???あるいは
フィールド1 & フィールド2でどうにでもなろうかと...
0470465
05/01/25 13:35:01ID:???Dim strA as String
Dim strB as String
Dim strAll as String
Dim strComp as String
Dim dtA as Date
strA = Str(フィールド1)
strB = フィールド2
strAll = strA & strB
↑
ここまではうまく文字列として認識できました。
ありがとうございます。
ここから
strComp = Mid(strAll, 1, 4) & "/" & Mid(strAll, 5, 2) & "/" & Mid(strAll, 7, 2)
dtA = CDate(strComp)
で処理しても
dtA = CDate(Format(strAll, "@@@@/@@/@@"))
で処理しても
「型が一致しません」
という事で変数型が一致しません。
cDate(文字列)ではDate型に変換してくれるという訳ではないのでしょうか?
0471465
05/01/25 13:47:30ID:???strAの西暦の上二桁の先頭にブランクがあり、文字列をうまく取得できなかったようです。
LTrimでうまく処理できました。
お騒がせしました。
ありがとうございます。
0472NAME IS NULL
05/01/25 22:08:59ID:0tu8LxKt入力フォームに10個フィールドがあって、どんどんDBに格納して行くとします。
その中を編集したいときに、主キーをある場所に入力したら、そのレコードの
内容を入力フォームの初期値をして入れる事は可能でしょうか?
0473NAME IS NULL
05/01/25 22:34:09ID:???VBAでゴリゴリコピーするべし。
速度を気にしないならDLookupを使うと簡単。
0474472
05/01/25 23:23:27ID:0tu8LxKtVBAの本を明日買って勉強します。(いいサイトがあったら教えてください。)
Java,C,Perl,Oracle の基礎は分かるので、VBAも何とか出来そうです。
今回、友達のお店(個人マッサージ店)の予約システムを作ろうと思っています。
(もちろんスタンドアロン)
予約は1日2件位、年700〜800位なので、Accessで作ろうと思ったのですが、
このスレを見ると、「業務システムをAccessで作る奴は氏んでくれ」と
書いてるようですが、小さいお店なので十分と思いますが、プロの方の
ご意見聞かせてください
0475NAME IS NULL
05/01/26 00:21:56ID:???>1日2件位、年700〜800位
手書きで十分。
0476472
05/01/26 00:28:15ID:YtsR0etBでも、確かに手書きで十分かもしれません。
只、お客様の住所録管理もしたいし、やっぱAccessで作ります
0477>>474
05/01/26 03:12:54ID:???技術的なことや安全性についてほぼ無問題として
>>友達のお店
ってのがたぶん一番の問題
義理人情の格安または無料サービスだとしたらもっと問題
「お、こんなこともできるんかい、だったら・・・」
な感じで泥沼にはまること確実
0478NAME IS NULL
05/01/26 21:39:46ID:???0479NAME IS NULL
05/01/26 22:36:10ID:???マジレスしていいですか?
Excelでよかんべ。
0480NAME IS NULL
05/01/28 03:16:19ID:???結構ACCESSってとこ多いべ
0481NAME IS NULL
05/01/28 21:32:45ID:6UZy3LdI'移動ボタンとレコード番号ボックスの表示制御
Me.NavigationButtons = False
はできたのですが、
マウスホイールでレコードが変わる、EnterでDBにInsertする。
の2つを無効に出来ません。
ご教授お願いいたします。
0482NAME IS NULL
05/01/28 22:31:51ID:???0483NAME IS NULL
05/01/28 23:25:48ID:6UZy3LdI非連結ホームの仕方がよく分かりません。
0484NAME IS NULL
05/01/29 09:40:25ID:???http://www.google.co.jp/search?hl=ja&q=%E9%9D%9E%E9%80%A3%E7%B5%90%E3%83%9B%E3%83%BC%E3%83%A0&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
0485NAME IS NULL
05/01/29 12:11:30ID:???http://search.naver.co.jp/search.naver?query=%94%F1%98A%8C%8B%83z%81%5B%83%80&where=nexearch
ウェブ検索 1-10件 (すべてのページから検索 / 日本語ページ:11538件 )
0486NAME IS NULL
05/01/30 09:49:15ID:FwOOJB5wテーブル作成クエリで作られたテーブル、データ型が全部テキスト型になってるわけだが
このデータ型って事前に変えておくことは出来ませんか?ルックアップ使いたいんですが・・・
0487NAME IS NULL
05/01/31 01:15:06ID:???EnterでDBにInsertするは、"AllowAdditions/追加の許可" プロパティ でどうにかならないか。
マウスホイールでレコードが変わるは少し自信ない。
"ScrollBars/スクロールバー" プロパティでもいぢってみれ。
0488NAME IS NULL
05/01/31 01:20:12ID:???フォームにコントロールいっぱいはりつけてたら、
タブオーダーが212までしか設定できないとか言われた。
せめて255くらいまではできてもいいだろ...。タブ移動自前でとりつけました。
public a(10) as new class1
エラー。配列・自前クラスはpublicにできません。
工エェ・ェエ工
コントロール配列作ったはいいが、イベントプロシージャを実行してくれない。
他のSubプロシージャやFunctionはVBAからアクセスできるのに、なんやねん。
0489NAME IS NULL
05/01/31 04:39:57ID:5vUT1RK2田中君 うに
山田君 うに
竹下君 さば
吉田君 いか
山田君 ざぶとん
となってるのを、
山田君 たこ うに ざぶとん
吉田君 いか
田中君 うに
・・・
とするには、どうしたらいいですか?
0490NAME IS NULL
05/01/31 05:34:40ID:???>吉田君 いか
>田中君 うに
という形で欲しいのは選択クエリなのかフォームなのかレポートなのか
0491NAME IS NULL
05/01/31 05:53:12ID:???0492NAME IS NULL
05/01/31 07:02:41ID:???ただ人によっては道はかなり険しいかも
ところで、たこうにざぶとんは一つのフィールドにまとめてぶち込んでしまうのか
それともひとつにつき1フィールド用意するのか
後者の場合フィールド数はいくつぐらい想定しているのか(フィールド数には限界があるわけで)
0493NAME IS NULL
05/01/31 12:26:05ID:cP8oOxbeAccess2003,WinXP
あるフィールド[備考](テキスト形式)にある文字列の中に、
あるフィールド[整理番号](テキスト形式)が含まれるものを抜き出す
クエリかSQLでの指定の仕方ってどうやるんでしょうか?
つまり、like "*1234*"とか実値ではなく、like "*"&[整理番号]&"*"みたいな感じがしたいんです。
↑
このフィールドにある文字列で
ちなみにこの指定では出来ないみたい
おながいします。
0494493
05/01/31 12:32:54ID:cP8oOxbelike "*"&[整理番号]&"*" で出来ました。
どうやらリレーションの設定に問題があったようでした。
すいません。
0495NAME IS NULL
05/01/31 13:04:00ID:JQ7c6wwTなぜか更新されません
デバッグでステップ実行すれば問題なく更新されます
また同じトランザクション中にINSERTやDELETEを入れると
こちらの方は問題なく追加、削除が出来ます
トランザクションをはずせば問題なく更新できます
この件お分かりになる方いらっしゃいましたら
ご回答お願いいたします
やはり一件づつ更新するしかないのでしょうか
???.BeginTrans
UPDATE TABLE_A INNER JOIN TABLE_B
ON TABLE_A.FIELD_A = TABLE_B.FIELD_A
AND TABLE_A.FIELD_B = TABLE_B.FIELD_B
SET TABLE_A.FIELD_C = TABLE_B.FIELD_C
,TABLE_A.FIELD_D = TABLE_B.FIELD_D
,TABLE_A.FIELD_E = TABLE_B.FIELD_E
WHERE TABLE_A.FIELD_A = 1
???.CommitTrans
0496NAME IS NULL
05/01/31 13:08:46ID:???特定業務用のアクセスで作成されたソフトを使っています。
この度パソコンの不調に伴い買い替えを検討しているのですが、そのソフトの元データ(インストールディスク)を
紛失してしまった事に気づきました。さらにそのソフトを購入した会社もつぶれているようで、会社名やソフト名で検索しても
でてきませんでした。ソフトは99年購入です。
このデータが無いと仕事ができませんので、なんとかできないものかとインストールフォルダを見るとアクセスのマークが
あったので、ものは試しとそのフォルダごと別のパソコン(アクセス2000インストール済み)にコピーしてみたのですが案の定ダメでした。
顧客の住所録はなんとかCSVで抽出できたのですが、肝心の仕入れ取引データがどうしてもできないので困っています。
以上のような状況なのですが私が試した丸ごとコピーの様な方法でなんとか新しいパソコンにデータを移行する方法は
無いものでしょうか?専門知識の要る様な方法でも頑張りますのでどうかよろしくお願いします。
0497NAME IS NULL
05/01/31 13:47:52ID:???エラーメッセージ等を詳しく。
そのフォルダ内にあった別のファイルは晒せる?
せめて拡張子とサイズだけでも。
0498NAME IS NULL
05/01/31 13:50:55ID:cP8oOxbeテーブルのデザインビューをプリントする事って出来ないのでしょうか?
てっとりばやくテーブルのフィールド構造をプリントアウトして検討会なんかでつかいたいんですが、
今のトコ手写しか、データシードビューのフィールド幅を詰めて印刷してます。
ども出来そうになくて困っているんですが、知ってたら教えてください。
機能としてなくても、こんな事でリストをつくってるってのもあれば教えてください。
よろしくお願いします
0499NAME IS NULL
05/01/31 14:05:44ID:???0500NAME IS NULL
05/01/31 14:24:49ID:cP8oOxbeありがとうございます。
さっそく試して見ます。
も一つ質問させてください。
管理テーブルの主キーフィールド[Number](オートナンバー型)で作ってるデータベースで、現在100件のデータが入ってるとします。
そこに、新たに5件(たとえば)のデータを追加します。
その追加データは管理テーブルの[number]を除く全てのフィールドと合致した形になっています。
で、クエリかSQLで追加をした時、その時点での管理テーブルの末尾[number]の次から自動的にナンバーを振る指定って出来るんでしょうか?
元データ 98, 日本太郎, ニホンタロウ, 東京都, 30, …
99, 本州花子, ホンシュウハナコ, 秋田, 27, …
100, 四国三平, シコクサンペイ, 高知, 45, …
追加データ 九州お通, キュウシュウオツウ, 熊本, 60, …
沖縄源三郎, オキナワゲンザブロウ, 11, …
↓
↓ 追加クエリ(SQL)実行
↓
新しいデータ
98, 日本太郎, ニホンタロウ, 東京都, 30, …
99, 本州花子, ホンシュウハナコ, 秋田, 27, …
100, 四国三平, シコクサンペイ, 高知, 45, …
101, 九州お通, キュウシュウオツウ, 熊本, 60, …
102, 沖縄源三郎, オキナワゲンザブロウ, 11, …
という具合に。
追加してからナンバーを打つのか、ナンバーを打って(ナンバーのみのレコードを作って)データを写すのか、
プログラムでならなんとでも出来るんでしょうが、その前にクエリやSQLで出来る用に作れとのご命令で…
単発クエリでもサブクエリ方式でも構いません。
0501495
05/01/31 14:45:38ID:JQ7c6wwTツール>解析>データベース構造の解析で出来るのでは?
>500
オートナンバーは最適化しなければ初期化されないはず
100件あるテーブルを全レコード削除しても1件目は101からになってしまいます
プログラムでやるしかないと思いますよ
0502NAME IS NULL
05/01/31 15:20:17ID:???不十分な文章ですいません。以下がフォルダの中身です。
Mscreate.dir 0kb
system.mdw 92kb
system1x.mdw 68kb
tgmapl.mde 23.672kb
tgmdata.mdb 6.08kb
tgmaplを開くと「データベース変換」画面が出てきて変換orそのまま開くを聞いてくるのですが
どちらを選んでも「MDFファイルを変換するか使用できません」と表示されます。
tgmdataを開くと「データベースtgmdataのオブジェクトの設定を変換出来ません」と表示されます。
ツールのデータベースの変換を使って顧客データは取り出せました。
よろしくお願いします。
0503NAME IS NULL
05/02/01 01:11:51ID:???いつものマターリとしたふいんきはドコにいったんだyo!
0504NAME IS NULL
05/02/01 04:51:27ID:???最適化はマクロでできないんだっけ?
>>498
MS-SQLServerがあればそっちにインポートしてやると全部テキストの命令文に直すことができる。
オラクルでもできるんかなぁ。
アクセスも全部テキスト文に直すことができればメンテしやすいんだけどねー。
0505NAME IS NULL
05/02/01 07:33:15ID:???0506NAME IS NULL
05/02/01 21:30:53ID:???DoMenuItem辺りのマクロで最適化も出来ると思います。
Access95/97での記憶なので、2000以降で出来るかどうかは
分かりませんが。
0507NAME IS NULL
05/02/01 21:34:02ID:???一覧表を取得できます。
TableDefsコレクションを併用すれば、一気に全てのテーブルの情報を取得することも
可能です。(システムテーブルまで取得されるので注意)
0508NAME IS NULL
05/02/01 21:36:04ID:???VBAで使う際に「DAO3.6」の参照を行う必要があります。
(TableDefsコレクション、TableDefオブジェクトはDAOのコレクション/オブジェクトの為)
0509NAME IS NULL
05/02/01 21:49:06ID:???97でメニューバーが表示されているならばマクロで最適化できるよ。
アクション キー送信
キー操作 %TDC
キー操作を代えれば2000でも動くと思われ
0510NAME IS NULL
05/02/01 22:41:59ID:???readするだけかぁ。書き換えることができるとメンテに使えるのになあ。
0511NAME IS NULL
05/02/01 23:57:30ID:???書き換えも追加も削除も出来ますよ。
慣れればテーブル作成クエリを使うよりも細かい事が出来ますし、
Access独自のプロパティをフィールドに追加することも。
0512NAME IS NULL
05/02/02 01:14:07ID:pFDAtAerたとえば、テーブルAのなかから該当する製品番号を全てだし、
その製品番号と一致する梱包番号を出す…みたいな
梱包テーブル T_box 製品テーブル T_item
T_box.梱包番号 T_item.製品番号
T_Box.発送先 T_item.製品名
仕分けテーブル T_mix
[梱包番号][製品番号]
A01 I01
A01 I02
A01 I03
A02 I04
A02 I01
SELECT T_box.梱包番号, T_box.発送先, T_item.製品名
FROM T_box, T_item, T_mix
WHERE (T_mix.梱包番号 = SELECT T_mix.梱包番号
FROM T_mix
WHERE T_mix.製品番号 = "I01" )
で、製品番号"I01"が含まれる梱包番号を出して、それらの梱包に含まれる全ての製品名を出すとか。
0513NAME IS NULL
05/02/02 04:41:46ID:???SELECT T_box.梱包番号, T_box.発送先, T_item.製品名
FROM T_box, T_item, T_mix
WHERE
T_box.梱包番号 = T_mix.梱包番号 AND
T_item.製品番号 = T_mix.製品番号 AND
T_box.梱包番号 = '101'
0514512
05/02/02 09:11:36ID:dhhRXb6Wとりあえずありが�d
サブクエリでなくとも出来るんだけど、聞きたいのが
値を複数返すサブクエリを指定する事が出来るのかどうかなもんで。
0515513
05/02/02 09:57:01ID:???0516512
05/02/02 14:38:40ID:dhhRXb6Wさっそく調べてみます!
0517NAME IS NULL
05/02/02 21:20:52ID:???機器のナンバーが変更掛かったりしてマジうぜぇ。
0518NAME IS NULL
05/02/03 08:48:02ID:SrVkfqtpAccessのSQLでテーブルの行を指定する事って出来るんでしょうか?
もし出来るのなら、指定の仕方を教えてください。
↑
テーブルのエクスポートエラーで、[エラーの内容]と[フィールド]とそれがある[行]が
出て来るんですが、出来ればこれらの行に相当する元テーブルのレコードのみを抜き出したいんです。
0519NAME IS NULL
05/02/03 13:13:35ID:SrVkfqtp以下のテーブルがある場合、
整理番号 … 会員番号, 変更元会員番号, 変更前会員番号,…
1 Null, Null, 1A01
2 1A33, 1A01, Null
・ ・ ・ ・
会員番号フィールドがNullの場合、そのレコードの情報は会員番号変更前の履歴とし(整理番号1)、
その履歴レコードには元の会員番号を変更前会員番号フィールドに書き込んでおきます。
で、新しく会員番号を振ったレコード(整理番号2)の変更元会員番号に変更前の会員番号を書き込んでおきます。
このとき、SQLやクエリ等で
以前会員番号があった会員(整理番号2を指す)の変更前のデータを、[変更元会員番号]と[変更前会員番号]で参照し、
現在の[会員番号(整理番号2のもの)][元の会員番号(整理番号2のもの)][過去の情報(整理番号2のもの)]…で
抽出表示させたいんですが、こういうことって出来るんでしょうか?
出来そうな気もするんですが、DBMSの構造概念から出来なさそうな気もします。
ちなみに整理番号とは説明の便宜上付けたものです。
よろしくお願いします。
0520NAME IS NULL
05/02/03 18:17:26ID:???0521519
05/02/03 22:00:51ID:Fjk1+cnX調べてみたました。
テーブルにラベルみたいなのをつけて指定することが出きるみたいですね。
意図した結果が得られました。ありがとうございます。
ところで、関数の説明やSQLの構文や基本的な使い方などの解説書はいろいろ出てんですが、
質問したような、構造的な概念みたい(基本知識…というかそれとは違う次元の)なのが説明されている
ものって何かいいのないんでしょうか?
うまく説明できませんが、Wordで文章作れても、Windowsを知らなければパソコンのエラーに対処できないみたいな。
0522NAME IS NULL
05/02/09 11:43:28ID:???http://pc5.2ch.net/test/read.cgi/db/1057509675/
http://pc5.2ch.net/test/read.cgi/db/1060690405/
のようなもの?
0523NAME IS NULL
05/02/10 10:59:08ID:???式ビルダのリストボックスでホイールを
回してスクロールさせたときの動きがどうにも気持ち悪いです。
何というか、原点を基準とせずに、スクロール後のイメージが上から降ってくる感じ。
たしかmac osの標準コントロールでもそんなスクロールしてました。
視線の移動位置が読めないので、使う度にイライラします。
これ普通のリストボックスに出来ないでしょうか?
0524NAME IS NULL
05/02/10 15:38:34ID:???確かに気持ち悪いねw
スライダクリックするしかないのでは?
まぁ、漏れは式ビルだ使わないから関係ない(ォ
0525NAME IS NULL
05/02/11 18:47:46ID:???0526NAME IS NULL
05/02/12 14:57:01ID:???OSwindowsXPPro
メモリ128MB CPU1133MHz
サーバー;ソフトSQLバージョン8.0
OS;windowsserver2000
この環境で鯖のSQLから引っ張ってきたデータを作業用PCのAccessでレポートとして抽出し、
そのレポートをSnapShot形式でエクスポートすると9割の確立でAccessが応答なしになってしまいます。
違う作業用PCでも確認したんですが同じようにとまってしまいました。
作業毎に応答なしになってしまい作業効率が非常に悪いです。
よい改善方法はないでしょうか?
0527NAME IS NULL
05/02/12 15:01:35ID:???広野忠敏&できる編集部著(2002)『できるAccess2002完全入門Windows対応』インプレス
はどない?
アマゾンURL
http://www.amazon.co.jp/exec/obidos/ASIN/4844316656/249-3607478-0544301
業者じゃないぞよ。
0528NAME IS NULL
05/02/12 19:01:28ID:???乙、業者じゃないとすれば著者?
0529NAME IS NULL
05/02/12 19:57:37ID:vrWiMy+n連結データとして参照できませんか?
0530NAME IS NULL
05/02/13 21:21:52ID:CnIPzHk4このコードの左3桁012で別のテーブルを指定し、右4桁3456がそのテーブル内のIDとなっています。別テーブル
のフィールド内容、数は機器により異なります。
これを一つのフォームで表示、選択できるようにしたいと思っています。
具体的には、ある機器を選ぶとそれに応じたフィールド名称とその詳細情報 が表示されるviewerとしての機能。
また、機器に情報を登録できるように、それら詳細情報を選択できる機能をつけようとしています。
【. 条 件 】 OS:winXP personal, access2000
■試したけどうまくいかなかった処理
外部キー012-3456のコードをleft3桁とright4桁に分離して、別テーブルのフィールド名称を
For C = 0 To rst.Fields.Count - 1
フィールド名称 = rst.Fields.Item(C).Name
Me.機器情報.RowSource = "フィールド名称"
Next
として取得し、別テーブルの詳細情報はSQL文で取得できましたが、これをリストボックス
に表示しようとしたところ、行き詰ってしまいました。ご教授よろしくお願いします。
0531NAME IS NULL
05/02/14 19:01:02ID:suYW2SF/よく掴めません。
Aテーブルのレコードを削除すると、
それに対応する、Bテーブルのレコードが削除されるように
するにはどうしたらいいでしょうか?
クエリを使うといいようなのですが、引数の渡し方が分かりません。
0532NAME IS NULL
05/02/15 09:21:10ID:vmY+cp7a鳥蛾
0533NAME IS NULL
05/02/15 15:55:49ID:9s6FnqA2[T_ABC] [T_RS] [T_123]
A A | 1 1
B A | 4 2
C B | 2 3
C | 5
[T_DE] D | 3 [T_456]
D E | 6 4
E 5
6
※[T_ABC]と[T_DE]はunion可能
[T_123]と[T_456]はunion可能
[T_RS]は[T_ABC/DE]と[T_123/456]を関連付けたテーブル
このとき、[T_RS]とそれぞれのテーブルに“参照整合性”を有効にしようとすると
出来ないってエラーが出ます。
なんでなんですか?
整合性は取れてると思ってるんですが、なんかトンデモない勘違いしてるんでしょうか?
…てかいまいちこの参照整合性って理解しきれてないかも
0534NAME IS NULL
05/02/15 16:14:52ID:???http://www.microsoft.com/japan/SQL/techinfo/selfstudy/Self_doc.asp
ここの [SQL Server 2000 と Access 2000 によるアプリケーション開発] にトリガの解説がある。
0535533
05/02/15 16:15:31ID:9s6FnqA20536533
05/02/15 16:47:39ID:9s6FnqA2__A_____A_|_1____1____
__B_____A_|_4____2____
__C_____B_|_2____3____
________C_|_5_________
[T_DE]__D_|_3__[T_456]
__D_____E_|_6____4____
__E______________5____
_________________6____
ずれたので、図のみ修正'_'はスペースとして。
0537534
05/02/16 01:44:24ID:???だったらDBサーバのテーブルに参照整合性制約を作る。
0538NAME IS NULL
05/02/17 22:34:35ID:LphK6wFP3つのテーブルがあります。
1:顧客マスタT 2:販売実績T 3:受注T
毎日お得意さんから配送希望の電話を受け、その番号を受注Tに入力したら、
顧客マスタTに登録されている住所などの基本情報と、
販売実績Tの一番最近販売した日付の単価フィールドを
配送伝票に印字するようにしたいのですが、、、
実際には、過去に販売した実績の日付全ての伝票が出てしまいます。
たとえばAさんが12月と11月に購入実績があると12月の単価の載った伝票と
11月の単価が載った伝票の2枚、配送伝票が出力されてしまいます。
クエリで過去の実績のフィールドに対してどういう数式で絞込みを
したらよいのでしょうか?
0539NAME IS NULL
05/02/17 22:55:40ID:???下のように二段階で取得すると良いと思う。
1. 販売実績Tから、その顧客の「最大」の販売日付を取得する。
2. 1で取得した日付の販売実績を取得する。
0540538
05/02/17 23:49:31ID:LphK6wFPおとついから始めたもので、思いつきませんでした。
ありがとう
と言って無事終わりたい所なんですけど、1の関数(恐らくMAX?)と
2のやり方がピンときません。 度々すいませんが、更にヒントを!
0541EXCEPTION
05/02/18 00:13:54ID:???訳あってADOでACCESS 2000(SP3)のVBAを書いてます。
フォームのボタンを押下したら任意のSQL文を実行し、
結果をサブフォームのデーターシートに表示したい
のです。
具体的なプログラムのイメージでは・・・
Private Sub cmdTest_Click()
dim sql As String
sql = "SELECT * from TABLE_1 WHERE id = 1234"
'このSQLを実行し、結果をcmdTestボタンと
'サブフォームのデータシートに表示する
End Sub
こんな感じです。
フォームの検索条件をユーザーが選び、ボタンを押す毎に
結果が変わるようにしたいのです。
つまり、SQLは、FROM句もWHERE句も*の中身(実際は
フィールドを指定する)も条件によって複雑に変える必要が
あるので、慣れたVBでベタ書きしたいのです。
ADOで接続しており、TextBoxやLabelにはRecordSetに取得
した値を表示させることに成功しています。ただ、VBAでサブ
フォームにSQLの実行結果を表示する方法が全くわかりません。
それはADOではできないとか、あるいは方法があれば是非
教えていただけないでしょうか。
----
OS/ Windows2000 Pro
Access/Access2000 SP3
0542NAME IS NULL
05/02/18 00:33:21ID:SJEL00obSELECT TOP 1 単価 FROM 販売実績T WHERE 顧客=取得したい顧客 ORDER BY 販売日付 DESC
というのはどう?
0543NAME IS NULL
05/02/18 04:47:18ID:vwBFQCuYWin NT+ Access + IIS + ASP でデータベースを使っておりますが
作り直したい・・そこで
WinXP(Pro) + Access + IIS + ASP での同一システム構築は可能でしょうか?
本屋の立ち読み知識ではこの組み合わせ自体が可能か否か良く分かりませんもんで
(300ギガ)なんて作った当時無かったもんでHDエリア拡張が目的です
0544NAME IS NULL
05/02/18 18:25:28ID:usCCHSXHmdb環境では問題なく動いていた、モジュールがエラーが出て動かなくなりました。
モジュールは別ウィンドのフォームのボタンのクリック時イベントに
DoCmd.ApplyFilter "フォーム名", " 受注番号= " & Forms!フォーム名]![受注番号検索]
と記述してあるのですが、ADPに変換後SQL接続環境で
”ApplyFilte/フィルタの実行”アクションに、実行できないフィルタ名が含まれています
とエラーが出ます。
単純に" 受注番号= 2222”と記述しても同じです。
ApplyFilterは使えないのでしょうか?
0545NAME IS NULL
05/02/19 17:48:10ID:jn/21WFBAccessにストアドファンクションはないみたいですが、
かわりになるものはありますか?
0546545
05/02/19 17:51:03ID:jn/21WFBselect 前月未請求額,今月発生額,今月入金額,今月請求額
from ****
みたいなクエリを作りたいのですが、
各カラムは、全てWHERE句以下が違うものなのです。
どうしても、ストアドファンクションを使いたいのです。
0547NAME IS NULL
05/02/19 21:33:05ID:???VBA
0548545,546
05/02/19 23:18:30ID:???ありがとうございます。VBAはまだ初心者です。
上記のクエリ結果をレポートで表示したいのですが、
VBAで処理をする、という事は
RecordSetをループでまわして、1カラムづつ処理をして、
新テーブルに書き込んで、
それをレポートにして、新テーブルを消すということになるのでしょうか?
ちょっと回りくどい方法しか思いつきません。
0549NAME IS NULL
05/02/20 00:00:52ID:???Private Sub Report_Open(Cancel As Integer)
Me.RecordSource = "select * from .... "
End Sub
0550NAME IS NULL
05/02/20 00:11:15ID:???>>547 は、ネタだろ。
まずどんな処理したいか書かないでストアドとか言ってるから馬鹿にされてると思うよ。
>>546
> 各カラムは、全てWHERE句以下が違うものなのです。
マジで質問してるつもりなら、テーブル構造と where の条件句を晒せ。
話はそれからだ。
0551NAME IS NULL
05/02/21 14:21:28ID:???Where句をダイナミックに変えるファンクション作って
>>549みたいにしたらええんちゃうん?
どんなツールもそうだけど、こういうマッピングがめんどくさいし、メンテも大変だな。
0552NAME IS NULL
05/02/21 19:18:34ID:TS7q3RdF数値型のフィールド一列だけ作ってテキトーに、3,2,6,5,1…といっていきますよね。で一度保存で閉じる。
次に開いた時、当然順番でない入力数字が見えますよね。
で、ソートして数字を順番に並べ替えます。
ところが、閉じる時保存せずにおくと、次開いた時またもや入力順のばらばらな数字列です。
ここで、
・データ内容、ソートしたかどうかなど関係なく、テーブルが作られた時の順番をテーブルの各行が持っている
のでないかと…
とすれば、これをVBAで扱うにはどういう方法があるんでしょうか?
サンプルコードとか教えて貰えれば助かります。
絶対出来ると思うんですけど…
0553NAME IS NULL
05/02/21 22:59:44ID:ii4DfBEB0554NAME IS NULL
05/02/21 23:41:47ID:???Open "TEST.MDB" For Binary As #1
Do While Not EOF(1)
Input #1, buffer
' ToDo
Loop
Close #1
0555552
05/02/22 10:48:38ID:j0GOjt4sサンクス
ちなみにそのテーブルに存在するレコード数とか、直接10レコード目を指定する
といった事は可能なんでしょか?
0556NAME IS NULL
05/02/22 16:06:12ID:xBCtWIX1VB での App.Path や ACCESS2000 での Application.CurrentProject.Path
などに相当するプロパティはないんでしょうか?
ご存知の方いましたら回答よろしくお願いします。
0557まあ、つりだろうが...。
05/02/22 22:11:13ID:???> 作られた時の順番をテーブルの各行が持っているのでないかと…
もちろん俺は中身を知らんけど、多分違う。
0558NAME IS NULL
05/02/22 22:33:53ID:WmubF3m/CurrentDb.Nameの最後の\の前までを見ればいいと思う。
0559NAME IS NULL
05/02/22 22:51:01ID:???意味わからん。
保存しなかったんだから
並び順が元のままなのは当然だろ。
0560NAME IS NULL
05/02/23 00:53:49ID:???あとからデータ改竄しても、すぐにバレちゃうんだぞ
0561552
05/02/23 08:12:36ID:cFlvfH1x分かりませんか?
フィールドなどこちらが見る・弄る事が出来るもの意外の物理的なレコード番号みたいなのが
あると思う(あるハズ)ので、それの参照と操作の仕方が知りたいのです。
いろいろ書籍ほふってみましたが、そういう事に触れている本がなかなかないもので
0562NAME IS NULL
05/02/23 11:47:10ID:e6b7dA+Nご回答ありがとうございました。
パス取得できました。
0563NAME IS NULL
05/02/23 21:01:09ID:???ttp://support.microsoft.com/default.aspx?scid=kb;ja;834927
んでよ、そんなもん参照して何するつもりなのよ?
0564NAME IS NULL
05/02/24 20:58:10ID:???挿入順序を格納するフィールドを作って自分で管理しな
0565561
05/02/24 21:51:33ID:ct1AqQa6インポートエラーやエクスポートエラーで、エラーが発生した「行番号」しかでないじゃないすか
だから、レコード内の各フィールド値に依存しない、物理的なレコード(行)指定の方法も知って
おきたくて…ですよ。
リンク先のサポート読ませていただきました。
内容自体は可能とも不可能とも触れておらず、追加順を示すデータを明示もしてないので???ですが、
だったら上記のようなエラーレポートは関連性のないものなのかな?
ただ、自分があのエラーレポートのエラー箇所行から、該当テーブルのエラー行を抜き出す方法を知らないだけか…
でも、やっぱりどこにもないし(見つけ出せない?)…
0566NAME IS NULL
05/02/24 22:26:09ID:???並び順を指定してインポートやエクスポートしてください。
0567NAME IS NULL
05/02/24 23:27:59ID:???こいつでそれを突き止め、Delete
またDLastで、こんどは最後から2番目に入力されたデータ取って
・・・
レコードがなくなるまでLoop
0568NAME IS NULL
05/02/25 02:06:47ID:AqKmYAT8どれのことでしょうか?
ご存知の方がいましたらご教示ください。
0569NAME IS NULL
05/02/25 07:37:40ID:???ボタンつーか、クエリの種類だな。
「テーブル作成クエリ」
0570NAME IS NULL
05/02/25 10:28:51ID:???一つの手としてなのだが
>テーブルが作られた時の順番をテーブルの各行
はオートナンバー型のフィールドを追加することで表面化する(と思う)
ので
一時的にテーブルに対して
ALTER TABLE テーブル2 ADD COLUMN ID COUNTER;
※IDフィールドをオートナンバー型として追加
利用後に
ALTER TABLE テーブル2 DROP COLUMN ID;
でIDフィールドを削除
で何とか出来ないか?
0571552
05/02/25 15:33:25ID:ORoi14cu打開策を提示してくれているのですね
ありがとうデス
自分で追加順のフィールドを作って管理するのはやり方はいろいろあると思います
何をしたいからそれが知りたいか…は特にありませんが、ACCESSのアーキテクチャとして
・物理的な行(レコード)指定の仕方{中身関係ない、その時点でのテーブルのn行目を指定したりする為}
・追加した順番を持つ内部物理データがあるハズ{前カキコでいった現象}→が知りたい、でもどこにもない
です。
あと、インポート&エクスポートで、エラーの内容とそのエラーがあるフィールド、行がテーブルとしてはじき出されるので、
エラーテーブルの各行の[エラー行]の値で、対象となるテーブルの行を抜き出すクエリなりSQLなり方法がないものか?…
(VBAでやれば可能なのは創造できるけど、そんな技術が求められるようなエラーテーブルなのか?)
依然、書店や知人、ググリでリサーチ中…いまだ分からず… orz
0572NAME IS NULL
05/02/25 16:00:34ID:???> 自分で追加順のフィールドを作って管理するのはやり方はいろいろあると思います
いやいや...追加順のフィールドを作るのでなく
出来上がったテーブルに「オートナンバー型」のフィールドがなくても
後からALTER TABLE(SQL)で「オートナンバー型」のフィールドを追加してやると
入力(現在並んでる)順のナンバー振られると思うのだが...
0573570=572
05/02/25 16:37:56ID:???インポートされたテーブル名:T1
Accessの吐くエラーテーブル名:T1_インポート エラー
エラー明細テーブル名:インポートエラー明細
Dim dbs As DAO.Database
Dim strSQL(2) As String
インポート処理
strSQL(0) = "ALTER TABLE T1 ADD COLUMN ID COUNTER;"
strSQL(1) = "SELECT T1.* INTO インポートエラー明細" & _
" FROM T1" & _
" WHERE T1.ID In (SELECT [T1_インポート エラー].行" & _
" FROM [T1_インポート エラー]);"
strSQL(2) = "ALTER TABLE T1 DROP COLUMN ID;"
Set dbs = CurrentDb
dbs.Execute strSQL(0)
dbs.Execute strSQL(1)
dbs.Execute strSQL(2)
dbs.Close
こんな感じか?
0574552
05/02/25 19:02:12ID:ORoi14cuおぉっ
やはりVBAしかないんでしょうね
SQLやクエリで出来ればてっとり早いと思ったんですが…
建設的なレスありがとうございます。
コードはVBAで処理タスク作る時試用させて頂きます。
0575570=572
05/02/26 01:41:53ID:???>やはりVBAしかないんでしょうね
>SQLやクエリで出来ればてっとり早いと思ったんですが…
はにゃ?
ただクエリを実行させてるだけだよ?
strSQL(0)とstrSQL(2)はデータ定義クエリ
strSQL(1)は単なるテーブル作成クエリ
0576NAME IS NULL
05/02/26 11:57:34ID:???0577NAME IS NULL
05/02/27 00:14:46ID:???> ・追加した順番を持つ内部物理データがあるハズ
何をもってそう信じているか知らんけど、そんなものはない。
そういうのが欲しければ、自分でそういうフィールドを持て。
0578NAME IS NULL
05/02/27 01:27:30ID:???あるんじゃないかな?>570でもチラッと書いたけど
ここでもそれらしき事は書いてあるし...
ttp://www.f3.dion.ne.jp/~element/msaccess/AcTipsTblReNumberAutoNumFld.html
0579NAME IS NULL
05/02/27 02:39:58ID:???> ここでもそれらしき事は書いてあるし...
| オートナンバー型フィールドの存在しない既存のテーブルに後から
| オートナンバー型フィールドを追加した場合、データの格納順にカウ
| ントアップされていくものと考えられる。
^^^^^^^^^^^^^^^
まあ、信じるも信じないも君次第なんだけど...。
少なくとも俺なら信じない。
もし、上の記述が正しいとしても MS がいつそういう仕様を変更する
かわかったもんじゃないし、そもそもそういうこと (=登録順序を管理)
したければ自分でやればいいだけだから。
0580NAME IS NULL
05/02/27 12:32:15ID:???追加した順番と格納されている順番ってことね。
んでいつ変わるかもしれない格納順にこだわっても意味ないと思う。
0581NAME IS NULL
05/02/27 12:53:28ID:???サブフォームを帳票フォームにしていて、7個以上は追加出来ないようしたいのですが・・
0582NAME IS NULL
05/02/28 11:24:41ID:???BeforeInsertでレコード数を確認しるかAfterUpdateで7件入力されたならば
AllowAdditionsを変更するでどう。
AllowAddtionsをいじるときは削除されたら元に戻すことも忘れずに。
0583NAME IS NULL
05/02/28 23:12:33ID:???ありがとうございました。
If CurrentRecord >= 8 Then
MsgBox "7個以上の注文は入力できません。", 48
AllowAdditions = False
End If
でいけました。
0584NAME IS NULL
05/03/01 20:25:44ID:9ArRh4Ztなどと確認ダイアログがいちいち出てくるんだけど、これを前部自動で「はい」を押したことにする
設定ってどうするんでしょうか?
0585NAME IS NULL
05/03/01 20:53:32ID:???普通は確認ダイアログを無効にすることを先に考えないか?
0586NAME IS NULL
05/03/01 22:48:26ID:X+S0zsCJDoCmd.SetWarnings False とかな
0587NAME IS NULL
05/03/01 23:08:26ID:d25DDS8t>マクロを組んでてSQLの実行とかすると・・・
恐ろしいことしてるな。
0588NAME IS NULL
05/03/02 09:03:09ID:???1.マクロのアクション「メッセージの設定」を「いいえ」に
2.ツール>オプション>編集/検索>確認のチェックを外す
のいずれか
0589NAME IS NULL
05/03/03 09:02:04ID:3fVA1RLD0590NAME IS NULL
05/03/03 09:04:00ID:3fVA1RLDマクロのアクションに『キー送信』があるから、それを該当する「SQLの実行」の前に必要数入れて
「y」を設定しておけば、キー入力があったということで処理できる
0591NAME IS NULL
05/03/04 19:48:09ID:dkcRg06Fキー送信(SendKeys)は不安定ないのでなるべく使わないほうがいい。
98SEでは動くが(Win)2000ではダメという事例がイパーイあるから
0592NAME IS NULL
05/03/04 19:49:05ID:dkcRg06Fなので・・・○
0593NAME IS NULL
05/03/05 17:54:32ID:3r2dBU/Rvalue1, valueA
value2, valueB
value3, valueC
のようなテーブルから、
ある条件で、 2番目のレコードを選んだときに、
クエリ結果を
value2
valueB
のように、別行として結果を出すには
どうすればよいのでしょう?
何かヒントがあればお願いします。
0594NAME IS NULL
05/03/05 20:29:46ID:???UNIONする。
0595NAME IS NULL
05/03/05 22:43:35ID:???ありがとう。
そうか、UNIONならできそう。
0596NAME IS NULL
05/03/07 08:18:16ID:hgAoJulF0597NAME IS NULL
05/03/07 09:37:35ID:???テーブル作成クエリ。
0598596
05/03/07 13:21:05ID:hgAoJulF0599596
05/03/07 13:24:29ID:hgAoJulFどうやって?
SELECT * FROM T_sample1
union
SELECT * FROM T_sample2
(T_sample1とT_sample2は同じ構造)
で出したビューをテーブル作成クエリにする場合、どういうSQL文になるの?
ちなみにメニューからテーブル作成クエリにしたら作ったunion SQL が消える。
出来るとしたら、やり方教えてー
0600NAME IS NULL
05/03/07 13:31:53ID:???SELECT * INTO [作成したいテーブル] FROM [ユニオンクエリ]
0601596
05/03/07 13:41:26ID:hgAoJulFなるへそ
出来た
[ユニオンクエリ]の箇所を()で囲まなければならないのね
ありがさう
0602NAME IS NULL
05/03/07 14:00:54ID:???SQLをそのまま書くならね。
別クエリにしてクエリ名を書く方が便利っぽいけど
まあ好きずき。
0603NAME IS NULL
05/03/09 23:33:32ID:AcZJqars変えたいのですが、クエリでできますか?
たとえば、性別で、
値が "M"だったら、レポート上で「男」
NULLだったら、レポート上で「不明」
とかです。
0604NAME IS NULL
05/03/09 23:36:23ID:???iif とかは?
クエリじゃなくてもレポートでやればいいような気がするけど・・・
0605NAME IS NULL
05/03/09 23:45:45ID:???すみません。もう少し具体的にお願い。
レポートの該当フィールドで式ビルダで書くということ?
0606NAME IS NULL
05/03/10 00:15:47ID:???=Iif(IsNull([性別])=True,"不明",Iif([性別]="M","男","女かオカマ"))
と書く。
0607NAME IS NULL
05/03/10 01:05:20ID:???0608NAME IS NULL
05/03/10 07:44:11ID:W2+eHHUk出席チェックボックスがあるとします。
非連結フォームで、チェックボックスをチェックしたかどうかを
DBに入れたいんですが、
INSERT INTO TABLE名 (出席) VALUES 出席.value
では、チェックしてないときに、NULLがはいってしまいます。
INSERT INTO TABLE名 (出席) VALUES NZ(出席.value,0)
にしても、
「
追加クエリですべてのレコードを追加できません。
型変換エラーのため、、1個のフィールドをNULLに設定しました。また、0件の
レコードで、キー違反、0件のレコードでロック違反、0件のレコードで入力規則違反
が発生したため、レコードを追加できませんでした。
アクションクエリの実行を続行しますか?
このエラーを無視し、クエリの実行を続行するときは【はい】を
クリックしてください。
これらのエラーが発生する原因については、【ヘルプ】をクリックし、
表示されるヘルプ トピックを参照してください。
」
という、システムエラーが発生しました。
ググっても、解決できません。助けてください。
0609NAME IS NULL
05/03/10 09:29:56ID:???そのクエリはどこに書いてんだ?
0610NAME IS NULL
05/03/10 14:09:55ID:pU7VGCAfレポートで和暦にして出すのはどーするの?
フォームでは、書式で指定すればいいけど、、、
0611NAME IS NULL
05/03/10 14:27:12ID:???いろいろ方法はあるが、例えばテキストのところに
=Format([フィールド],"フォーマット")
と書くのはどうだ?
0612NAME IS NULL
05/03/10 15:10:34ID:6FQqkgu+ロックタイプについて質問があります。
rs.Open "SELECT * FROM Table WHERE(AAA=1);", cnn, adOpenKeyset, [LockType]
rs("BBB") = 100 ──────(1)
rs("CCC") = 200
rs("DDD") = 300
rs.Update ─────────(2)
[LockType]をadLockOptimisticにすると(2)でロックがされるところは確認できました。
で、(1)の段階でロックをかけたいのでadLockPessimisticにしてみたのですが、
(2)でロックされてしまいます。
何か良い対処方法は無いでしょうか。
0613NAME IS NULL
05/03/10 16:56:44ID:???トンクス。
和暦のフォーマットで、
"gggeemmdd"はいいけど、
"gggemd"だと区切りがヘンになるぅ〜。
0614608
05/03/10 17:59:06ID:W2+eHHUk各テキストボックス、チェックボックス、オプションボタンを入力して
「書き込み」ボタンを押されたら、DBにInsertするプログラムです。
insertSQL = "INSERT INTO 団体 (利用日,公演時間,ツアー名,大人,中高生,子供,代表電話番号,
担当者,金額,支払い方法,支払日,一般Op,障害者Flg,修学旅行Flg,中国Flg,台湾Flg,韓国Flg,香港Flg) VALUES "
insertSQL = insertSQL & "('#" & 利用日.Value & _ '説明のため注釈 Date型
"#','" & 公演時間.Value & 'String テキストボックス
"','" & ツアー名.Value & 'String テキストボックス
"'," & Val(Nz(大人.Value, 0)) & _ 'Double テキストボックス
"," & Val(Nz(中高生.Value, 0)) & _ 'Double テキストボックス
"," & Val(Nz(子供.Value, 0)) & _ 'Double テキストボックス
",'" & 代表電話番号.Value & _ 'Double テキストボックス
"','" & 担当者.Value & _ 'String テキストボックス
"'," & 金額.Value & _ 'String テキストボックス
",'" & 支払い方法.Value & _ 'String リストボックス
"','#" & 支払日.Value & _ 'String テキストボックス
"#'," & Val(Nz(一般Frame.Value, 0)) & _ 'Double オプションボタン
"," & Val(Nz(障害者Flg, 0)) & _ 'Double チェックボックス
"," & Val(Nz(修学旅行Flg, 0)) & _ 'Double チェックボックス
"," & Val(Nz(中国Flg, 0)) & _ 'Double チェックボックス
"," & Val(Nz(台湾Flg, 0)) & _ 'Double チェックボックス
"," & Val(Nz(韓国Flg, 0)) & _ 'Double チェックボックス
"," & Val(Nz(香港Flg, 0)) & _ 'Double チェックボックス
")"
'SQLの実行
DoCmd.RunSQL insertSQL
↑ここで
「
追加クエリですべてのレコードを追加できません。
型変換エラーのため、、1個のフィールドをNULLに設定しました。また、0件の
レコードで、キー違反、0件のレコードでロック違反、0件のレコードで入力規則違反
が発生したため、レコードを追加できませんでした。
アクションクエリの実行を続行しますか?
このエラーを無視し、クエリの実行を続行するときは【はい】を
クリックしてください。
これらのエラーが発生する原因については、【ヘルプ】をクリックし、
表示されるヘルプ トピックを参照してください。
」
という、システムエラーが発生しました。
>>609 さんと皆さん
ググって見たのですが、全角空白文字も使っていませんし、ブレークポイントでSQL実行
前に値を見ても、ちゃんと入っています。
よろしくお願いいたします。
0615608
05/03/10 18:00:50ID:W2+eHHUkスレ汚し、大変申し訳ありません。
書き直しました。
各テキストボックス、チェックボックス、オプションボタンを入力して
「書き込み」ボタンを押されたら、DBにInsertするプログラムです。
insertSQL = "INSERT INTO 団体 (利用日,公演時間,ツアー名,大人,中高生,子供,代表電話番号,
担当者,金額,支払い方法,支払日,一般Op,障害者Flg,修学旅行Flg,中国Flg,台湾Flg,韓国Flg,香港Flg) VALUES "
insertSQL = insertSQL & "('#" & 利用日.Value & _
"#','" & 公演時間.Value &
"','" & ツアー名.Value &
"'," & Val(Nz(大人.Value, 0)) & _
"," & Val(Nz(中高生.Value, 0)) & _
"," & Val(Nz(子供.Value, 0)) & _
",'" & 代表電話番号.Value & _
"','" & 担当者.Value & _
"'," & 金額.Value & _
",'" & 支払い方法.Value & _
"','#" & 支払日.Value & _
"#'," & Val(Nz(一般Frame.Value, 0)) & _
"," & Val(Nz(障害者Flg, 0)) & _
"," & Val(Nz(修学旅行Flg, 0)) & _
"," & Val(Nz(中国Flg, 0)) & _
"," & Val(Nz(台湾Flg, 0)) & _
"," & Val(Nz(韓国Flg, 0)) & _
"," & Val(Nz(香港Flg, 0)) & _
")"
'SQLの実行
DoCmd.RunSQL insertSQL
↑ここで
「
追加クエリですべてのレコードを追加できません。
型変換エラーのため、、1個のフィールドをNULLに設定しました。また、0件の
レコードで、キー違反、0件のレコードでロック違反、0件のレコードで入力規則違反
が発生したため、レコードを追加できませんでした。
アクションクエリの実行を続行しますか?
このエラーを無視し、クエリの実行を続行するときは【はい】を
クリックしてください。
これらのエラーが発生する原因については、【ヘルプ】をクリックし、
表示されるヘルプ トピックを参照してください。
」
という、システムエラーが発生しました。
ググって見たのですが、全角空白文字も使っていませんし、ブレークポイントでSQL実行
前に値を見ても、ちゃんと入っています。
よろしくお願いいたします。
0616NAME IS NULL
05/03/10 20:10:07ID:???詳しく見てないから原因はわからないけど、なんか
RecordsetをAddNewしてUpdateする方が楽っぽい。
0617615
05/03/10 21:09:24ID:W2+eHHUk素朴な疑問です。
VBA初心者で、AddNewというものを初めて知ったのですが、
一行のInsert文なので、処理速度も問題ないと思いますが、
DBに書き込むときに、普通は「Insert」、「Addnew」どっちを
使うのでしょうか?
0618NAME IS NULL
05/03/10 21:10:22ID:???「"'#" & 支払日.Value & "#',"」っておい。
これだと、シングルクォーテーションで囲んでいるから、
日付型ではなく「#2005/03/10#」と言う文字列になるよ。
エラーの原因はこれだね。
0619NAME IS NULL
05/03/10 21:18:28ID:???Accessだったら基本は連結フォーム。
非連結フォームを使う必然性がある場合は、Vsiual Basic(NOT VBA)を
使った方が生産性が高い事の方が多い。
SQLで処理するか、Recordsetで処理するかは好みの問題だが、
Recordsetの方が見易いし、更新と新規登録とで処理を変更すべき部分が
少なくて済む。
0620615
05/03/11 00:14:48ID:ivF/o00I今まで、意味も分からずに、「"#日付#"」を使っていました。
文字列を "" で表すように、日付型は##で表すんですね。
�@を直しました。
�Aオプションボタン、チェックボックス Val(Nz(値, 0)) では、Double型なので、
チェックボックスに代入する前に CInt(Val(Nz(値, 0))) に直しました。
insertSQL = insertSQL & "(" & �@CDate(利用日.Value) & _
",'" & 公演時間.Value & _
"','" & ツアー名.Value & _
"'," & CInt(Val(Nz(大人.Value, 0))) & _
"," & CInt(Val(Nz(中高生.Value, 0))) & _
"," & CInt(Val(Nz(子供.Value, 0))) & _
",'" & 代表電話番号.Value & _
"','" & 担当者.Value & _
"'," & 金額.Value & _
",'" & 支払い方法.Value & _
"'," & CDate(支払日.Value) & _
"," & �ACInt(Val(Nz(一般Frame.Value, 0))) & _
"," & CInt(Val(Nz(障害者Flg, 0))) & _
"," & CInt(Val(Nz(修学旅行Flg, 0))) & _
"," & CInt(Val(Nz(中国Flg, 0))) & _
"," & CInt(Val(Nz(台湾Flg, 0))) & _
"," & CInt(Val(Nz(韓国Flg, 0))) & _
"," & CInt(Val(Nz(香港Flg, 0))) & _
")"
只、依然システムエラーは出ています。
>>619
Accessだったら基本は連結フォームというのを知りませんでした。
非連結フォームにした理由は、
連結フォームだと、マウスの第3ボタンで、レコードが切り替わるからだと思っていたのですが、
フォームの更新可プロパティをOFFにすればよいだけ、と言う事にやっと気づきました。
気持ちを切り替えて、連結フォームでトライしてみます。
0621NAME IS NULL
05/03/11 00:19:19ID:???615は1件処理するだけなので直接関係はないけど
複数レコードの更新ならばSQLを使う方いい
只今レコードのあるフィールドをゼロにするだけの処理を
レコードセットで8万回ループさせているmdbの修正中。
0622NAME IS NULL
05/03/11 09:21:58ID:???逆にINSERT INTOを複数回やるよりは、AddNew/Updateのループの方が速いね。
0623NAME IS NULL
05/03/11 14:03:13ID:An3+OxFuあるテーブルに新しいフィールドとして追加するには
どうすればよいですか?
そもそも可能?
0624NAME IS NULL
05/03/11 14:16:43ID:???クエリだけでは無理。
VBAに汁。
0625NAME IS NULL
05/03/11 14:37:44ID:An3+OxFuSQL結果を流し込むことは可能でつか?
0626NAME IS NULL
05/03/11 14:40:04ID:???フィールドの追加されたクエリを新しいテーブルとして保存なら簡単だが。
0627NAME IS NULL
05/03/11 15:12:01ID:???って構文はAccessでは使えなかったっけ?
0628NAME IS NULL
05/03/11 15:43:26ID:???使えるけど、それはレコード追加。
この人はフィールド追加がしたいらしい。
0629NAME IS NULL
05/03/11 16:05:25ID:???SELECT で抽出したデータの値で
あるフィールドの値をいっせいに書き換えたいのです。
SELECT WHERE した値を
UPDATE SET すればいいのでしょうか?
>626
それもSELECT INTO〜 ですか? WHERE句書けます?
0630NAME IS NULL
05/03/11 16:54:50ID:???> うーんそういう需要がないのですね。
需要っつーか、どういう書き方をしたいのかもよくわかんないんだけど。
> SELECT で抽出したデータの値で
> あるフィールドの値をいっせいに書き換えたいのです。
いっせいにって、1個の値を複数レコードに割り当てるってことか?
それなら可能性あるかもな。
> それもSELECT INTO〜 ですか?
Yes.
> WHERE句書けます?
Yes.
0631NAME IS NULL
05/03/11 16:59:46ID:???UPDATE T1 SET F2 = (SELECT F2 FROM T2)
ってやってみたがダメだな。
「SELECT F2 FROM T2」が1行しか返さなければ可能性あるかと思ったが。
0632NAME IS NULL
05/03/11 18:00:39ID:???UPDATE T1 SET F2 = (SELECT MIN(F2) FROM T2 WHERE ...)
だとどうでしょう?
0633NAME IS NULL
05/03/11 18:17:55ID:???ACCESSではダメじゃなかったけ?
0634NAME IS NULL
05/03/11 18:50:54ID:???SET xxx=yyy
0635NAME IS NULL
05/03/11 18:56:07ID:???yyyは決め打ち?
0636NAME IS NULL
05/03/12 01:50:25ID:TwGeNgaBオラクルで作成したDBのテーブルを読み込み、
アクセスのテーブルに取り込む処理をアクセスVBAで作成したいのですが、
インポートではなく、オラクルにアタッチして読み込む手順を教えてください。
本屋で連日探しているのですがみつかりません・・・orz
そもそも可能なのでしょうか?
0637NAME IS NULL
05/03/12 02:33:35ID:???ODBCかADOでどうぞ。
0638NAME IS NULL
05/03/12 11:39:20ID:???ファイル→外部データの取り込み→テーブルのリンク→ファイルの種類→ODBCデータベース
0639NAME IS NULL
05/03/12 21:39:21ID:TwGeNgaB>>638
レスありがとうございました。
>ファイル→外部データの取り込み→テーブルのリンク→ファイルの種類→ODBCデータベース
VBAで行いたい(フォームのボタンを押したらオラクルのテーブルをアクセスに取り込む、とか)のですが、
その場合はどうすればよいのでしょうか?
0640NAME IS NULL
05/03/12 23:04:07ID:???を試した上で質問しているとは思えない
0641NAME IS NULL
05/03/12 23:44:12ID:???639じゃないけど、他形式のDBでもアクセスからの
リンクテーブルみたく扱えるのですか?
0642NAME IS NULL
05/03/12 23:54:21ID:???そのDB用のODBCドライバがあれば
0643NAME IS NULL
05/03/12 23:57:11ID:???取り込むテーブルはあらかじめ決まってるはずだから、最初にリンクしておけばよい。
VBAで取り込む作業は不要。
0644NAME IS NULL
05/03/12 23:59:54ID:???ありがとう。またひとつ利口になりました。
0645NAME IS NULL
05/03/14 12:48:49ID:77sioI1O“東京都葛飾区栄町3−5−12第一ビル205号”
を
[住所�@], [番地], [建物など]
東京都葛飾区栄町,3−5−12,第一ビル205号
のように分割するクエリを考えてるんですが、そもそも可能なんでしょうか?
自分的には、“東京都葛飾区栄町3−5−12第一ビル205号”から“3−5−12”を
抜き出す&位置を取って前後をLEFTとMIDで取ることを考えてます。
この、“東京都葛飾区栄町3−5−12第一ビル205号”から“3−5−12”を抜き出すことから
分かりません(いろいろやってはいるのですが)
0646NAME IS NULL
05/03/14 14:24:14ID:???まず、日本語でいいから切り出す条件(どこで切るのか)をきちんと定義する。
それがちゃんとしてれば、道はあるはずだぞ。
0647NAME IS NULL
05/03/14 20:14:45ID:???0648NAME IS NULL
05/03/14 21:09:57ID:???「以下に記載が無い場合」攻撃を食らえ!
0649NAME IS NULL
05/03/14 21:22:17ID:???テーブルAとテーブルBがあって、
テーブルAには元データが、テーブルBにはテーブルAから取り除きたいデータが入っています。
そこで、不一致ウィザードを使ってテーブルAからテーブルBに該当するデータを取り除いたのですが、
さらにワイルドカードを使ってデータを取り除いたのです。
例えば、テーブルBに「*cd*」というデータがあれば、これを使って
テーブルAの「abcd」や「cdef」も取り除いたのです。
そこで、「not like」文を使ってみたのですが、テーブルBのデータが多すぎて
not like文が長くなりすぎ、SQLではねられてしまいました。
何かよいアイデアはありませんでしょうか?
Access2002使用。
0650NAME IS NULL
05/03/14 22:51:05ID:???VBA
0651NAME IS NULL
05/03/14 22:53:03ID:aX3g+89k使い勝手とかどうよ?
0652えりか
05/03/14 23:06:03ID:djYnckCWF_2はサブフォーム(F_SUB)を持っています。F_1での検索条件によって
F_SUBのソースオブジェクトの値を変更させたいのですがうまくいきま
せん。F_1のボタンのクリックイベントに
DoCmd.OpenForm "F_2"
Forms![F_2]![F_SUB].SourceObject= "代入するデータ"
と入れたのですがそもそも考え方が違うのでしょうか・・。
宜しくアドバイスお願い致します。
0653NAME IS NULL
05/03/14 23:15:07ID:???何だかよく分からんが
SourceObject
なのか。
RecordSourceとは違うのか。
だったらデータ入れちゃダメだろ
テーブル名とかクエリ名とかSQL文とかじゃないか
0654NAME IS NULL
05/03/15 00:14:19ID:???住所をBNFで表してすべてのパターンが網羅できるかどうか
小一時間問い詰めたい。
BNFの意味はぐぐれ。
0655NAME IS NULL
05/03/15 00:30:27ID:???exists述語と副問い合わせを研究しる。
delete * from TBLA
where exists (select * from TBLB where TBLA.F1 like ('*'+TBLB.F1+'*'))
0656NAME IS NULL
05/03/15 01:23:30ID:???えーーーーー
0657NAME IS NULL
05/03/15 02:31:03ID:???>テーブルAの「abcd」や「cdef」も取り除いたのです。
テーブルBに「cd」というデータがあれば、ではなく「*cd*」というデータがあれば、でいいのか?
0658645
05/03/15 12:47:20ID:dUgl0bu7数字とハイフン以外のものが出てきた段階で切って番地のみを出す関数作って
対処しました。
0659NAME IS NULL
05/03/15 23:27:33ID:ODuvRlx21対1のリレーションにしようと思ってます。
(といっても、フィールド数は50〜100ぐらいです)
これは邪道?
テーブル作成の実際を知らないので悩んでます。
そもそも1対1のテーブル関係はどんな時に使うのでしょう?
0660NAME IS NULL
05/03/15 23:59:05ID:???正規化をがんばってみたら。
0661NAME IS NULL
05/03/16 01:03:09ID:???(ならない運用もあるだろうけど)
で、50〜100ぐらいなら無理に分けなくてもいいんでは。
255を超えるようであれば分けたほうがいろんな人が幸せになれると思うけど
accessってたしか255までだっけ。
0662>>659
05/03/16 01:18:56ID:???いまそれに近いことやってる(近くないかな)
商品コード : 主キー(もちろんNullなんてことはありえない)
商品名 : これも値は絶対に入る
小売値 : これも
仕入価 : これも
ここまでが先週まで使って商品マスター(約12000レコード)
これに来週から以下が加わることになった
商品解説1 : 空っぽのものが多い
商品解説2 : とにかく空っぽのものが多い
商品解説3 : 空っぽばっかりだっつの
...
とにかくメチャ多い商品解説フィールド
こぢんまりとチャーミングにまとまった商品マスターにこの凶悪なフィールド群を加えるのは
気持ちが悪かったので、別テーブルとした。
商品コード
商品解説1
商品解説2
・・・・
もちろんこいつと元マスターのレコード件数は一致していない。
商品コード以外全フィールド空っぽのレコードなんてあっても意味ないと思ったから。
で、必要に応じて元マスターとレフトジョイン
0663NAME IS NULL
05/03/16 01:23:17ID:???俺は専門職じゃないからその辺はいい加減にしているけどね。
客から投げられたデータを整形させる実行時間を考えると、
とてもじゃないけどやってられません。
それにテーブルの設計を変更したら各所に問題が発生しそうで、
怖くてとてもできません。
新規に作るのだったらその辺は考えるけど。
0664NAME IS NULL
05/03/16 09:41:30ID:z3SOFake年月日----収支--金額
2005/3/1---0---\10000-
2005/3/2---1-----\257-
・ ・ ・
・ ・ ・
・ ・ ・
2005/4/13--1----\3039-
2005/4/13--0---\10000- [収支] 0:収入,1:支出
のようなテーブルデータがあるとき、単純に月ごとと収支ごとのグループ集計の方法は分かるんですが、
月締めが<20日〜翌月19日>単位で収支ごとの集計を出すとか、10000円以下の収入は計上せずに集計を出す
といった条件はどうするばいいのでしょうか?
単純クエリかSQLで教えてください。
0665NAME IS NULL
05/03/16 10:07:29ID:???IifやDateAddを駆使して集計専用の計算フィールドを作る。
0666NAME IS NULL
05/03/16 12:22:05ID:???それは垂直分割という技法である。あとはググれ。
0667664
05/03/16 15:29:03ID:z3SOFakeクエリで新規テーブルを作るとき、データが存在する列はいいとして、あとからデータを入れたい時のために
Null 列を作るんですが、これにデータ型を指定する方法ってあるんでしょうか?
例)
select [氏名] as name, [住所] as add, Null as ふりがな, … into 詳細名簿
from 名簿;
で、"Null as ふりがな" で列を作っておく。あとから自分でふりがなを埋めていくorクエる。
上記SQLだと、出来た「詳細名簿」の[ふりがな]がバイナリ型とかになってるんです。
これをテキスト型で作ってくれとか長整数型で、とかの指定が出来たらいいなぁと
0668NAME IS NULL
05/03/16 16:25:15ID:???SELECT INTOでは無理。
0669667
05/03/17 13:12:04ID:fUFB04lRそれともSQLで行うこと自体無理なんでしょうか?
0670NAME IS NULL
05/03/17 13:36:49ID:???CREATE TABLE
ALTER TABLE
ならできる。
0671NAME IS NULL
05/03/17 14:35:59ID:kiGqwfxiレスくれた人ども。
テーブルの分割といっても、新しいフィールド、データを追加するのに
新しいテーブルをつくるか、既存テーブルにフィール度を作るか
ということに近いので、>662 さんのやり方なのかなー。
ただ、別の新規テーブルにすると、>667の問題があるかも。
Null やめて、""を入れられないのかな。
0672667
05/03/18 14:46:54ID:Eh07hio+あ、そーか
…でも、それは最初から決まったテーブルに決まったことを吐き出すといった
全体的な設計をたてておかないと辛いですね。
スパイラルのような開発には向いてないのかな、漏れのやり方が悪いのか…
0673NAME IS NULL
05/03/18 15:02:53ID:???SQLを動的生成すりゃいいだろ。
念じるだけじゃシステムはできないんだからどこかには記述しなきゃ。
0674NAME IS NULL
05/03/19 09:58:01ID:???0675NAME IS NULL
2005/03/25(金) 14:59:35ID:???それはさすがに正規化したほうがいいのでは。
商品コード, 解説No, 解説文
1, 1, 新製品
1, 2, 軽くて丈夫
3, 1, ロングラン製品
4, 1, 新製品
4, 2, 超小型
4, 3, 大売出し中
こんな感じで。
0676NAME IS NULL
2005/03/27(日) 01:03:09ID:???(・∀・)イイネー、イイネー、キレイダネー
そうですよね、こっちのテーブルもちゃんと形にしてやるべきですよね。
何かこの作業、初めから気持ちの中でテーブルに優劣つけてたようなところがありまして。
ああ、商品マスタが汚染されちゃう、みたいな感じで。
思いっきり手のばして生ゴミ鋏でつまみあげるような扱い方してました。
反省です。いまからでも手遅れじゃないんで直します
0677NAME IS NULL
2005/03/31(木) 16:12:14ID:???Database.TableDefsの件数が354件しか入りません。
実際は1700以上あり、手動でODBCのリンクテーブルの作成を行う際には
きちんと全てのテーブルが表示されています。
Access2003を使っています。
同じMDBをAccess2000で試したところ期待通りに動いているようです。
何か新しい制限でも加わったのでしょうか?
どの辺から調べていったらいいのかヒントだけでも思いつく方
いらっしゃらないでしょうか。
よろしくお願いします。
0678NAME IS NULL
2005/04/04(月) 01:35:13ID:K1ILMTjGやっぱりBtree?
0679NAME IS NULL
2005/04/07(木) 23:47:32ID:iJRWnZzRしたいです。VisualBaicの経験は数年ありますが、データベースを扱ったことがなく、全くの初心者です。
質問なのですが、偶然複数のPCから同じデータに対して更新を行った場合が当然想定されますが、
この場合は排他的にDBアクセスをするようにして、後からアクセスしようとした人には一瞬待たせるように
すればよいのでしょうか。
この際、排他的アクセス設定ってありますか。
後からアクセスした人は今ビジー中っていう戻り値を得られるのしょうか。
あと、ADOとDAOって簡単にいうとどう違うのでしょうか。
文章の意味不明かもしれませんがよろしくご教授願います。
0680NAME IS NULL
2005/04/07(木) 23:59:27ID:???MSDEというものがあります。
Accessからでもある程度の管理はできます。
0681NAME IS NULL
2005/04/08(金) 18:37:34ID:???DAO は Jetエンジン(MDB) 用に開発されたインタフェース
ADO はもっと汎用的なインターフェース
MDBで運用するならDAOがおすすめ。
MSDE等へ移行するならADOがおすすめ。
MDBというかJetの仕組み上、厳密な排他制御は難しいよ。
MSDE等のデータベースサーバへ移行すれば
排他制御はサーバ側に一任できる。
0682NAME IS NULL
2005/04/08(金) 20:07:38ID:2SnNUHgS0683NAME IS NULL
2005/04/09(土) 00:09:20ID:7RqO7iNX貴重な回答どうもありがとうございます。
今日さっそくMSDEの調査を行い、MSDEの入手とインストール、あとサーバーの起動まで行いました。
その後、ACCESSを使ってADPファイルを作成せよということで、簡単なテーブルを作成するところまでできました。
明日、休日出勤して先に進めようと思いますが、再度質問があります。
このADPファイルを作成後、ADOオブジェクトを使って、このデータベースにSQLでアクセスすれば良いのでしょうか?
あと、顧客からは扱う情報が稼動後増えるかもしれないので、列情報を追加できると嬉しいとのことですが、
VBから既存のデータベースに列(要素)を追加することってできるのでしょうか?あと、データベース名だけ分かっていて
全ての列情報を取得するようなSQLってあるんですか?
今月いっぱいでデバッグまで完了させねばならず焦りと不安でいっぱいです。
0684NAME IS NULL
2005/04/09(土) 07:18:20ID:???おいおい、一人でシステム構築やってんの?
2chに頼りながら使ったことのないDBMSで
一ヶ月でシステム完成なんて不可能だよ。
さっさと上司に相談して応援頼め。
0685NAME IS NULL
2005/04/09(土) 08:19:58ID:7RqO7iNXそうなんです。
検査場で検査状況を参照、格納するDBです。(5〜6台のPCで)
もともとExcelの表で管理していたのを、DB化するもので、扱うテーブルはリレーショナルとか必要なく、
複雑なものでないです。指定したフィールドによる検索と、レコードの書き込みができれば良いです。
VBは結構経験有るので、今月中にサクっとできそうにも思えるのですが、どうでしょうか?
0686NAME IS NULL
2005/04/09(土) 10:12:24ID:???> VBは結構経験有るので、今月中にサクっとできそうにも思えるのですが、どうでしょうか?
そう思うなら、2chなんか覗いてないでさっさと手を動かすことだ。
0687681
2005/04/09(土) 10:54:59ID:???MSDEの場合は以下の方法でACCESSからクエリを投げれば実現できるよ。
--列を追加するにはこのSQL
ALTER TABLE テーブル名 ADD 列名 データ型
--DB名からテーブル名を取得するにはこれ。
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_CATALOG = 'DB名'
--テーブル名から全ての列情報を取得するにはこのSQL
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'テーブル名'
ADPを使って素早く>>685の仕様を満たしたいのなら
ACCESSのウイザードで大まかな雛型を作って、それに
手を加えていく形で進めるのが早いと思うよ。
0688NAME IS NULL
2005/04/09(土) 12:56:31ID:???http://220.208.41.135/
http://220.208.41.135/~ss.jpg
http://seiya.bai.ne.jp/
http://seiya.bai.ne.jp/~ss.jpg
0689NAME IS NULL
2005/04/10(日) 00:47:23ID:yLBu8JJ+ありがとうございます。
クエリとかまだ勉強不足で知りませんでしたので、ネットに載っていたのをサンプルにして、
VBからADOとADOXを使って、テーブル名やフィールド名、フィールドのデータを取得することができました。
ただ、レコードの追加書き込みができませんでした。
これもネットのサンプルを見て、ADOのレコードセットを使って書き込みしたところ、処理はエラーが出ずに完了
するのですが、その後、ACCESSでADPプロジェクトを開いて、レコードが書き込まれているかを確認した
ところ書かれていませんでした。
ADPを開くと更新内容が見れないんでしょうか。それとも何らかの設定が足りなくて書き込まれないのでしょうか。
それからACCESSからクエリを投げるとのことですが、ACCESS側ではテーブルを作成するだけで、コードは
VB側で記述するものだと認識しているのですが、ACCESS側でもコードを記述する必要があるのでしょうか?
パフォーマンスを上げるのが目的ですか?素人過ぎて申し訳ありません。
0690NAME IS NULL
2005/04/10(日) 02:00:08ID:???横じゃなくて縦に伸ばせるように仕様詰められないの?横に伸ばしたら最悪アプリの根っこから
作り直しになって( xДx)ウボァーナリヨ。
0691NAME IS NULL
2005/04/10(日) 02:10:47ID:???項目増やした後はデータを手メンテするの?
0692NAME IS NULL
2005/04/10(日) 02:39:21ID:???b1内のどの値とも一致しないa1を持つレコードを
テーブルAから抽出するにはどうすればいいでしょうか。
ただいま入門書を見て考えていますが、頭が爆発しそうです。
0693NAME IS NULL
2005/04/10(日) 03:38:32ID:???クエリのデザインビューにテーブルAとテーブルBを並べる
フィールドの選択は、テーブルAからお好みでいくつか、あとテーブルB.b1
テーブルA.a1とテーブルB.b1をマウスでちょろっと結ぶ
出来た結合線にマウスカーソルを当てて右クリックする
結合プロパティ設定で、結合線の形を、テーブルA.a1 → テーブルB.b1 みたいな矢印形にする
テーブルB.b1フィールドの抽出条件 Is Null
これだけ読んで分からなかったら、↓の文を、クエリのSQLビューに貼り付け
SELECT テーブルA.*
FROM テーブルA LEFT JOIN テーブルB ON テーブルA.a1 = テーブルB.b1
WHERE テーブルB.b1 Is Null
0694NAME IS NULL
2005/04/10(日) 04:04:55ID:???FROM テーブルA
WHERE a1 NOT IN ( SELECT Distinct(b1) FROM テーブルB );
0695NAME IS NULL
2005/04/11(月) 23:31:28ID:H2OCR0rbを取得(Excelでいうとオートフィルタ)する記述が分かりません。
どなたか教えていただけないでしょうか。
0696NAME IS NULL
2005/04/11(月) 23:49:12ID:???うはっwwwおkwwwうえっwww??
0698http:// 218.231.163.228.eo.eaccess.ne.jp/~ss.jpg
2005/04/12(火) 00:14:55ID:???うはっwwwおkwww??
0699http:// YahooBB218123232154.bbtec.net/~ss.jpg
2005/04/12(火) 00:15:49ID:???うはっwwwおkwww??
0700NAME IS NULL
2005/04/13(水) 16:36:04ID:RJ6cm4WZテーブルのデータを元に、「単票フォーム」で
売上明細を出しているのですが。
例えば「得意先」「日付」をグループ化して、
フォームを下のようにレイアウトした場合、
売 上 プラス マイナス 合計
振込料 プラス マイナス 合計
手数料 プラス マイナス 合計
運送料 プラス マイナス 合計
値 引 プラス マイナス 合計
返 品 プラス マイナス 合計
と項目が続くとして、合計を出す時は「合計」欄に
=[売 上プラス]-[売 上マイナス]
=[振込料プラス]-[振込料マイナス]
=[手数料プラス]-[手数料マイナス]
=[運送料プラス]-[運送料マイナス]
=[値 引プラス]-[値 引マイナス]
=[返 品プラス]-[返 品マイナス]
というように、それぞれ数式を手動で入れています。
これをエクセルの「形式を選択して貼り付け」のように
一括して数式を入れる方法はないでしょうか?
クエリを先に作る方法でも同じようにひとつひとつ
数式を入れていますが、この場合でも、計算が多いと
数式を入れるのがとても大変なので。
VBAを使うとか、そもそもが何か間違えているのでしょうか?
ちなみに、帳票フォームだと項目が多くて入りきりませんでした。
0701http:// FLH1Abk223.kng.mesh.ad.jp/~ss.jpg
2005/04/13(水) 18:11:28ID:???うはっwwwおkwww??
0703NAME IS NULL
2005/04/13(水) 20:12:11ID:???0704700
2005/04/13(水) 22:28:58ID:Vnbo6rp/別の項目で、それぞれに入力されたデータがあります。
普通はプラスマイナスはいらないんでしょうが、業種が特別だからか、
元々入る予定の金額「プラス」に、日割等で減った場合の「マイナス」を
引いた金額を出す必要があるもので。
例)売上・・・基本9000円 日割-900円 合計8100円 =本日の売上
この基本の「プラス」から「マイナス」を引く計算式を、項目ごとの
日ごと、月ごと、年ごと・・・とくり返し作るのも大変なので、
エクセルの貼り付けのように簡単に出来ないものかと思ったわけです。
0705NAME IS NULL
2005/04/14(木) 19:23:08ID:k9RzpyUmINSERT INTO Note(Note1) VALUES('アメリカ')
Note は実在するテーブルで、データベースへの接続は事前にできている。
Note1 はメモ型
0706NAME IS NULL
2005/04/15(金) 10:37:44ID:???予約語ってやつ。
NOTE ってのは JETエンジンに於いてはMEMO(LONGTEXT)型の別名だから、
テーブル名に使っちゃいけないんだと思うよ。
0707705
2005/04/15(金) 11:54:38ID:zPmPcQUpありがと、スゲー助かった。
0708muro c119201.tctv.ne.jp/
2005/04/15(金) 14:05:26ID:???ぇ し の ァ ハ
け と ぉ ァ
うはっwww夢がひろがりんぐwwwwww
0709muro gf9.opt2.point.ne.jp/
2005/04/15(金) 19:04:29ID:???ぇ し の ァ ハ
け と ぉ ァ
うはっwww夢がひろがりんぐwwwwww
0710NAME IS NULL
2005/04/17(日) 00:30:49ID:???だきます〜!
ご存知でしたらレスお願いします!(^0^)
いまAccessにOracleのテーブルをリンクさせています。
OracleではCHAR(1)のデータ型になっていて、1又は半角スペース
のデータが入っているのですが、AccessにリンクさせたOracleテー
ブルを開くと1はそのままで、半角スペースの入っているハズのとこ
ろがNULL値(?)になってしまいます。
これはAccessの仕様によるものなのでしょうか?
OracleのCHAR(1)の半角スペースはなくなっちゃうんでしょうか??
0711NAME IS NULL
2005/04/17(日) 01:16:55ID:???リンクをやめてインポートしてみたら?
オラクルはさわったこともないから想像で書いているが・・
0712NAME IS NULL
2005/04/17(日) 11:28:53ID:???ありがトン!
試してみる!!(^0^)
0713NAME IS NULL
2005/04/18(月) 16:05:03ID:???0714NAME IS NULL
2005/04/18(月) 20:46:18ID:???0715NAME IS NULL
2005/04/19(火) 15:33:21ID:A7BzLndYAccessクエリは基本的にSelectしか出来ないと思ったけど
0716NAME IS NULL
2005/04/19(火) 16:12:20ID:???0717NAME IS NULL
2005/04/19(火) 21:57:19ID:???それもトリガーじゃないが。
>715
INSERTやDELETEは?
0718NAME IS NULL
2005/04/19(火) 23:03:47ID:???OracleのCHAR(1)の半角スペースはAccessにリンクしても、残ってた。
NULL値になったというのはモレの勘違い。
>>711
アドバイスくれたのにゴメン。煎ってくる。
0719NAME IS NULL
2005/04/19(火) 23:29:10ID:???試しにリンクしたテーブルにACCESSから半角スペースを入れてみろ
0720710
2005/04/21(木) 22:01:19ID:???設定でACCESSからORACLEにデータを追加できない
ようにしてるから、半角スペース入れてみれないんだ。
(・ω・)
0721NAME IS NULL
2005/04/23(土) 23:56:09ID:37o/jpJa0722NAME IS NULL
2005/04/24(日) 00:52:26ID:???0723NAME IS NULL
2005/04/24(日) 01:04:06ID:9bSnXZZLどうすればSPが使えるのでしょうか?
ご教示ください。
0724NAME IS NULL
2005/04/24(日) 01:10:31ID:???0725NAME IS NULL
2005/04/24(日) 21:17:24ID:???0726NAME IS NULL
2005/04/25(月) 08:23:55ID:???0727NAME IS NULL
2005/04/25(月) 14:29:06ID:???ヘルプでは、Is Nullを追加しないとNullはNGのような記載があります。例えば、テーブルのある
数値フィールドに既定値0, 入力規則 Between 0 And 9 とした場合、入力時に既定値の0をDEL
してNullにするとエラーですよね?
95, 97とそうだったし2000もそのはずなのですが、最近のAccess2000ではNullにしてもエラーに
ならないんです。MDBが壊れてるわけではありません。新規MDBでテストしても同様の結果です。
フォームのコントロールに同様の入力規則をセットした場合は、Nullでエラーになってくれるので
今はその対応で回避しています。
皆さんの場合はどうですか(2002, 2003の話でもいいです)?
スレ違いなら誘導を、またMSの技術情報があればそのURLを教えて下さい(結構、検索しました)。
0728NAME IS NULL
2005/04/25(月) 19:53:33ID:???2003でもNull入力でエラーにならないYO
エンジンの挙動が変わったのかもしれないね。
というかJETに限らずnullが入る必要のないフィールドには
nullを許さない設定をすべきだと思うよ。
明示的に設定しておけばバージョンアップに伴う挙動の
変化に悩まなくて済むんじゃね?
0729727
2005/04/25(月) 23:35:31ID:???そうですか。2003でも。
「nullを許さない設定」:確かにそれもそうなのですが、入力規則に反してますよ
のエラーで統一したい場合もあるんで・・・特に95から2000へシステムを移行し
たユーザーなんかは、何でメッセージが違うんだとこだわる場合もあるので。
MSのアナウンスはないんですかね。
0730NAME IS NULL
2005/04/26(火) 00:41:30ID:???2003のヘルプにも入力規則のあるフィールドにnullはNGって記述があるね。
実際は入力出来るけども。
入力規則も、それに伴うエラーメッセージの統一もプレゼンテーション層で行うべきだと思うよ。
フォームの段階でエラーをハンドリングすれば「入力規則に反してますよのエラーで統一」が
実現可能なんじゃないの。
DB層に入力規則の考えを持ち込むと設計がややこしくなると思うけど。俺だけかもw
0731727
2005/04/26(火) 15:55:04ID:???その何とか層ってちょっと敬遠。ネットワークの時だけにしてくれ〜みたいな。
今のところは、フォームのコントロールに入力規則をセットすることでNullをはじい
てくれるので、「フォームの段階でエラーをハンドリング」とほぼ同様っすね。
エラーのハンドリングとその後のメッセージ表示は、関数を作ってるので一般的な
エラーはユーザーにわかりやすいメッセージ表示にしてます。
これ以外で、特定のエラー番号を判断してロジックを増やしたりしたくないというの
もあります。たかが数行って思ってるとそれがドンドン増えますし、バグの元なので。
なので、極力プログラミングしないで済む設定は利用したい、だけどヘルプと異な
る動作なのにMSには何の情報も無し、ってことで書き込みしてみました。
検索が下手で見つけられないとしたら、どなたか知ってる方がいるのかなと。
0732NAME IS NULL
2005/04/26(火) 18:11:25ID:???ほどよく取り返しが付かなくなった頃に問題が表面化して
「仕様に書いた」 - 「なぜ制約で予防しなかった」と不毛な言い合いに
なって雰囲気が悪くなり、顧客も技術者も去っていくバッドエンドに
0733730
2005/04/26(火) 22:24:03ID:???その意見はよくわかる。「凝ったことはしない」はバグ発生の最小化に関して原則だもんね。
MS謹製の付属ヘルプの記載と挙動には食い違いがあることだし、インシデントを保有してるなら
この際MSに直接聞いてみては?
http://support.microsoft.com/oas/default.aspx?&c1=505&gprid=1265&
0734NAME IS NULL
2005/04/27(水) 09:34:33ID:???エラー処理って共通化しないのか?
0735731
2005/04/27(水) 12:25:32ID:MJ6t39XRほどよくインシデントの有効期限切れ。今まで.Net C#のWEB開発やってて、このおまけで
MSDNに入ったもので。零細企業の開発なめてる社長が、Accessごときにサポートの金が
必要かぁってなると思うので、インシデントは手に入らないっすね。
0736NAME IS NULL
2005/04/28(木) 00:54:54ID:???エラー処理以前に、変なデータ突っ込んだらそのまま入ってしまうことが問題なんじゃ?
こっち向きの話題っぽいけど。
制約っていらなくね?
http://pc8.2ch.net/test/read.cgi/db/1087483786/
0737NAME IS NULL
2005/04/28(木) 13:32:56ID:/B8UlL+2因みに初心者です。
ACCESSでODBCの呼び出しに失敗しました。
と出て一向に進みません。
タイムアウトかな?と思い、600秒にしたのですが、
どうやら関係ないようです。
どうしたらよいのでしょうか・・・。
テーブルのリンクもきちんとやっているつもりなのですが。
他に何が考えられますか??
0738NAME IS NULL
2005/04/28(木) 14:31:15ID:???リンク先の構造が変わったんだよ。
0740NAME IS NULL
2005/04/29(金) 05:51:33ID:4fvTKMgsa b c d
x 0 1 0 0
y 1 1 0 1
z 0 1 1 0
というエクセルの表があったとして、これを
x a 0
x b 1
x c 0
x d 0
y a 1
y b 1
y c 0
y d 1
z a 0
z b 1
z c 1
z d 0
とアクセスに格納したいのですが、やり方がさっぱりわからず困っています。
ほんとに初心者の初心者ですみません!
聞き方もわからないので、こういう質問しかできませんが、
どなたかご親切な方、ご教授お願いします!
0741NAME IS NULL
2005/04/30(土) 10:33:36ID:???VBAでプログラムを組むのが簡単だね。初心者というのは免罪符にはならない。
表だったら項目がどうなってるか(セルの区切りとか)を含め、もう少し表現方法を
考えて質問してよ。
0742NAME IS NULL
2005/04/30(土) 16:54:18ID:???いくつになるか分からないなら素直にVBAでレコードセット開くのが吉
CurrentProject.Connection.Execute "INSERT INTO Tbl1 ( xyz, abcd, Suji ) SELECT Tbl0.xyz, 'a' AS FldA, Tbl0.a AS ValueA FROM Tbl0"
CurrentProject.Connection.Execute "INSERT INTO Tbl1 ( xyz, abcd, Suji ) SELECT Tbl0.xyz, 'b' AS FldB, Tbl0.b AS ValueB FROM Tbl0"
CurrentProject.Connection.Execute "INSERT INTO Tbl1 ( xyz, abcd, Suji ) SELECT Tbl0.xyz, 'c' AS FldC, Tbl0.c AS ValueC FROM Tbl0"
CurrentProject.Connection.Execute "INSERT INTO Tbl1 ( xyz, abcd, Suji ) SELECT Tbl0.xyz, 'd' AS FldD, Tbl0.d AS ValueD FROM Tbl0"
0743NAME IS NULL
2005/05/01(日) 00:19:22ID:xD+Epexd教えて下さい。
T_Materテーブル(日付、場所、気温)について、
場所ごとにテーブルを作成して、日付を気温を格納したいのです。(T_A, T_B..)
場所の数が多く、T_Masterのデータが増えていくため、一つづつ手作業で
分けていく訳にもいかないので、なんとか自動化したいのですが、見当がつかず..
よろしくお願いします。
T_Master(テーブル)
日付 場所 気温
1月1日 A 10
1月1日 B 5
1月1日 C 11
1月2日 A 12
1月2日 B 6
1月2日 C 15
:
T_A(テーブル)
日付 気温
1月1日 10
1月2日 12
T_B(テーブル)
日付 気温
1月1日 5
1月2日 6
:
0744NAME IS NULL
2005/05/01(日) 01:44:50ID:???Select 日付, 気温 From T_Master Where 場所 = [何処なの?]
0745NAME IS NULL
2005/05/01(日) 15:36:46ID:???SELECT DISTINCT 場所 FROM T_Master
で出てくるレコードを上から順に舐めながらその場所の内容を使ったテーブルを作っていく
作成テーブル名="T_" & [場所]
SELECT 日付, 気温 INTO 作成テーブル名 FROM T_Master WHERE 場所 = [場所]
これを1つ目のレコード数分ループさせればいいだけでは?
0746NAME IS NULL
2005/05/01(日) 23:19:19ID:yd6yI+wg入力の仕方や、後からの参照の仕方は別に考えるとして
データのため方はそのまんまの方がいいんじゃないかと
たとえば「場所」が100000ヶ所ぐらいあるとしても、そのままで
まったく無問題のはず
後からの参照の仕方については>>744の形でOKと思う。
入力の仕方については、やり方いっぱいありすぎ面白すぎで、
一口では語れない。ある意味腕のみせどころ
0747NAME IS NULL
2005/05/01(日) 23:20:04ID:???0748NAME IS NULL
2005/05/02(月) 01:19:55ID:CCd6APdi0749NAME IS NULL
2005/05/02(月) 01:59:52ID:???わからないということは
今の君にはAccessは必要じゃないということさ。
人間、必要に迫られれば何でもやるもんさ。
0750NAME IS NULL
2005/05/02(月) 17:06:51ID:???0751NAME IS NULL
2005/05/03(火) 23:30:55ID:???これって本当?
0752743
2005/05/04(水) 18:29:54ID:???ありがとうございます。
テーブルをバラすことばかり考えてました。
これからいろいろ試してみます。
0753NAME IS NULL
2005/05/04(水) 23:39:14ID:???どのウィザードかわからないと何とも言えないが、MSが
信用ならんのは確かだ。それにしても、そのスレはレベ
ルが低いのぉ。
0754NAME IS NULL
2005/05/05(木) 12:18:45ID:???フォームのコマンドボタンウィザートで「フォームを開く」を指定したときのことかな?
Private Sub コマンド0_Click()
On Error GoTo Err_コマンド0_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "hoge"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_コマンド0_Click:
Exit Sub
Err_コマンド0_Click:
MsgBox Err.DescRiption
Resume Exit_コマンド0_Click
End Sub
開くフォームが初期化されていない文字列を引数として処理しようとするため
実行環境によってはフォームが開かなかったり、Access自体が異常終了する。
割と有名な話だと思うけど
0755NAME IS NULL
2005/05/05(木) 13:46:36ID:???0756753
2005/05/05(木) 21:31:07ID:???へぇ〜、知らなかった。ウィザードは一切使用しないもんで。
>>755
basicでもCでも暗黙に初期化はされてるが、明示的に初期
化処理をした方がプログラムが見やすいと思うが、好みの
問題でもあるよね。
0757NAME IS NULL
2005/05/05(木) 23:40:45ID:???Cの暗黙の初期化って・・
0758NAME IS NULL
2005/05/06(金) 17:33:39ID:???局所変数(Accessでいうプロシージャ変数)はプロシージャ(関数)
にエントリーするときにスタック上に領域をとる。
実際にはスタックポインタを変数のサイズ分だけ調整するだけなんで
プロシージャ変数は初期化されていないと見るのが妥当だと思う。
0759756
2005/05/07(土) 01:42:53ID:???あ〜ごめんなさい。全くの説明不足を補って頂いてありがとう。
ちなみにAccessの場合は、プロシージャレベルの変数でも初
期化されてます。自分は、こういうのって嫌いですけど。
C++/C#ではどうだったっけと余計なことまで気になってしまっ
たが、調べるのもメンドイ。目の前のマシンにはインストールし
てないし。
0760NAME IS NULL
2005/05/07(土) 12:33:15ID:???> C++/C#ではどうだったっけと余計なことまで気になってしまっ
> たが、調べるのもメンドイ。
知らないんだったら書かなきゃいいのに…。
0761759
2005/05/07(土) 23:35:56ID:???どうだったろうと気になっただけだよ。
いちいち絡むなオタク!!
0762NAME IS NULL
2005/05/08(日) 00:07:15ID:???ずいぶん偉そうだな。
>>756 で「Cでも暗黙に初期化はされてるが」と恥さらしたこと忘れたのか ? (ププッ
0763NAME IS NULL
2005/05/08(日) 00:29:10ID:???0764NAME IS NULL
2005/05/11(水) 11:17:09ID:Fc6Gv+7Fでも、あるカラムだけ別名つけると値が表示されなくなり、
フォームからも参照できなくなってます。
元々、同じクエリ内の他のカラムにはテーブル名の修飾はないんだよね。
でも、このカラムだけ修飾があって、しかも取れない。
なんで?
0765NAME IS NULL
2005/05/11(水) 11:31:07ID:???そのクエリをここに書かないと話が進まんと思うが
0766764
2005/05/11(水) 11:38:48ID:Fc6Gv+7Fここに正確に書くのはちょっと難しいんだよね。
今、試しに元のカラム名と違う別名つけたらテーブル名の修飾は外せた。
でも、プログラムの都合でできれば元のカラム名と同じにしたいんだけどなぁ。
これと同じような現象って遭遇した人います?
0767NAME IS NULL
2005/05/11(水) 15:29:00ID:Pb6wdUxVテーブル名の修飾を外すって、 SELECT T_A.F1 FROM T_A の T_A.F1 → F1 にしたいって
こと? オレ、何か変な解釈してるかな・・・。
FROM で結合してテーブルがあるなら、その全てのテーブルのフィールドで重複してなけれ
ば、単に修飾部分を削除するだけじゃないの?
何故おかしいのかってのは同じ経験者がいない限り、SQLをカキコしてくれないことには見当
がつかんですよ。
0768NAME IS NULL
2005/05/11(水) 16:43:51ID:???結合してる他のテーブルに同じフィールド名が存在するから。
サブクエリでそっちのテーブルからそのフィールドを隠せば解決。
0769NAME IS NULL
2005/05/11(水) 18:42:18ID:???処理速度への影響を考慮して素直に別名を変えた方が良くないかなぁ。
0770NAME IS NULL
2005/05/14(土) 15:00:07ID:foJtGv0Gピボットグラフで棒グラフを作成しましたが、
グラフにマーカーを表示させられません。
どうやったらいいんでしょうか??
「できる」には判例のだし方とかは載ってるんですが
マーカーについては触れられてませんでした。。。
0771NAME IS NULL
2005/05/15(日) 22:40:03ID:yNPjHIPrAccess2003で構築されてるシステムに機能追加して
Soap通信をさせたいのですが、そのままで可能か、
あるいはこれこれの方法で可能、というところを教えていただきたくm(_ _)m
ちなみにAcessシステム側ので、Soapリスナ&クライアント、両方の機能が必要になりそうです。
0772>711
2005/05/15(日) 22:46:00ID:0BKeCLiEそもそもACCESSはスタンドアローンでパーソナル向け
DBなんだから、そういう用途に使うこと自体問題だよね。
IISを入れられない理由は何?
0773771
2005/05/16(月) 00:48:16ID:MrYz/AtZ早々とレスThxです。
IISを入れられないのではなく、すでにAccessで膨大なシステム
(規模は大きいけど同時利用者数はすくないのでAccessにしたみたい)が構築されてて、
その膨大なAccess資産を捨てられないのです。
Soapを使用するのはホンの一部であり、そのためにAccess→.NETで作り直し、なんて
とても出来ません。(開発費が100倍くらいに跳ね上がる)
で、Access2003に何かアドインすれば、Soap通信できるものなのか
(もっとありていにいえばAccess2003のプロシジャで直接Soap通信&XML解析するには
如何にすればいいか)を調べておるのです
0774NAME IS NULL
2005/05/16(月) 10:46:35ID:???BASP21のソケットオブジェクトは?
0775NAME IS NULL
2005/05/16(月) 10:50:29ID:???http://www.microsoft.com/japan/msdn/office/wst2003/odc_WSTKNew.asp
0776773
2005/05/16(月) 23:10:02ID:INfAfmB9ども、ありがとうございます!
教えていただいたキーワードを基に、色々調べてみますm(_ _)m ペコ
0777NAME IS NULL
2005/05/18(水) 12:33:11ID:RgsqjMINまず、どこからどうやって勉強するか教えてください。
0778NAME IS NULL
2005/05/18(水) 12:40:06ID:???0779NAME IS NULL
2005/05/18(水) 21:16:00ID:gEJnbWTP0780NAME IS NULL
2005/05/18(水) 22:00:41ID:???何の意味があるの?
0781NAME IS NULL
2005/05/18(水) 22:07:50ID:???MDEからMDB作った人いませんか?
460 名前:名無しさん@そうだ選挙にいこう[sage] 投稿日:2005/05/13(金) 02:09:11
>>457
何の意味があるの?
475 名前:名無しさん@そうだ選挙にいこう[] 投稿日:2005/05/16(月) 00:54:00
MDEからフォームとレポートを抽出できませんか?
476 名前:名無しさん@そうだ選挙にいこう[sage] 投稿日:2005/05/16(月) 00:59:37
>>475
できません
以上
0782NAME IS NULL
2005/05/19(木) 11:56:12ID:nYUwVr4Eまたその値は何をつかえばいいのか。。。
(カレントレコードorアクティブレコードを指す関数が分かればいいのかも)
同じフォームに戻ってきたとき、また同じ位置にあるようにしたいのですが。
0783NAME IS NULL
2005/05/19(木) 12:52:29ID:???Bookmarkとか?
0784NAME IS NULL
2005/05/19(木) 13:11:02ID:???0785NAME IS NULL
2005/05/19(木) 15:27:31ID:???「しゅきにして」
0786NAME IS NULL
2005/05/19(木) 15:32:57ID:???0787NAME IS NULL
2005/05/19(木) 16:40:30ID:???となると、主キーかそれにかわる一意なデータでFindだね。
0788782
2005/05/19(木) 21:07:00ID:???ありがとうございましたペコリ
0789NAME IS NULL
2005/05/20(金) 02:20:35ID:???組帳票で用紙サイズが違うんだけれども。
調べたけど中々見つからない
0790NAME IS NULL
2005/05/20(金) 13:32:56ID:???素直にレポート分ける方が簡単だと思う
マクロかVBAでまとめて打ち出すのを作っておけばいいだけじゃん
0791なな士さん
2005/05/21(土) 21:38:43ID:???_/ノ.. /、
/ < }
ry、 {k_ _/`;, ノノ パンパンパンパン
/ / } ;' `i、
_/ノ../、 _/ 入/ / `ヽ, ノノ
/ r;ァ }''i" ̄.  ̄r'_ノ"'ヽ.i ) ―☆
{k_ _/,,.' ;. :. l、 ノ
\ ` 、 ,i. .:, :, ' / / \
,;ゝr;,;_二∠r;,_ェ=-ー'" r,_,/ ☆
【ラッキーレス】
このレスを見た人はコピペでもいいので
10分以内に3つのスレへ貼り付けてください。
そうすれば14日後好きな人から告白されるわ宝くじは当たるわ
出世しまくるわ体の悪い所全部治るわでえらい事です
0792NAME IS NULL
2005/05/22(日) 00:47:50ID:iYdOfrnoテーブルのリンクを張る際、USERIDとパスワードの入力を求められますが、
パスワードを保存する、というチェックをしておかないと、次回以降、
テーブルオープン時(VBA上でselect時)に毎回パスワードを聞かれてしまいます。
このパスワード入力をVBA上で埋め込む実装はどのようにすればよいですか。
プロパティの変更ではなく、テーブル接続時のパラメータのような感じで
実装したく思っています。
0793NAME IS NULL
2005/05/22(日) 11:03:00ID:???VBAでデータベースOPEN時のDSN文字列にPASSWORD書く欄あるから、そこに書いておけば
以降はテーブル開ける度に必要になる事は無いハズ。
0794NAME IS NULL
2005/05/22(日) 13:37:44ID:9+eG6gvIAccess2003使ってます。
何かの参考書に、「主キーがNumberだとそうなる」とあったんですが
varcharにしてもなるんですが、、
AccessからODBC接続すること自体が間違いなんでしょうか?
0795NAME IS NULL
2005/05/23(月) 04:11:50ID:???内容はAccessをJavaへ変換するというものです。
興味があるんですが、使ってみた方はいらっしゃいませんか。
レポートお願いします。
0796NAME IS NULL
2005/05/23(月) 11:20:15ID:???体験版がDLできるはず。自分で使って皆歳
0797NAME IS NULL
2005/05/23(月) 22:39:26ID:???情報ありがとうございます。
以下のようにコーディングしてみました。
Dim cn As New ADODB.Connection
Dim ca As New ADOX.Catalog
Dim rs As New ADODB.Recordset
Dim ms As String
Dim tb As ADOX.Table
Set ca.ActiveConnection = CurrentProject.Connection
For Each tb In ca.Tables
If tb.Name = "TABLE_A" Then
ms = "ODBC;DSN=DSN名;NA=IPアドレス,ポート;"
ms = ms & "DB=DB名;UID=ユーザ;PWD=パスワード;TABLE=TABLE_A"
tb.Properties("Jet OLEDB:Link Provider String") = ms
End If
Next
これでうまくいきました。ただ、ディレクトリを読み取り専用にしたら
やっぱりうまくいきません。プロパティの変更を伴わず、パスワードを
渡せる方法はありますでしょうか。
0798NAME IS NULL
2005/05/25(水) 11:26:20ID:???接続時のパラメータ、これ=プロパティなので変更無しでという要望は無理でしょう。
ディレクトリを読み取り専用って、どこのディレクトリの話? ldbファイルを作成する
関係上読み取り専用はあまりよくないぞ。
それと、VBAで埋め込み実装するくらいなら最初のリンク時にパスワードの保存をし
た方が楽じゃないか?
結局そのテーブルにアクセスする時に誰彼構わずOKなんだから。
0799NAME IS NULL
2005/05/27(金) 09:39:35ID:gkDE1xQNクエリーで《今日から八日後迄の受注データを抜き出しなさい》
というクエリーはどうしたらいいのでしょう?初心者ですいません。
0800NAME IS NULL
2005/05/27(金) 09:59:59ID:???DATE関数で本日の日付を取得できる
0801NAME IS NULL
2005/05/27(金) 12:19:14ID:???DATEADD関数で○日後(前)の日付を取得できる。
んでも8日「後」までの受注データってあるのか?
先取りで受注日を入れるシステムなのか?
0802NAME IS NULL
2005/05/28(土) 00:27:32ID:???あらかじめ内示オーダー情報があって、
客先へ出荷する○日前に
確定オーダー情報に変更するとかってシステムでは?
内示オーダーが確定オーダーに変更される日 = 受注日みたいな。
まあ、799さんの言う8日後ってのが
受注日だとは限らないわけですけど。
0803NAME IS NULL
2005/05/28(土) 01:13:14ID:A/wqnLTQすみません説明が足りませんでした。正確には
“配送指定日の日付が本日から8日後迄のデータを抜き出しなさい”です。
申し訳ないです。宜しくお願いします。
0804NAME IS NULL
2005/05/28(土) 02:24:06ID:???DATE関数で本日の日付を取得できる
DATEADD関数で○日後(前)の日付を取得できる。
0805NAME IS NULL
2005/05/28(土) 07:32:34ID:???>>804+between
0807NAME IS NULL
2005/06/03(金) 13:17:55ID:dup57AmK実際の式を教えてください
0808805
2005/06/03(金) 14:11:57ID:???それくらい自分で調べようよ
ttp://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=between+date+DATEADD&num=50
0809807
2005/06/03(金) 20:51:00ID:CmRNI67dウルセー!>馬鹿
0810805
2005/06/03(金) 21:25:37ID:1DstjNvaなんだとー!>ぷんすかぽんっ!
0811NAME IS NULL
2005/06/04(土) 13:31:40ID:???0812NAME IS NULL
2005/06/04(土) 14:12:19ID:???0813NAME IS NULL
2005/06/06(月) 12:59:39ID:???良い方法はないでしょうか?
理由は、クエリAを元にして作ったクエリBを使っているフォームがあるのですが、
抽出条件を多様にしたいため変数を使ってクエリAのSQL文を作ろうと思っています。
しかし、問題になるのがそのクエリAを元にしているクエリBで、
SELECT クエリA.*
FRM クエリA LEFT JOIN 〜
となっているため、VBで作ったSQL文を元にクエリBのようなSQL文をどのように書けばいいのか分かりません。
そこで元々のクエリAのSQL文を丸々置き換えすればいいじゃないかと思ったのですが、
……もっとスマートなやり方があればそちらを教えてくださいorz
0814NAME IS NULL
2005/06/06(月) 13:12:27ID:???From にクエリAのSELECTを埋め込んで別名をつけ・・・という方法もある。
とりあえずは今のままで割と簡単に対応するとしたら、クエリAのSQLをVBA
で作成し、クエリAのSQLを書き換えてしまえばいい。QueryDefとSQLプロパ
ティを使えばできるだろ。
0815NAME IS NULL
2005/06/06(月) 14:27:55ID:???別名付けて成功しました。thx
0816NAME IS NULL
2005/06/07(火) 19:44:54ID:???むこうのデータを使用して集計しようとすると遅くて遅くて困ってます。
0817NAME IS NULL
2005/06/07(火) 20:06:40ID:???ALTER TABLE
0818NAME IS NULL
2005/06/07(火) 20:11:24ID:???リンクしたテーブルをデザインで見るとわかるが、インデックスの部分は
保存不可なので無理です。JETで外部インデックスってなかったと思うし。
集計するためのSQLが複雑だったり、クエリのクエリや外部結合などボト
ルネックになる部分を徹底的に削るしかないんじゃない。
そのためには、ダミーのMDBやテーブルを使ってこれに必要なデータを
追加して。で、これはAccessだからインデックスつけられるっしょ。
そこまでする必要性がない集計で遅いのであれば、お手上げですが。
0819NAME IS NULL
2005/06/07(火) 22:46:48ID:???間違えたこっちだった。
"create unique index <インデックス名> on <テーブル名(フィールド名)>"
0820NAME IS NULL
2005/06/08(水) 07:25:07ID:???>リンクテーブルにはインデックスは設定できません。
>但し、ODBC リンクテーブルには 「擬似インデックス」 を設定できます。
>擬似インデックスは元のテーブルには影響を与えません。
リンクテーブルだから意味ないんでね?
0821NAME IS NULL
2005/06/09(木) 21:54:41ID:TI+V+km2テーブル”T_出勤日”には年月日フィールド(日付時刻型)と出勤日フィールド(数値型)があります。
出勤日フィールドには、出勤日は"1"、休日は"0"の数値が入ってます。
これを利用してフォームで納期日の計算をしたいのです。
作業日テキストに入力された日付から、出勤日のみの7日後を非連結テキストに表示させたいのですが
どうやっていいのか良くわかりません。
VBAで
dim i as integer
for i = 1 to 7
とかでやりたいんです。
どなたか教えてください。
0822NAME IS NULL
2005/06/09(木) 22:50:50ID:???頭の悪い回答で良ければ一つ思い付いた。
とにかく七日後の日付が分かれば良いんだよね?
だったら、
SELECT T_出勤日.年月日, T_出勤日.出勤日, DSum("年月日","このクエリ名","年月日 <= #" & [年月日] & "#") AS 作業日カウント
FROM T_出勤日
WHERE (((T_出勤日.年月日)>=[forms]![フォーム名]![作業日]) AND ((T_出勤日.出勤日)=1));
てな感じの、出勤日の値(幸いにも出勤が1なので)の累計を出すクエリを作ってしまって
フォーム上でDLookUp("年月日","クエリ名","[作業日カウント]=7")で呼び出してしまえば
出勤日のみの七日後分かるけど、どうだろう?
0823NAME IS NULL
2005/06/10(金) 19:14:30ID:???やはり一旦ローカルにテーブルコピーするしかないようです。
既存のレコードもちょくちょくデータが変わるようなので、その都度テーブル削除して
コピーし直す時間を考えると集計速度犠牲にした方がいいのかもしれないですね。
0824NAME IS NULL
2005/06/10(金) 20:14:11ID:???累計で出す必要なかった(重いし)。こっちで良いみたい。
select *
from T_出勤日
where 年月日=(select max(年月日) from (select top 7 年月日 from T_出勤日 where 年月日>forms!フォーム名!作業日 and 出勤日=1))
0825NAME IS NULL
2005/06/11(土) 00:16:32ID:QZdqXtV2可能であれば初期値の設定も。
0826NAME IS NULL
2005/06/11(土) 01:36:39ID:???ユーザー定義関数を作成すればいい。
Public Renban As Long
Public Function XXXX(dmy) As Long
On Error Resume Next
Renban = Renban + 1
XXXX = Renban
End Function
クエリでこれを項目として設定。引数には何かしらフィールドをセットする事。
更新なら順不同が前提。レコードの追加でなら並べ替えで指定した順に
連番を付けられる。
で、そのクエリを実行する前にVBAで Renban = 0(もしくは初期値を考慮し
た数値)を実行。
とりあえずはいろいろある方法のうちの1つということで。
0827825
2005/06/11(土) 13:26:31ID:QZdqXtV2ありがとうございます。
あなたは神様です。
0828825
2005/06/11(土) 13:38:08ID:QZdqXtV2確かにないと、うまくいかない・・・
クエリー実行前にRenban変数を↓のようにしても0にならないのは
なんでなんですか?
Public Sub()
Renban = 0
End Sub
0829826
2005/06/11(土) 16:06:14ID:???dmyが必要な理由は、うまく説明できないなぁ。クエリからコールされる時にフィールドを
渡してやると、このレコードもしくはフィールドの処理ってことで毎回毎回1レコード毎に
コールされるようになる。この引数がないとその必要がないと見なされる。
もっと詳細に知りたい場合は、ぐぐるなりMSやMSDNの資料を漁るなりしてくれ。
そのSubをどこからコールしてるんだ?Subとして定義しただけでは意味はないぞ。
つうか、ちゃんと関数定義しろよ。関数名Subはやめろ。転記ミスなら気付け。
で、そもそもクエリをどうやって実行するのか知らないのだが、VBAでDoCmdするなら
その関数でDoCmdの直前に Renban = 0 とすればよいだけ。
0830825
2005/06/12(日) 08:49:18ID:KoTmaxZI調子こいてタメ口きいてんじゃねーよ!>アフォ
0831NAME IS NULL
2005/06/12(日) 12:26:30ID:???0833NAME IS NULL
2005/06/12(日) 22:18:05ID:???仮に829本人としたら、うんこ釣りに反応するなよw
0835NAME IS NULL
2005/06/13(月) 08:38:15ID:???レベル低い人が多いんですね。
0836NAME IS NULL
2005/06/14(火) 09:52:34ID:???0837NAME IS NULL
2005/06/14(火) 16:02:22ID:PY+Y24XSを求めてるのではないかと思う。
825は、最低のクソだな。初歩的な事がわからず、それを教えてもらったのに。
Accessも人間もやめた方がいいぞ。
0838NAME IS NULL
2005/06/14(火) 18:31:19ID:???うんこ釣りを本気にしちゃダメですよ
0840NAME IS NULL
2005/06/15(水) 02:15:54ID:???教えてもらった本人825がうんこ釣りしてもかい?
いや、なりすましなのかな?
0841NAME IS NULL
2005/06/15(水) 02:16:39ID:???>>837 ×
>>838 ○
0842NAME IS NULL
2005/06/15(水) 07:19:46ID:???こういう時は825も829もなりすましということにしておくのがベターだ。流せ。
0844NAME IS NULL
2005/06/15(水) 15:06:24ID:???0845NAME IS NULL
2005/06/15(水) 16:20:44ID:???日に日にファイルサイズが肥大していく・・・
2003導入当時65MBほどだったのが2週間で144MB。
2000で運用時はこんなことなかったのに。
どなたか原因わかりませんかorz
0846NAME IS NULL
2005/06/15(水) 20:12:50ID:???データの最適化は定期的にやってますか?
0847NAME IS NULL
2005/06/15(水) 21:57:58ID:???2002だと
ツール → オプション → 全般タブ
『 閉じる時に最適化する 』 にチェックを入れるんだけど
2003にはないでしょうか?
0848NAME IS NULL
2005/06/15(水) 22:06:26ID:???増え方が大きくて異常なんだがこれどういうことよ、ではないかと思うダニ。最適化どうこうじゃなく。
0849NAME IS NULL
2005/06/15(水) 22:49:18ID:???ツール→オプション→詳細
『レコードレベルでロックして開く』にチェックがついているとMDBが異常に
でかくなるそうです。
2000がチェックなしで2003がチェックされているとか?
0850846
2005/06/15(水) 23:50:57ID:???そうなの?
オレの場合、2000でチェック入れてるけど開発環境でも複数のユーザー先でも異常な
増え方はないよ。何か環境とかバージョンとか関係するんかなぁ。その話の出所も教え
てあげた方が良くないか?
>>847
それ、うっとおしい。
0851NAME IS NULL
2005/06/16(木) 03:02:30ID:???ぐぐってみたら何件かあったよ。
ttp://www.akj.co.jp/aug/qa/ans0001-0050/1284.html
ttp://www.accessclub.jp/bbs/0072/beginers27133.html
ttp://www2p.biglobe.ne.jp/~sakurait/cstrue/cl1999/cl1999c4.html
0852845
2005/06/16(木) 09:24:10ID:???とりあえずレコードレベルでロックして開くをオフにしてやってみます。
0854NAME IS NULL
2005/06/17(金) 10:07:03ID:3Jh7Qxk4☆ 教えてください ☆
慣れ親しんだLANで共有されている
アクセスDBをまだ使いたいのですが、
エクセルでネットワークリンクされたアクセスDBですが、
アクセスを開くと排他となり、エクセルが開かないのですが、
初心者的な質問ですが、どなたかご回答お願いいたします。
0855NAME IS NULL
2005/06/17(金) 10:29:52ID:???0856NAME IS NULL
2005/06/17(金) 10:51:09ID:???オートコレクトの性能が思いっきり下がってるような・・・。
コンボボックスのリスト行数が増えると、ある程度以降のデータをコレクトしてくれない・・・。
以前のバージョンのような挙動に直したりできないですか?
0857NAME IS NULL
2005/06/17(金) 12:44:16ID:???サブフォームの最終レコードに移動したりしたいんですが、どうすれば可能ですか?
0858NAME IS NULL
2005/06/17(金) 12:56:11ID:???VBAで処理すれば可能。・・・この程度は本来、自分で調べて悩んで会得するものだが。
メインフォームのプロシージャとしよう。エラー処理は考えてない。
Me![サブフォームコントロール名].Form![サブフォーム上のテキストボックス名].SetFocus
最終レコードはいろんなやり方があるが、メインフォームから処理する場合の一例。
Dim SubRs As Recordset
Set SubRs = Me![サブフォームコントロール名].Form.RecordSetClone
SubRs.MoveLast
Me![サブフォームコントロール名].Form.Bookmark = SubRs.Bookmark
0859NAME IS NULL
2005/06/17(金) 14:09:25ID:???>Dim SubRs As Recordset
>
>Set SubRs = Me![サブフォームコントロール名].Form.RecordSetClone
>SubRs.MoveLast
>Me![サブフォームコントロール名].Form.Bookmark = SubRs.Bookmark
式で型が一致しませんと出てダメぽです
0860NAME IS NULL
2005/06/17(金) 14:30:55ID:???Set SubRs = Me![サブフォームコントロール名].Form.RecordSetClone
の時点でダメっぽいです
0861NAME IS NULL
2005/06/17(金) 14:51:07ID:???0862825
2005/06/17(金) 21:46:27ID:???0863NAME IS NULL
2005/06/17(金) 22:56:24ID:???0864NAME IS NULL
2005/06/17(金) 22:57:45ID:???うんこ釣りに反応するなよw
0867864
2005/06/18(土) 13:36:03ID:???0868825
2005/06/18(土) 16:34:44ID:???0869825
2005/06/18(土) 16:44:53ID:???※レイコ=葉山レイコ
0870NAME IS NULL
2005/06/18(土) 21:07:08ID:???0871NAME IS NULL
2005/06/19(日) 01:19:49ID:n9q/trAxさすが安いだけのことはある
0872NAME IS NULL
2005/06/19(日) 05:22:30ID:???(゚Д゚)ハァ?
0873NAME IS NULL
2005/06/19(日) 09:30:47ID:???たかがデスクトップデータベースに何を望む。
使い物になるかどうかは知らんが、パフォーマンスの最適化ってのはあるぞ。
0874NAME IS NULL
2005/06/19(日) 11:31:56ID:n9q/trAxExplainでクエリ分析くらい、できたっていーじゃんと思ったのよ
まあいいよ
もうテストデータ作成用ツールとしか見ないから
0875NAME IS NULL
2005/06/19(日) 11:47:03ID:???0877NAME IS NULL
2005/06/19(日) 13:43:53ID:???> もうテストデータ作成用ツールとしか見ないから
これは、社内システムの全てをAccessで構築している
俺の会社に対する挑戦と受け取っていいんだな?
0878NAME IS NULL
2005/06/19(日) 13:57:23ID:???それ以外は、、 おもちゃ
0879NAME IS NULL
2005/06/19(日) 14:27:53ID:???Accessは手軽でいいと思うが
>社内システムの全てをAccessで構築している
これはちょっと問題あるな。GUIだけならまだ救いはあるが。
0880NAME IS NULL
2005/06/19(日) 14:34:00ID:???0881NAME IS NULL
2005/06/19(日) 15:02:11ID:???0882NAME IS NULL
2005/06/19(日) 15:35:10ID:???ネタじゃないって。
ログイン管理システムから始まり
メール・スケジュール管理・掲示板システム、
メインフレームとのデータ送受信システム、
数百万レコードのバッチ更新システムなどもある。
もちろん人事・経費管理などはバリバリ。
しかもAccess95だ。
今はデータウェアハウス(もどき)を作ろうという
計画が進行中だが、レコード数が軽く億を越える
非常にチャレンジングなものだ。
0883NAME IS NULL
2005/06/19(日) 15:49:18ID:n9q/trAxそんだけのデータ扱うなら今すぐAccessなんて止めたほうがいーんじゃないすか?
なんでまともなDBMS使わないんですか?
0884NAME IS NULL
2005/06/19(日) 15:50:16ID:???俺も一部上場企業の人事システムをAccessのみで組んでる案件に参加した事あるし
0885NAME IS NULL
2005/06/19(日) 16:25:55ID:???0886NAME IS NULL
2005/06/19(日) 16:34:00ID:???0887NAME IS NULL
2005/06/19(日) 21:10:12ID:???いろいろ手に入って製品購入するより安いぞ。
名目は、開発・評価用だがな。
>>882
それはチャレンジとは言わない。無謀。
見た目は、動くものができるけどな。
0888NAME IS NULL
2005/06/19(日) 22:41:04ID:???>>884と同じことした。
一部上場の中でも超一流の企業の人事をAccessで開発した。
当初、パッケージ選定を行ったが、頭の硬い人事は納得できず、
カスタムメイド。数千人規模の会社だから異動履歴とかのデータ
件数を考慮してもAccessで十分。しかも安上がり。
逆に、>>885に異常である具体的な根拠を聞きたい。
>>885はもの凄いITエンジニアか、単なる馬鹿のどちらかだとw
0889NAME IS NULL
2005/06/19(日) 23:01:55ID:???おっと、こいつも業務知らないヴァカだった。
数万人規模の会社でも、個別の人事情報の更新作業は年に2回のお祭り
作業(人事異動)でせいぜい2〜3名が行う。
トランザクションのために高価なDBサーバ&開発費をかけるくらいなら
・・・
書き始めたけど、消した。これ以上は企業秘密ってことでwww
0890NAME IS NULL
2005/06/19(日) 23:12:30ID:???うちの会社はmdbファイルに別のプログラムからアクセスして更新する方法を
とっていたが最近SQLに変更し始めた
0891NAME IS NULL
2005/06/19(日) 23:42:39ID:???馬鹿はお前だろ
>>882の時点で↓という業務要件である、なんて一切書いてないやん。
>数万人規模の会社でも、個別の人事情報の更新作業は年に2回のお祭り
>作業(人事異動)でせいぜい2〜3名が行う。
0892NAME IS NULL
2005/06/20(月) 00:17:08ID:???はぁ?
馬鹿はオマエだろ?!
論拠書いてないし・・・・( ゚,_ゝ゚)バカジャネーノ
人事システムなんて濃度は濃いが・・・おっとまた書きそうにwwww
0893NAME IS NULL
2005/06/20(月) 00:41:25ID:???>数万人規模の会社でも、個別の人事情報の更新作業は年に2回のお祭り
>作業(人事異動)でせいぜい2〜3名が行う。
の事実を知らない段階での意見なわけだが、、
>書き始めたけど、消した。これ以上は企業秘密ってことでwww
>人事システムなんて濃度は濃いが・・・おっとまた書きそうにwwww
↑聞いてもないこと自分からベラベラ喋るおっさん、キモイですよー
0894NAME IS NULL
2005/06/20(月) 09:18:24ID:???0895NAME IS NULL
2005/06/20(月) 09:56:11ID:???> 業務知らない
アナタの決めつけの業務なんて知らないのは当たり前、というか
井の中の蛙ってやつだね。
いろんな企業の人事関係のシステムを開発したけど・・・おっと
これ以上は企業秘密ってことで。ぷっ。
つ〜か、アンタ程度のところの企業秘密ってのは、みんなが当然
の知識としていることじゃねぇの。
0896NAME IS NULL
2005/06/20(月) 10:00:04ID:???0897NAME IS NULL
2005/06/20(月) 10:50:47ID:???あるし自分が経験してることでもあるが、MDBって壊れやすいでしょ。
安上がりなのも確かなんだけど、MDBが壊れた際にSEや開発者の手を
煩わせる必要なく、迅速にユーザーだけで復旧させることができる手段
を用意してるの?
処理速度は、いらつくことなく一連の作業が終了するようになってる?
そういうのがクリアされてれば別にAccessでもいいと思うが。
オレは、Access嫌いだけど会社とユーザーの方針だから諦めてAccess
で開発してる。
0898NAME IS NULL
2005/06/20(月) 11:23:23ID:???取りたいのですが、バックアップファイルに作成日時を入れることは
可能でしょうか?
データベース保守計画にて作成したフルデータベースバックアップ
ファイルには日付が付くのですが、保守計画では差分バックアップ
が作れないらしく困っています。
どなたかご存知の方がいらっしゃったら、教えてください。
お願いします。
0899NAME IS NULL
2005/06/20(月) 19:40:27ID:???グラフをエクスポート。
ここまでの流れを一回の動作でやりたいんだけど、MS graphはグラフの描画を他の命令の最後にやるので
まだ描画されてないグラフ(真っ白)がエクスポートされる。
なんとかグラフ描画を、エクスポートの命令の前にさせたい。
repaintやrequeryやっても駄目だったんだが、他になんか手無い?
0900NAME IS NULL
2005/06/21(火) 00:30:57ID:???Oracle :*********************************
SQLServer:*************************
MySQL :***************************
Access :***
0901NAME IS NULL
2005/06/21(火) 09:43:53ID:???DoEventsとか
0902NAME IS NULL
2005/06/21(火) 17:21:20ID:???どんなコードを書けば良いのでしょうか?
0903NAME IS NULL
2005/06/21(火) 19:42:02ID:???(1) FormのKeyPreviewをTrueにする。
(2) Formのキーダウンイベントで↓キーの打鍵をチェックする。
(3) ↓キーが押されたならばフォーカスを移動し、↓キーが処理された
ことにするため、KeyCodeをゼロにする。
できると思うけど、実際に実装すると移動する前のフィールドが編集中か
どうかのチェックなども必要だからかなり面倒だと思う。
0904NAME IS NULL
2005/06/21(火) 21:05:11ID:???If keycode = 40 thenでできました。ありがとうございます。
一応これで満足しているのですが、後学のために
>移動する前のフィールドが編集中かどうかのチェック
をどんな手段で行うのか教えて貰えませんか?
0905NAME IS NULL
2005/06/22(水) 11:02:06ID:???903ではありませんが。と、試したわけではなく頭で考えた段階で即RESしてる
ことに注意。
編集中の↓キーが考えられるパターンは、漢字変換中と複数行のテキストボッ
クス。漢字変換中の↓キーがKeyDownイベント発生してプロシージャに渡るか
どうかまでは試していないけど。
複数行のテキストボックスを考えただけでも、行を移動してるだけなのにフォー
カス移動はマズい。
その他に編集中の↓キーってのは、オレは思いつかなかった。903本人の意見
待ちだね。
0906NAME IS NULL
2005/06/22(水) 12:11:44ID:???0907NAME IS NULL
2005/06/22(水) 13:18:54ID:???↓キーは考えないとな
0909NAME IS NULL
2005/06/22(水) 22:34:57ID:cHoWp5Em「国テーブル」に「ID」、「国ID」、「国名」と言うフィールドが
それぞれあります。
レコードソースが「データテーブル」のフォームの上に
コンボボックスがあって、コントロールソースを「国ID」としています。
が、ここにはむしろ「国テーブル」の「国名」を表示させたいのですが、
どうしたらよいでしょう。
もう一つ、このコンボボックスから「国名」を選んで「データテーブル」の
「国ID」を正しく入力したいのですが、こちらの方もお願いします。
「国名」を表示させるのはできました。ただ入力時に型が違う旨の
エラーが出ます。
0910NAME IS NULL
2005/06/22(水) 23:35:14ID:???プロパティーの「列幅」を0cm;0cm;xxxcmにしてみたら?
0911NAME IS NULL
2005/06/22(水) 23:39:40ID:???コンボボックスの基礎なので丁寧な解説にチャレンジしてみるか。
コンボボックスのプロパティ→データタブの値集合ソースにカーソルを合わせて「…」を押すと
クエリ作成画面が出てくるので、いつもクエリを作っている要領で「国テーブル」を選択して
列に「国名」「国ID」の順番で挿入。んで、×ボタン押して閉じようとするとメッセージが出るので
ok押してプロパティ画面に戻る。
そのあと、列連結を2にする。
こうすると、画面上には国名しか表示されないけど、データ上では国IDが保存されることになる。
[▼]を押したときに国IDも表示させたいなら、書式タブの列数も2にしておく。
0912NAME IS NULL
2005/06/23(木) 00:41:46ID:???思うぐらいアホくさいっすよ。ヘルプや解説本見て勉強しろと言いたい。
0913NAME IS NULL
2005/06/23(木) 07:01:13ID:???0914NAME IS NULL
2005/06/23(木) 10:20:28ID:???まず初めに他人に聞くって根性が気に入らん。
0915NAME IS NULL
2005/06/23(木) 11:35:07ID:???i-modeで2chなんだろ。そして本買う金もないのでパケット代も払えない、と。
0916NAME IS NULL
2005/06/23(木) 11:51:52ID:???0918NAME IS NULL
2005/06/23(木) 21:49:18ID:???access2000でレポートにjpgなどの画像を張り付けることってできますか?
知ってる方いましたらお願いします。
0919NAME IS NULL
2005/06/23(木) 22:15:34ID:???おおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおい!!!!!!!
できるに決まってるだろおおおおおおおおおおおおおおおおおおおおおおおおおおおお!!!!!!!!!!!
さすがにそれくらい自分で調べようぜええええええええええええええええええええええええ!!!!!!!!!
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0920NAME IS NULL
2005/06/23(木) 22:33:24ID:???調べ方が分からないと書きそうだから、検索の見本を置いておこう……
0921NAME IS NULL
2005/06/25(土) 10:31:08ID:???0922NAME IS NULL
2005/06/27(月) 00:25:33ID:???社内で軽いDB的なものを作って、共有させていたのですが、
プチパワーユーザがいじくるのでコントロールボックスにPASS制限をかけました。
そうしたら、そいつがローカルに落としていろいろやろうとして、
あげく、上書きまでしようとするので、手を焼いております・・・
実行PCの制限とか、外部ファイルが無ければ起動しないとか、なにかいい知恵は
ございませんでしょうか・・
所詮いたちごっこなんですけどね・・・
0923NAME IS NULL
2005/06/27(月) 01:56:20ID:???ここで聞く前に、そいつに直接文句なり言ったほうが早いでしょ。
0924NAME IS NULL
2005/06/27(月) 02:45:27ID:???会話したくもないっす・・
やっぱ>>7が書いてくれてるとおりSアロンが基本ですね・・・
0925NAME IS NULL
2005/06/27(月) 07:17:36ID:???上司に相談しなよ仕事だろ……。会話もしたくないって子供かよ。
0926NAME IS NULL
2005/06/27(月) 07:19:21ID:???MDEにはできないのか?
MDBは、アンタが管理すればいい。それ以外では、MDBにパスワードを
つける。他の人の起動はショートカットを作成してコマンドラインにパス
ワード指定すればいい。で、Shift押しながらの起動を無効化すればオブ
ジェクト編集できなくなる。以上の措置を施す前のMDBを残しておくこと
も忘れずに。
0927NAME IS NULL
2005/06/27(月) 19:43:05ID:???いや、こんなんで上の者の手を煩わせたくは・・・
>>926
ありがとうございます。その処理は済ませております。
私の説明がまずかったと思うのですが、問題は、ローカルに落として作業・・のほうです
>々マニアックな質問ですがよろしいでしょうか?
>社内で軽いDB的なものを作って、共有させていたのですが、
>プチパワーユーザがいじくるのでコントロールボックスにPASS制限をかけました。
ここまで愚痴。
>そうしたら、そいつがローカルに落としていろいろやろうとして、
>あげく、上書きまでしようとするので、手を焼いております・・・
問題はここ
ローカルに落として作業>戻して上書き・・これを防ぎたく・・・
0928926
2005/06/27(月) 20:07:43ID:???突っ込んで申し訳ないが、コントロールボックスにPASS制限ってのが意味が通じないのだ。
更に、
> その処理は済ませております。
というが、どっちの話なのさ。MDEに変換かMDBにパスワードか???
どちらにせよ、これをローカルに落としたとしても、MDEならオブジェクトを見れないしパス
ワードの方はパスワード自体漏らさなきゃMDBを開けない。金出してパスワード解析ツール
を買って持ってるなら別だが。
MDEの変換前・パスワードかける前の元になるMDBをネット上に置いて、プチパワーユー
ザーに晒してるんじゃないのか?
どうも話がわからん。上書きを防ぎたいならアクセス権限をReadOnlyにすればいいんだし、
内容の変更されてないファイルなら仮に上書きされてもちっともこまらんだろうに。
0929NAME IS NULL
2005/06/28(火) 02:27:50ID:???922はACCESSの技術力より、人間関係の構築に
力を注いだ方がいいような気がする。
俺だったら
「あ、君がやってくれるんだ。じゃあ、頼んだよ」
てな具合に、諸手を挙げて大喜びなんだけどね。
0930NAME IS NULL
2005/06/28(火) 07:15:29ID:???0931NAME IS NULL
2005/06/28(火) 08:41:54ID:???オマエ、朝のTV見ながら書き込みしてるだろ?
>>927
はよ出てきて書き込んでくれぇ。
>>928 が待ってるよぉ。
0932NAME IS NULL
2005/06/28(火) 10:23:54ID:???だから内々に解決させてもみ消したい、と。
漏れも>>929に全面同意。
0933NAME IS NULL
2005/06/28(火) 13:00:59ID:???0934NAME IS NULL
2005/06/28(火) 22:45:16ID:???0935NAME IS NULL
2005/06/28(火) 22:50:00ID:???0936NAME IS NULL
2005/06/29(水) 00:00:30ID:JiJb7D9H926が言うとおりMDEにするかランタイム版を配布すればよいと思われ。
もしくは、これも926が言っているが、読み取り専用ユーザーを指定すれば
いいんでは。
元MDBは本人しか開けないローカルもしくはサーバのフォルダに保存しとく。
まぁ、922のマシンのログオンパスばれたら終わりだけど。
0937NAME IS NULL
2005/06/29(水) 00:14:35ID:???プチパワーユーザーはロリ系巨乳ガングロ。
0938NAME IS NULL
2005/06/29(水) 01:32:48ID:???MDBのままで制限を加えたいのならばセキュリティ設定をすればいい。
自分専用のワークグループファイル(system.mdw)を作り、新しいスーパー
ユーザーを登録し、そのスーパーユーザーでログインして、管理者を管理者
グループから削除する。
管理者の所属グループはユーザーグループだけになるから、ユーザー
グループから構造の変更と管理者の権限を剥奪すれば、通常の使用は
できるが、書き換えのできないクエリーやデザインモードで開けない
フォームやレポートができる。
設定が済んだらワークグループファイルの設定を標準に戻せばいい。
0939NAME IS NULL
2005/06/29(水) 16:33:48ID:QC2EZRZr脳みそはゾーリ虫なみ
ま、リストラされて淘汰されて死んじゃってくれw
0940NAME IS NULL
2005/06/29(水) 16:37:05ID:???頭の軽い香具師ばかりで笑えるな
(^∀^)ゲラゲラ シネヤカスドモ
(^∀^)ゲラゲラ シネヤカスドモ
(^∀^)ゲラゲラ シネヤカスドモ
(^∀^)ゲラゲラ シネヤカスドモ
0941NAME IS NULL
2005/06/29(水) 17:35:32ID:???0942NAME IS NULL
2005/06/30(木) 08:31:20ID:a9IzzHYE30名程のバイトさんのシフト管理をしたいのですが,次の月の日付と曜日をあらかじめ出す事はできますか?
イメージですが,担当者コードを入力したら七月分の日付と曜日が表示され,出勤時間と退勤時間を入力出来る様にしたいです。
初心者ですいません。
0943NAME IS NULL
2005/06/30(木) 09:15:52ID:???できる。
0944NAME IS NULL
2005/06/30(木) 09:16:40ID:???できるけど、そのシフト管理のテーブル構成が分からない限りこれ以上答えようがない。
0945NAME IS NULL
2005/06/30(木) 16:36:19ID:???良い方法はないでしょうか?
0946NAME IS NULL
2005/06/30(木) 18:25:08ID:Xy62p/jNテーブル1 名前 電話 担当コード
テーブル2 担当コード 名前 出勤時間 退勤時間
これ以外に必要な物ありますでしょうか?
0947NAME IS NULL
2005/06/30(木) 18:56:03ID:???テーブル2に日付フィールドなくていいの?
そして2に名前はいらなくない?
0948NAME IS NULL
2005/06/30(木) 19:14:44ID:Xy62p/jNそうですね。 以下に変更しました。
テーブル1 名前 電話 担当コード
テーブル2 担当コード 年月日 出勤時間 退勤時間
0949NAME IS NULL
2005/06/30(木) 22:54:46ID:???次の月の日付が出てくるようにということだけど、常に次の月しか表示されないと後で
修正したい時とか困るだろうから、次の月は規定値ということにして他の月も選べるようにした方が良いと思う。
で、フォーム上で月と担当者を選択して適当なコマンドボタンを押すと、
その月と担当者のレコードがあるか判定して、なければその月の1日から月末までレコード追加。
あとはその月と担当者のレコードのみ抽出して表示するようにすればお望みの物はできるんでない?
0950949
2005/06/30(木) 22:56:24ID:???Dim t As Integer
Dim d As Date
Dim d2 As Date
Dim c As Integer
Dim s As String
t = Me.担当者 ←選択用の担当者コード
d = Me.年月 ←選択用の年月
d2 = DateAdd("m", 1, d) - 1
c = DCount("担当コード", "テーブル2", "([年月日] Between #" & d & "# and #" & d2 & "#) and ([担当コード] =" & t & ")")
s = "SELECT テーブル2.* " & _
"FROM テーブル2 " & _
"WHERE (((年月日) Between #" & d & "# And #" & d2 & "#) AND ((担当コード)=" & t & "))"
If c = 0 Then
While d <= d2
DoCmd.GoToRecord , , acNewRec
Me.年月日 = d
Me.担当コード = t
d = d + 1
Wend
End If
Me.RecordSource = s
End Sub
0951初心者
2005/07/01(金) 10:50:20ID:???部品在庫管理で、出庫先が修理に使用と
オークに出品等(部品販売)になる場合は
テーブル構成はどうしたらいいのでしょうか・・?
ttp://www5d.biglobe.ne.jp/%7Eac2000/mokuzi.html
上記のサイトを参考にしたのですが、出庫のとこでつまづいてしまったので・・orz
宜しくお願いします・・。
0952NAME IS NULL
2005/07/01(金) 11:08:39ID:???初心者と名乗るのやめようぜ……それだけで答える気力なくなる
0953NAME IS NULL
2005/07/01(金) 11:12:32ID:???どんなデザインなのかは知らないけど、単純に在庫テーブル(があるかどうか知らないけど)に
出庫先入れるフィールド作るんじゃダメなの?
0954NAME IS NULL
2005/07/02(土) 02:21:57ID:FeUGEv4T私にはちょっと難しいですが,調べて頑張ります。
0955954
2005/07/03(日) 08:14:24ID:4JsxXgUv0956NAME IS NULL
2005/07/03(日) 08:36:50ID:???Excelで管理する。日付も曜日もマウスでドラッグすれば、いっぺんに設定で
きるしな。テンプレートとして合計出したりなどの計算式埋め込んでおけば
それなりに管理できるぞ。
今まで教えてもらったレベルが難しいなら、現時点ではAccessは諦めること。
だって、基本に近いのに難しいっていわれたら、アドバイスしようがないぞ。
0957NAME IS NULL
2005/07/03(日) 12:35:32ID:???特殊なことやろうとすると面倒になるのは必然で、これ以外の「簡単な」方法は無いと思う。
役に立つかどうか分からないけどサンプルうpってみた。
ttp://up.isp.2ch.net/up/4f67efa370bd.zip
pass:sage
0958NAME IS NULL
2005/07/03(日) 14:53:00ID:tJaBCq+Uテーブルでフィールドaとフィールドbに数値を入力したら自動的にその和がフィールドcに表示されるみたいなことをやりたいんですが
0959NAME IS NULL
2005/07/03(日) 16:18:52ID:???無理。テーブルはそういうのは想定していない。
他のフィールドへ自動で値を入力するなんてのは、必ずフォームを使う。
見た目をテーブルっぽくしたいなら、既定のビューをデータシートにした
フォームを使えばよいと思うが、どうだろうか?
0960NAME IS NULL
2005/07/03(日) 18:58:52ID:???テーブルで直接入力するってのは愚の骨頂。Excelじゃないんだから。
0961NAME IS NULL
2005/07/03(日) 19:07:13ID:???0962NAME IS NULL
2005/07/03(日) 19:30:19ID:???すまんが、意味がちょいわからん。
取得したレコードセット・・・それって結果的にクエリのことじゃないの?
もしくは、ダミーテーブルとか。いずれにしても、帳票形式のフォーム
でレコードソースプロパティにそのレコードセットに該当するものをセット
すれば一覧表示可能だが、詳細は割愛。
0963NAME IS NULL
2005/07/03(日) 22:04:39ID:???0964NAME IS NULL
2005/07/04(月) 15:24:18ID:???返事ありがとうです。
文書じゃ分かりにくいので作ってるのを
テーブル構成を画像にしてみました・・。
http://v.isp.2ch.net/up/1206b5a7438b.jpg
宜しくお願いします・・。
0965NAME IS NULL
2005/07/04(月) 15:57:56ID:???もうそれで出てきてるんじゃないの?
0966NAME IS NULL
2005/07/04(月) 20:14:33ID:fz2JqpF5話はそれるが、仕入先が2社の部品は部品IDを分けているのか?
0967NAME IS NULL
2005/07/05(火) 02:45:28ID:???細かい話は抜きにして、修理と販売でテーブルを分けずに1つに
する。ID(コード)がどうなってるのか知らないけどね。
あとは、修理用と販売用のコードのためにフィールドを2つ設ける。
こっちの方法なら修正は少ないと思う。が、Goodな方法かどうか
までは不明。
0968NAME IS NULL
2005/07/05(火) 16:13:00ID:???リスト選択後のCtrl+Cを無効にしてくれと言われたがやり方がわからん
やさしい方教えてください・・・orz
0969NAME IS NULL
2005/07/05(火) 16:28:40ID:???Ctrl+A Ctrl+Cで全部のレコードがコピーできちまった・・・('A`;)
0970951
2005/07/05(火) 16:32:05ID:???>>967
修理と販売を纏めたテーブルには出庫用法ID設けるのはどうなんでしょうか?
>修理用と販売用のコードのためにフィールドを2つ設ける。
えっと、これは何のためでしょうか?(クエリで必要に?)
0971NAME IS NULL
2005/07/05(火) 16:33:01ID:???AutoKeysにctrl+Cを登録すれば無効になるけど根本的な解決になっているかどうかは不明。
0972NAME IS NULL
2005/07/05(火) 16:40:27ID:???なんというか、全く基礎がなってないようだから、いきなり全業務カバーするようなものはやめて
段階的に作っていった方がいいんでない?
質問の内容も曖昧でこれから無数に沸いてきそうだしキリがないよ。
0973NAME IS NULL
2005/07/05(火) 16:47:55ID:???>>951には難しそうだけど。
0974NAME IS NULL
2005/07/05(火) 16:51:10ID:???レスありがとん、AutoKeys早速やってみました。
しかし、作ってあるアプリがユーザごとにフォームのプロパティの
更新、削除、追加が可変になっている作りなので、、AutoKeysを利用すると
編集をするユーザまでコピペができなくなってしまうようです・・・(;´Д`)
AutoKeysって可変にできないのかな・・・とりあえずやってきます
0975NAME IS NULL
2005/07/05(火) 17:05:54ID:???Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
KeyCode = 0
Shift = 0
End Sub
このソースで上司は満足でした、日記みたいなカキコスマソ
0976967
2005/07/05(火) 21:32:16ID:???今のまま(修理用と販売用と分けてる)のテーブル構成でリレーションをとるため。
1つの出庫用法IDで修理用と販売用の2つにリレーションってのは無理でしょ。
出庫用法IDというのが、修理用と販売用でどういうコードつけになっているかわか
らないから的確なアドバイスはできません。
修理用と販売用でIDが重複することがないなら、テーブルを2つに分けてる方が
おかしいので1つにする。
>>975
それではユーザー毎の可変ができないだけではなく、入力キー全てが無効にな
るが。編集はオールマウス操作なのか?
0977971
2005/07/05(火) 22:05:22ID:???Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 67 And Shift = 2 Then
KeyCode = 0
Shift = 0
End If
End Sub
多分こっち
0978NAME IS NULL
2005/07/05(火) 22:23:39ID:???67, 2 ではなく、vbKey〜のConstを使いましょうよ。
0979NAME IS NULL
2005/07/05(火) 22:43:52ID:???0980NAME IS NULL
2005/07/05(火) 23:39:28ID:???オブジェクトブラウザで代用したら。
0981NAME IS NULL
2005/07/05(火) 23:47:37ID:???>>969です、みなさん、レスありがとん
実際にはKeyCodeとShiftに値を代入する前に
ユーザ権限チェックの分岐が入っています。
それにしても、うちの会社は基幹系以外のデータベースは
Accessで作っているものが多くて個人情報保護法なんたらに
早く対応しろやゴラァと上司にどやされており大変です・・・('A`)
んなもん、Windowsのパスワードと本体つなぐ鎖で十分だろうと(ry
0982NAME IS NULL
2005/07/05(火) 23:49:21ID:???0983NAME IS NULL
2005/07/06(水) 11:12:11ID:???更に社員に一方的に不利な内容にしておけば完璧。
0984NAME IS NULL
2005/07/06(水) 23:30:36ID:???誓約書なんていうのは自分(企業)が責任逃れするためのものだから、
概してそういうものでしょ。
レス数が950を超えています。1000を超えると書き込みができなくなります。