Access使い集合!
■ このスレッドは過去ログ倉庫に格納されています
0001名無しきぼう
NGNGAccess or VB で yyyy/mm/dd hh:mm:ss に変換する方法を
教えて下され!
0685デフォルトの名無しさん
NGNG文字に変換して前後にスペースを入れてから表示してみては?
0686683
NGNGうーむ、こっちではそれなりにダイナミックに右があいたが。
ひょっとして、VBAでセットしてない?twip値になるよ。
あとはプリンタドライバだな。
0687デフォルトの名無しさん
NGNG0688デフォルトの名無しさん
NGNG印刷時に、特殊な紙に印刷するため、用紙サイズをユーザー指定で行いたいのですが、
それができません。
ワードには用紙サイズ指定のところで、「ユーザー定義」という個所がちゃんとあったんですけど・・
ACCESSでそれを行う場合、どうすればよいでしょうか?
ちなみに、用紙サイズは10インチ×7インチです。
0689デフォルトの名無しさん
NGNGページ設定しる!
0690デフォルトの名無しさん
NGNG0691688
NGNGファイル−ページ設定ですよね?
そこにもユーザー定義の設定がないんですよ・・・・
>>690
連続用紙でドットインパクトプリンタで印刷するので、余白で調整という小細工をすると
2ページ以降がズタズタに狂ってきてしまわないでしょうか?
0692689
NGNGファイル−ページ設定−ページに「用紙サイズ」ないか?
オレのAc2kとEpsonのレーザプリンタの組み合わせならユーザ定義サイズが選択できるが。
0693689
NGNG0694デフォルトの名無しさん
NGNGOS、プリンタの種類による
NT系ならコントロールパネル-プリンタサーバーのプロパティ
新しい用紙を作成する
0695修正
NGNG0696デフォルトの名無しさん
NGNG0697デフォルトの名無しさん
NGNGプリンタの機種名は
NEC MultiImpact 700JX
です。
ただ、気になるのは、700JXを使ってる他の人のマシンだと「ユーザー定義」があったりなかったりします。
私のマシンは一応ドライバが最新です。(週末にNECからDLしてきました)
とりあえず、サーバのプロパティを見てみます。
0698688
NGNG0699688
NGNGACCESS上のページ設定には、追加したはずの10×7インチのサイズがありません(T-T)
方法が悪いのかな・・・・
引き続き情報お待ちしています・・・
0700デフォルトの名無しさん
NGNG追加したサイズのプリンタを選べてないのでは・・・。
ページ設定→ページ→その他のプリンタ→プリンタの設定→プリンタ名で
NEC MultiImpact 700JXを選択すればいいのでは?
0701688
NGNG普段から選んでいます^^;
どうも9x系だとできるという噂を聞いたので、
9x系でやってみることにしますが・・・
心配だ(T-T)
0702デフォルトの名無しさん
NGNG0703デフォルトの名無しさん
NGNG0704デフォルトの名無しさん
NGNG0705デフォルトの名無しさん
NGNGそれをAccessVBAでやとうろしても出来ないのです。
AccessVBAでそのアクセスファイルのあるディレクトリは取得できないのでしょうか?
0706デフォルトの名無しさん
NGNGCurrentProject.Pathでフォルダ名、
CurrentDb.NameでMDBのフルパスが取得できます。
0707デフォルトの名無しさん
NGNG少なくともうちの環境では追加した用紙サイズ使えてる
700JX Windows2000
0709yuki
NGNGし、複数mdbよりコールし使用する。こんな処理ってできます?
できるならば、実現方法と参考URLをお教えていただきたいのですが。
よろしくお願いします。
0710デフォルトの名無しさん
NGNGそれよかプログラムのみのmdbを一つとデータのみのmdbを複数
用意して、プログラムmdbからリンクを張って使うほうが現実的じゃ
ないかぇ?
0711デフォルトの名無しさん
NGNG出来ないわけが無い。
というか、MSのユニバーサルデータアクセスの概念分かっている?
http://www.microsoft.com/japan/msdn/data/default.asp
0712yuki
NGNGありがとうございます。
≫710
確かにその通りなんですが、VBを使用するロジックをどこかの処理で開発
しなければいけないのです。(上司命令)
VBとアクセスを併用する利点が理解できないのですが…(VBAで良いだろうと言いたい)
≫711
ありがとうございます。じっくりよんでみます。
0713デフォルトの名無しさん
NGNGなんでユニバーサルデータアクセスがでてくるんだ?
0714デフォルトの名無しさん
NGNGAccessもVBも、すべてのMSプロダクトのDBアクセスは、UDAの上に成り立てっている。
用は、AccessVBAで操作しようとも、VBから操作しようとも結果同じ事が出来る。
>712
VBで処理部をつくってAccess側で呼び出すとなると、VBでコンパイルしてAccessVBAから
オブジェクト呼びするという事だろうから難易度は結構上がるね。
VCだったらDLL形式の関数が作れるから、VCでコンパイルしてAccessVBAでデクレア宣言
すれば外部関数として使える。が、VBでは純粋DLL形式のプログラムは作れないから、VB
でアウトプロセスCOMかインプロセスCOMを作って、Access側からDAOやADOを呼び出す
用に使うしかない。
VBではAccessの共通関数なんか作れないからね。せひCOMで作ろうね!
0715デフォルトの名無しさん
NGNG純粋DLL形式
って??
0716デフォルトの名無しさん
NGNGもう片方のテーブルにひとつずつ追加していくコードを作ろうとしています。
Rs(0).MoveFirst
Rs(1).MoveFirst
Do Until Rs(0).EOF
Rs(0).AddNew
Rs(0)!ID = Rs(1)!ID
Rs(0)!Name = Rs(1)!Name
Rs(0)!NameKana = Rs(1)!NameKana
Rs(0)!Tel = Rs(1)!Tel
・
・
・
Rs(0)!Note = Rs(1)!Note
Rs(0).Update
Rs(0).MoveNext
Rs(1).MoveNext
Loop
Rs(0).AddNewとRs(0).Updateの間の
フィールドをひとつずつ指定する部分を
何とかして省略出来ないものでしょうか?
(Rs(0)とRs(1)のフィールド等は全て同じです)
どなたかご存知でしたら御教授下さい。
0717デフォルトの名無しさん
NGNGfor each
0718デフォルトの名無しさん
NGNG0719デフォルトの名無しさん
NGNGやりたい事はわかるんだが・・・
単純にINSERTじゃイカン理由でもあるのか?
めちゃ遅いよ、それ。
0720デフォルトの名無しさん
NGNG一連の処理の流れ&欲しいデータとしては以下の通りです。
Table1、Table2、Table3がある。
フィールド構成は以下の通り。
Table1(ID,Name,NameKana,Tel,Sex)
Table2(ID,Name,NameKana,Tel,Sex)
Table3(ID,Name,NameKana,Tel,Sex)
(3つ全て同じフィールド構成です)
んで、この中に入っているデータは以下の通り。
[Table1]
1,Mona,モナー,743,Male
2,Giko,ギコ,774,Male
3,Morara,モララー,7743,Male
4,Shee,シー,74,Female
5,Fusagiko,フサギコ,07743,Male
[Table2]
2,Giko,ギコ,774,Male
4,Shee,シー,74,Female
[Table3]
,,,,
(データ無し)
で、Table1とTable2のIDを比較して、
2つのテーブルにおいて共通しているレコード
(この場合だと 2,Giko,ギコ,774,Male と 4,Shee,シー,74,Female)を
そっくりそのままTable3に追加していって、
最終的にTable3にはTable1,Table2で共通するレコードのみが保存される、
と言った感じにしようと思ってます。
このルーチンをRecordSetを使って組み立てるべくコードを作ってみたのですが、
RecordSetだと前述したようにフィールド1つ1つを対にしなければ
いけなかったようで…。
厨房的考えですが、
Rs(0) = Rs(1)
ぐらいの指定でレコードを追加していけたらなー…
と思ってた次第です(;´Д`)
0721デフォルトの名無しさん
NGNGこれは、SQLを勉強して作成して下さい。
1行のSQL文一発で終わります。
>716 のような方法はデータベース素人の処理方法ですよ。
これ業務系のシステムでやったら確実に怒られます。基本的にカーソルを使用する
ような処理法は、どうにもならない場合の最終手段です。
0722デフォルトの名無しさん
NGNGアドバイスありがとうございました。
SQLだと…こんな感じでしょうか。
INSERT INTO Table3
SELECT Table1.* FROM Table1 INNER JOIN Table2 On Table1.ID = Table2.ID
WHERE Table1.ID = Table2.ID
ORDER BY Table1.ID ASC;
どうもRecordSetの方が扱い易いので
つい使ってしまっていたのですが…
これからは注意したいと思います。
夜遅くまでありがとうございました。
0723純粋DLL
NGNG純粋DLLとは、WindowsAPIのように、Declare Function で宣言して使用する事の出来る
DLLとでも言いましょうか・・・。表現できないので御免なさい。(だれか補足して!)
ようは、普通のCやVCで作った簡単なやつです。VBで作るDLLはCOMなんですよ。
0724デフォルトの名無しさん
NGNGAccessでも、更新クエリーか何かでビジュアルにつくれるからこれを利用しましょう。
>720 のようにカーソルを使うと、極端なまでのレスポンス低下を招きます。
0725デフォルトの名無しさん
NGNGAccessでクエリ作成に慣れると、他dbでSQLが書けなくなる罠。
すげー便利なんだもんなぁ。
0726デフォルトの名無しさん
NGNG安心しろ、SQL鯖にはクエリビルダがあるから(違
0727デフォルトの名無しさん
NGNG0728デフォルトの名無しさん
NGNGそこでクエリについてのしつもんですが、
2つクエリをつかって結果をもとめています。
ひとつめのクエリはクロス集計クエリを使用しており
2つ目は選択クエリを使用しています。
そこで一つ目のクロス集計の内容をクエリ2に反映させているわ
けですが、
クエリ2で
「1: IIf(IsNull([クエリ1のクエリ名].[1]),
0,([クエリ1のクエリ名].[1]))」
上記構文でクエリ1の「1」というフィールドが
NULLの場合は0を配置しております。
そこでそのクエリ1の「1」というフィールドが無い場合も0を既定で配置したいのですが、
なにか良い方法はないのでしょうか?
クエリ1のフィールドは「1」から「10」まであり
クロス集計でその値をもとめています。しかしもしクロス集計で集計でフィールドがある場合はいいのですが、無い場合もあるのです。
そのときの処理をおこないたいのですが・・・・
アドバイスの方宜しくお願いします。
0729デフォルトの名無しさん
NGNGクロス集計クエリをデザインビュー開いて、右クリック、プロパティで
列見出しを設定し、フィールドが固定しる!
0730デフォルトの名無しさん
NGNG>クロス集計クエリをデザインビュー開いて、右クリック、プロパティで
>列見出しを設定し、フィールドが固定しる!
ありがとうございます。
早速やってみたいとおもいます。
0731デフォルトの名無しさん
NGNG0732デフォルトの名無しさん
NGNGNzってVBにあったけ?
0733デフォルトの名無しさん
NGNGない。けっこー便利だから自前で作るしか。
0734デフォルトの名無しさん
NGNGデータベースを学習する必要がある
Accessを学習する必要がある
Accessのマクロ言語VBAを学習する必要がある
大変やな
やっぱりAccessのデベロッパーてすごいな
0735デフォルトの名無しさん
NGNG我が会社のCOBOLerでも使えてますが何か?
0736デフォルトの名無しさん
NGNGレポート印刷前に「プリンタの設定」ダイアログを出す方法について、
Access2000の参考書(Access VBA応用プログラミング と Access2000場面別108こうしたい!)
には
DoCmd.SelectObject acReport, "レポート", True
DoCmd.RunCommand acCmdPrint
で良い・・と書いてあったのですが、、WinXP & Access2002ではうまくいかないようです・・?
(出力先をAcrobat Writerにしていたのですが、、エラーが出て、出力されたPDFを見ると、レポートじゃなくて画面イメージが出力されている)
http://www.microsoft.com/japan/msdn/officedev/officeXP/ODC_acc10_Printers.asp
に何やらむずかしい事が書いてあるのですが・・・
こんな面倒な事をしなくてはならなくなったのですか?
知っている方いましたら教えてください。
0737デフォルトの名無しさん
NGNGCOBOLのデベロッパーてすごいな
0738デフォルトの名無しさん
NGNG結局、2000のヘルプがおかしいのも
しょっちゅう「直前の処理はキャンセルされました」
って出るのも直す気ないだろうねぇ。2002だと直ってるのか?
0739デフォルトの名無しさん
NGNG>しょっちゅう「直前の処理はキャンセルされました」
こんなの出たっけ?
0740デフォルトの名無しさん
NGNG2000のヘルプがおかしいってどんな風なの?
おかしくなったことないんだけど。
0741デフォルトの名無しさん
NGNGMSのヘルプは使いやすい方だと思うけどなぁ。そういう意味じゃなくて?
「直前の〜」って出たこと無いんだけど、元に戻っちゃうの?
0742しろ
NGNG以前「直前の処理はキャンセルされました」 って出たことあります。
何をしても修復不能で、諦めて97にバージョンダウンしました。
私の場合、ボタンを押してフォームを開くだけの処理で
ボタンを押すと「直前の処理はキャンセルされました」 と言われ
フォームが開けなくなり、どうしようもありませんでした。
ヘルプは2000以上だと検索したりした場合、関係ない語句がヒットしたり、
見つからなかったり、必要な関数がヘルプに無かったりします。
97の方がヘルプの使い勝手はかなり良いです。
マイクロソフトのヘルプデスクに電話した時聞きましたが、マイクロソフト側
でもこの件についての認識はあるようです。
修正する気は無いみたいですが・・・(-_-;)
0743デフォルトの名無しさん
NGNGttp://support.microsoft.com/default.aspx?scid=http%3a%2f%2fwww.microsoft.com%2fJAPAN%2fsupport%2fkb%2farticles%2fjp416%2f3%2f57.asp
一日の最後にこれが出て仕事がすべて吹っ飛ぶと泣けてきます
ヘルプのほうは >>527 と同じ
0744デフォルトの名無しさん
NGNG1.フォーム・リストボックスでテーブルからクエリーで選択。
2.選択したレコードをエクセルにエクスポート。
3.その際、.XLSのファイル名を、リストボックスで選んだ項目を使う。
例えば住所録の選択で、リストボックスは都道府県として、
エクスポートするときのファイル名を、
東京都.XLS とか 埼玉県.XLS にしたいのです。
ど素人で済みませんが、どなたかお知恵を貸してください。
0745デフォルトの名無しさん
NGNGかなり理解に苦しむんだけど、
リストボックスで条件を指定し、その結果を任意のファイル名.xlsとしてエクスポートしたいって事?
それであればクエリオブジェクトを作成とか、Where句に埋め込んだ関数で誤魔化すとかしたモノをエクスポートするだけです。
0746デフォルトの名無しさん
NGNGこっちは問題なく出てくるが。インストールで変なことしたんじゃないのか?
>527ともども。
バージョンが分からんが2000なら、ADO210.CHMがADOのヘルプだが。
0747デフォルトの名無しさん
NGNG>>743
これ関係するかな?
http://support.microsoft.com/default.aspx?scid=%2Fisapi%2Fgomscom%2Easp%3Ftarget%3D%2Fjapan%2Fsupport%2Fkb%2Farticles%2Fjp249%2F0%2F65%2Easp&LN=JA
0748デフォルトの名無しさん
NGNGってやつ、自分のマシンでは一度も出たことがないが、客先でしばらく使わせておくと、突然そんな状態になる。
環境依存したバグか?
0749デフォルトの名無しさん
NGNG0750デフォルトの名無しさん
NGNG1 Aのテーブルに個人コードと合計点数フィールド
2 Bのテーブルに個人コードと点数フィールド
このとき、ひとつの更新クエリでBの点数を合計して、Aの合計点数を
更新しようとすると”更新可能なクエリでなければいけません”
というエラーになるんだけど、回避策はありませんか。
現在は、合計したものを中間のテーブルに一度追加してから更新してます。
しかし、中間テーブルが増えすぎて面倒なのです。
0751デフォルトの名無しさん
NGNG更新可能なクエリに変える。
0752デフォルトの名無しさん
NGNG更新クエリが何かまず調べろ。
0753デフォルトの名無しさん
NGNG結合プロパティが適切でないか、よけいなフィールドが入ってるとかで
更新される側が一意でないと思われ・・・・。
その更新クエリをSQLビューで表示して、ここにコピペしてみたら。
フィールド名とかは適当に変えて。
0754750
NGNGテーブルA
個人コード合計
A0010
A0020
A0030
テーブルB
個人コード点数
A001100
A00180
A00190
A002100
A00280
A00290
A003100
A00380
A0030
0755750
NGNGテーブルA
個人コード 合計
A001 0
A002 0
A003 0
テーブルB
個人コード 点数
A001 100
A001 80
A001 90
A002 100
A002 80
A002 90
A003 100
A003 80
A003 0
0756750
NGNGSELECT B.個人コード, Sum(B.点数) AS 点数の合計
FROM B
GROUP BY B.個人コード;
上記のクエリを使って、テーブルAを更新 「エラークエリ」
UPDATE Q_点数の合計 INNER JOIN A ON Q_点数の合計.個人コード = A.個人コード SET A.合計 = [Q_点数の合計].[点数の合計];
こうするとエラーになってしまいます。どうしたらいいでしょうか?
0757753
NGNG申し訳ない。勘違いをしてた。1対多のとき1側のフィールドは更新できないんだ。
この場合「Q_点数の合計」で済ませよう。
SELECT A.個人コード, Nz(Sum(B.点数),0) AS 点数の合計
FROM A LEFT JOIN B ON A.個人コード = B.個人コード
GROUP BY A.個人コード;
で、どう?
0758デフォルトの名無しさん
NGNGこれだヘルプがコピーされてない SR-1にはしてあるんだけども
あ サーバインストールしてあるけどもサーバ側はSR-1になってないな
サーバインストールしたのってどうやってSR-1にするんでしょう?
>749
そのとおりだとは思うが さてどういう使い方が問題なんだろうか
0759デフォルトの名無しさん
NGNG目的がテーブルAにBの合計を設定って事なら
DELETE * FROM A
でAをクリアした後に
INSERT INTO A(個人コード, 合計)
SELECT B.個人コード, Sum(B.点数) AS 点数合計 FROM B GROUP BY B.個人コード
てなSQLを投げる……のでは駄目?
スマートではないかも知れないけど。
0760750
NGNG目的は、Aの合計フィールドを更新することなので
ちょっとちがうっぽい。そのクエリを使って更新しようとしても
エラーになってしまします。
あと気になったのですが、”1対多のとき1側のフィールドは更新できない。”
ってことは、もしかして、集計関数使ってるクエリを元ににして更新できないってことですか?。
>759
私も、750で書いたんだけど、一度中間テーブルに追加して、それから
更新してるんですが、〜中間というテーブルが増えすぎて困ってるのです。
Aのテーブルは、ずっと溜めてくものなのでデリート出来ないです。
ところで、これはACCESS特有のエラーなのですか。
先輩がACCESSのクエリは癖があるって言ってたんですが、
SQLサーバーやオラクルなら可能?
0761デフォルトの名無しさん
NGNG>集計関数使ってるクエリを元ににして更新できないってことですか?。
ヘルプにそのあたりは書いてある。
エラーメッセージで検索してみたら?
0762仕様書無しさん
NGNGString のデータと同じ名前のプロシージャを呼ぶには
どうしたらいいのでしょうか。
0763デフォルトの名無しさん
NGNG具体的には?
0764753
NGNGちょっと惑わしてしまったので、サービスだ。次のヘルプを読むといい。
Access97の場合
目次→クエリ→アクションクエリの作成→更新クエリ→トラブルシューティング:更新クエリで
「更新可能なクエリでなければ・・・・・・・」
Access2000の場合
目次→ヘルプ→アクセスのトラブルシューティング→トラブルシューティング:クエリ→トラブルシューティング:更新クエリで
「更新可能なクエリでなければ・・・・・・・」
対応方法が書いてあるよん。
0765デフォルトの名無しさん
NGNG0766デフォルトの名無しさん
NGNG処理するレコードがそんなに多くなければ、
いっそVBAで回した方が早いかもね。
0767デフォルトの名無しさん
NGNGアクセスについての質問ですが、クエリでフィールド「1」「2」「3」「4」「5」
があります。このフィールドは全て、数字です。その合計を求めようと、クエリのフィールドに
「トータル: [1]+[2]+[3]+[4]+[5]」というように計算式をいれて、「トータル」
というフィールドに表示させております。その結果はきちんと計算されて合計が「トータル」
フィールドに反映されます。しかしVBで「DataEnvironment」にこのクエリを連結させて、
データレポートで印刷をかけようとしているのですが、計算結果が「0」の場合だけ、
空白になってしまいます。0以外の場合はきちんと反映されております。
クエリの結果はトータルフィールドに「0」と表示されているのですが、「DataEnvironment」→「データレポート」
というようにすれば0が空白になってしまいます。
これを回避する方法はないのでしょうか?アドバイスの方よろしくお願いします。
0768デフォルトの名無しさん
NGNG0769デフォルトの名無しさん
NGNGリレーションシップの設定をしる!
0770デフォルトの名無しさん
NGNGこのコントロールだと1日しか選択することができませんが、複数日選択することは可能でしょうか?
おそらく無理だと思うので、機能的にカレンダコントロール9.0と同じで複数日選択可能なActiveXはないものでしょうか?
2002/7/18,2002/7/19が選択されているのであれば
year:2002
Month:7
day:18,19
などの値を返してくれるとありがたいのですが
0771デフォルトの名無しさん
NGNGSet cn = Application.CurrentProject.Connection
Set rs = CreateObject("adodb.recordset")
sql = "select max(契約番号) from 保険契約メイン"
rs.Open sql, cn, 1
それで、契約番号の最大値を引っ張ってきたいのですが
"rs"の後にどのように記述すれば値が取得できるのでしょうか?
このような場合、HELPではどのようなキーワードで検索するべきでしょうか?
0772デフォルトの名無しさん
NGNGまんま「最大値」で検索すれば、ナイスな関数がサンプルコード付きで出てくるでしょう。
0773ど初心者 771
NGNGsql = "select max(契約番号) from 保険契約メイン"
rs.Open sql, cn, 1
真では問題なく動きますが、(sMaxNum as string)
"sMaxNum = rs!契約番号"とか色々試行錯誤してますがレコードセットの値が
拾えないんです。どう書けばいいんでしょうか?
0774デフォルトの名無しさん
NGNG把握しないまま突っ走ちゃう人多いな〜。
0775ど初心者 771
NGNGどなたかご存じないでしょうか?
0776デフォルトの名無しさん
NGNGrs![MAX_NO]
って名前を付けるとか、
rs.Fields(0).Value
ってフィールドの序数を指定するとか。
0777デフォルトの名無しさん
NGNGDMaxを使い
DMax("契約番号","保険契約メイン")
0778デフォルトの名無しさん
NGNGどのような方法を用いるのが妥当なのでしょうか。
以下のような文字列を作成してファイルに格納するのが目的です。
AAA001 1…
AAA001 2
(データは英数文字で、データ毎に桁数が決まっている
足りない部分はスペースで埋める)
最初は、構造体に格納してその文字列を連結する方法でやろうと
思いました(大きさを定義しておけば、スペースも補完されるし)
ですが、テーブルが一つではなくテーブルごとにプログラムも別なため、
テーブル毎に構造体を定義して格納となるとなると、
あまりいい方法とは思えません。
いい方法ありましたら是非教えてください。よろしくお願いします。
0779デフォルトの名無しさん
NGNGクエリ
0780デフォルトの名無しさん
NGNGクエリでどうするのでしょうか…すいません
それと、データ型によってフォーマットをかける必要が
あるのですが、クエリでもできますか。
0781デフォルトの名無しさん
NGNG0782デフォルトの名無しさん
NGNG「エクスポート」で検索しる。
0783デフォルトの名無しさん
NGNGを読み込むようにする方法を伝授して下さい。
0784デフォルトの名無しさん
NGNGローカルにコピーしたいのですがどのようにしたらいいのか
わかりません。
cn.ConnectionString = "Provider=SQLOLEDB;" _
& "Data Source=******;" _
& "User ID=*****;" _
& "Password=******"
cn.Open
'table作成のSQL
sql = "SELECT * INTO コピー FROM マスター"
'接続
'クエリ実行
com.ActiveConnection = cn
MsgBox "接続確認"
com.CommandText = sql
com.Execute
Set cn = Nothing
のようにすると、サーバー上にテーブルが作成
されてしまいます。
助けて・・・・
■ このスレッドは過去ログ倉庫に格納されています