トップページ⇒tech
1001コメント375KB

Access使い集合!

■ このスレッドは過去ログ倉庫に格納されています
0001名無しきぼうNGNG
UNIX時間(1970年から秒単位10桁やつ)を
Access or VB で yyyy/mm/dd hh:mm:ss に変換する方法を
教えて下され!
0685デフォルトの名無しさんNGNG
>>684
文字に変換して前後にスペースを入れてから表示してみては?
0686683NGNG
>684
うーむ、こっちではそれなりにダイナミックに右があいたが。
ひょっとして、VBAでセットしてない?twip値になるよ。

あとはプリンタドライバだな。
0687デフォルトの名無しさんNGNG
フォント変えろ。あとイタリック体はやめとけ。
0688デフォルトの名無しさんNGNG
質問です。
印刷時に、特殊な紙に印刷するため、用紙サイズをユーザー指定で行いたいのですが、
それができません。
ワードには用紙サイズ指定のところで、「ユーザー定義」という個所がちゃんとあったんですけど・・

ACCESSでそれを行う場合、どうすればよいでしょうか?


ちなみに、用紙サイズは10インチ×7インチです。
0689デフォルトの名無しさんNGNG
>688
ページ設定しる!
0690デフォルトの名無しさんNGNG
使いたい用紙サイズより大きい用紙を選んで、余白を調整する。
0691688NGNG
>>689
ファイル−ページ設定ですよね?
そこにもユーザー定義の設定がないんですよ・・・・

>>690
連続用紙でドットインパクトプリンタで印刷するので、余白で調整という小細工をすると
2ページ以降がズタズタに狂ってきてしまわないでしょうか?
0692689NGNG
>691
ファイル−ページ設定−ページに「用紙サイズ」ないか?
オレのAc2kとEpsonのレーザプリンタの組み合わせならユーザ定義サイズが選択できるが。
0693689NGNG
ドットプリンタだったのね・・・
0694デフォルトの名無しさんNGNG
>>691
OS、プリンタの種類による
NT系ならコントロールパネル-プリンタサーバーのプロパティ
新しい用紙を作成する
0695修正NGNG
>NT系ならコントロールパネル -> プリンタ -> サーバーのプロパティ
0696デフォルトの名無しさんNGNG
とりあえず、そのプリンタの機種名教えれ >688
0697デフォルトの名無しさんNGNG
休みが入ったのでレスが遅くなりました。

プリンタの機種名は
NEC MultiImpact 700JX
です。

ただ、気になるのは、700JXを使ってる他の人のマシンだと「ユーザー定義」があったりなかったりします。
私のマシンは一応ドライバが最新です。(週末にNECからDLしてきました)


とりあえず、サーバのプロパティを見てみます。


0698688NGNG
あ、上のカキコ、わかると思いますが、>688です
0699688NGNG
コンパネのプリンタにサーバのプロパティがあったので、10×7インチのサイズを追加してみたんですが、
ACCESS上のページ設定には、追加したはずの10×7インチのサイズがありません(T-T)
方法が悪いのかな・・・・

引き続き情報お待ちしています・・・
0700デフォルトの名無しさんNGNG
>>699
追加したサイズのプリンタを選べてないのでは・・・。

ページ設定→ページ→その他のプリンタ→プリンタの設定→プリンタ名で
NEC MultiImpact 700JXを選択すればいいのでは?
0701688NGNG
>>700
普段から選んでいます^^;

どうも9x系だとできるという噂を聞いたので、
9x系でやってみることにしますが・・・



心配だ(T-T)
0702デフォルトの名無しさんNGNG
http://www52.tok2.com/home/katohp/paintb/data/IMG_000024.jpg
0703デフォルトの名無しさんNGNG
52
0704デフォルトの名無しさんNGNG
ネコ猫ねこ
0705デフォルトの名無しさんNGNG
VBでApp.pathで、そのプログラムのあるディレクトリのフルパスが取得できますよね。
それをAccessVBAでやとうろしても出来ないのです。
AccessVBAでそのアクセスファイルのあるディレクトリは取得できないのでしょうか?
0706デフォルトの名無しさんNGNG
>>705
CurrentProject.Pathでフォルダ名、
CurrentDb.NameでMDBのフルパスが取得できます。
0707デフォルトの名無しさんNGNG
>>701
少なくともうちの環境では追加した用紙サイズ使えてる
700JX Windows2000
0708705NGNG
>>706
出来ました!ありがとう。
0709yukiNGNG
AccessVBAの処理でテーブルにレコード追加するロジックをVBで作成・共通関数化
し、複数mdbよりコールし使用する。こんな処理ってできます?
できるならば、実現方法と参考URLをお教えていただきたいのですが。

よろしくお願いします。
0710デフォルトの名無しさんNGNG
>709
それよかプログラムのみのmdbを一つとデータのみのmdbを複数
用意して、プログラムmdbからリンクを張って使うほうが現実的じゃ
ないかぇ?
0711デフォルトの名無しさんNGNG
>709
出来ないわけが無い。
というか、MSのユニバーサルデータアクセスの概念分かっている?
http://www.microsoft.com/japan/msdn/data/default.asp
0712yukiNGNG
>>710,711
ありがとうございます。

≫710
確かにその通りなんですが、VBを使用するロジックをどこかの処理で開発
しなければいけないのです。(上司命令)
VBとアクセスを併用する利点が理解できないのですが…(VBAで良いだろうと言いたい)

≫711
ありがとうございます。じっくりよんでみます。
0713デフォルトの名無しさんNGNG
>>711
なんでユニバーサルデータアクセスがでてくるんだ?
0714デフォルトの名無しさんNGNG
>713
Accessも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
>715
純粋DLL形式

って??
0716デフォルトの名無しさんNGNG
RecordSetを使って、片方のテーブルにあるレコードを
もう片方のテーブルにひとつずつ追加していくコードを作ろうとしています。

 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デフォルトの名無しさんNGNG
>>716
for each
0718デフォルトの名無しさんNGNG
Accessのデベロッパーってすごいな。
0719デフォルトの名無しさんNGNG
>716
やりたい事はわかるんだが・・・
単純にINSERTじゃイカン理由でもあるのか?

めちゃ遅いよ、それ。
0720デフォルトの名無しさんNGNG
>>719さん

一連の処理の流れ&欲しいデータとしては以下の通りです。

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
>720
これは、SQLを勉強して作成して下さい。
1行のSQL文一発で終わります。

>716 のような方法はデータベース素人の処理方法ですよ。
これ業務系のシステムでやったら確実に怒られます。基本的にカーソルを使用する
ような処理法は、どうにもならない場合の最終手段です。
0722デフォルトの名無しさんNGNG
>>721さん

アドバイスありがとうございました。
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純粋DLLNGNG
>715
純粋DLLとは、WindowsAPIのように、Declare Function で宣言して使用する事の出来る
DLLとでも言いましょうか・・・。表現できないので御免なさい。(だれか補足して!)

ようは、普通のCやVCで作った簡単なやつです。VBで作るDLLはCOMなんですよ。
0724デフォルトの名無しさんNGNG
>722
Accessでも、更新クエリーか何かでビジュアルにつくれるからこれを利用しましょう。
>720 のようにカーソルを使うと、極端なまでのレスポンス低下を招きます。
0725デフォルトの名無しさんNGNG
>>724
Accessでクエリ作成に慣れると、他dbでSQLが書けなくなる罠。
すげー便利なんだもんなぁ。
0726デフォルトの名無しさんNGNG
>725
安心しろ、SQL鯖にはクエリビルダがあるから(違
0727デフォルトの名無しさんNGNG
MSオフィス付属のMSクエリーが、他のDBサーバーにも使えるぞ!!
0728デフォルトの名無しさんNGNG
現在アクセス2000を使用しております
そこでクエリについてのしつもんですが、
2つクエリをつかって結果をもとめています。
ひとつめのクエリはクロス集計クエリを使用しており
2つ目は選択クエリを使用しています。
そこで一つ目のクロス集計の内容をクエリ2に反映させているわ
けですが、
クエリ2で
「1: IIf(IsNull([クエリ1のクエリ名].[1]),
   0,([クエリ1のクエリ名].[1]))」
上記構文でクエリ1の「1」というフィールドが
NULLの場合は0を配置しております。
そこでそのクエリ1の「1」というフィールドが無い場合も0を既定で配置したいのですが、
なにか良い方法はないのでしょうか?
クエリ1のフィールドは「1」から「10」まであり
クロス集計でその値をもとめています。しかしもしクロス集計で集計でフィールドがある場合はいいのですが、無い場合もあるのです。
そのときの処理をおこないたいのですが・・・・
アドバイスの方宜しくお願いします。
0729デフォルトの名無しさんNGNG
>728
クロス集計クエリをデザインビュー開いて、右クリック、プロパティで
列見出しを設定し、フィールドが固定しる!
0730デフォルトの名無しさんNGNG
>>728
>クロス集計クエリをデザインビュー開いて、右クリック、プロパティで
>列見出しを設定し、フィールドが固定しる!
ありがとうございます。
早速やってみたいとおもいます。
0731デフォルトの名無しさんNGNG
ついでにNzも使っとけ
0732デフォルトの名無しさんNGNG
ああ、Nzって便利だよね。
NzってVBにあったけ?
0733デフォルトの名無しさんNGNG
>732
ない。けっこー便利だから自前で作るしか。
0734デフォルトの名無しさんNGNG
Accessを使えるようになるために、
データベースを学習する必要がある
Accessを学習する必要がある
Accessのマクロ言語VBAを学習する必要がある
大変やな

やっぱりAccessのデベロッパーてすごいな
0735デフォルトの名無しさんNGNG
>>734
我が会社のCOBOLerでも使えてますが何か?
0736デフォルトの名無しさんNGNG
教えて!、Access2002になってプリンタの設定関連のやりかた変わった?

レポート印刷前に「プリンタの設定」ダイアログを出す方法について、
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デフォルトの名無しさんNGNG
>>735
COBOLのデベロッパーてすごいな
0738デフォルトの名無しさんNGNG
Microsoftってさぁ
結局、2000のヘルプがおかしいのも
しょっちゅう「直前の処理はキャンセルされました」
って出るのも直す気ないだろうねぇ。2002だと直ってるのか?
0739デフォルトの名無しさんNGNG
>>738
>しょっちゅう「直前の処理はキャンセルされました」
こんなの出たっけ?
0740デフォルトの名無しさんNGNG
>738
2000のヘルプがおかしいってどんな風なの?
おかしくなったことないんだけど。
0741デフォルトの名無しさんNGNG
>>738
MSのヘルプは使いやすい方だと思うけどなぁ。そういう意味じゃなくて?
「直前の〜」って出たこと無いんだけど、元に戻っちゃうの?
0742しろNGNG
738じゃないですが
以前「直前の処理はキャンセルされました」 って出たことあります。
何をしても修復不能で、諦めて97にバージョンダウンしました。

私の場合、ボタンを押してフォームを開くだけの処理で
ボタンを押すと「直前の処理はキャンセルされました」 と言われ
フォームが開けなくなり、どうしようもありませんでした。

ヘルプは2000以上だと検索したりした場合、関係ない語句がヒットしたり、
見つからなかったり、必要な関数がヘルプに無かったりします。
97の方がヘルプの使い勝手はかなり良いです。

マイクロソフトのヘルプデスクに電話した時聞きましたが、マイクロソフト側
でもこの件についての認識はあるようです。
修正する気は無いみたいですが・・・(-_-;)
0743デフォルトの名無しさんNGNG
「直前の・・・」は
ttp://support.microsoft.com/default.aspx?scid=http%3a%2f%2fwww.microsoft.com%2fJAPAN%2fsupport%2fkb%2farticles%2fjp416%2f3%2f57.asp
一日の最後にこれが出て仕事がすべて吹っ飛ぶと泣けてきます

ヘルプのほうは >>527 と同じ
0744デフォルトの名無しさんNGNG
こういうことってできるでしょうか?上手く書けるかどうかも自信無い…
1.フォーム・リストボックスでテーブルからクエリーで選択。
2.選択したレコードをエクセルにエクスポート。
3.その際、.XLSのファイル名を、リストボックスで選んだ項目を使う。
例えば住所録の選択で、リストボックスは都道府県として、
エクスポートするときのファイル名を、
東京都.XLS とか 埼玉県.XLS にしたいのです。
ど素人で済みませんが、どなたかお知恵を貸してください。
0745デフォルトの名無しさんNGNG
>>744
かなり理解に苦しむんだけど、
リストボックスで条件を指定し、その結果を任意のファイル名.xlsとしてエクスポートしたいって事?
それであればクエリオブジェクトを作成とか、Where句に埋め込んだ関数で誤魔化すとかしたモノをエクスポートするだけです。
0746デフォルトの名無しさんNGNG
>743
こっちは問題なく出てくるが。インストールで変なことしたんじゃないのか?
>527ともども。

バージョンが分からんが2000なら、ADO210.CHMがADOのヘルプだが。
0747デフォルトの名無しさんNGNG
>>527
>>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デフォルトの名無しさんNGNG
むしろ使い方の問題。
0750デフォルトの名無しさんNGNG
ACCESS97でクエリについての質問なんだけど、
1 Aのテーブルに個人コードと合計点数フィールド
2 Bのテーブルに個人コードと点数フィールド
このとき、ひとつの更新クエリでBの点数を合計して、Aの合計点数を
更新しようとすると”更新可能なクエリでなければいけません”
というエラーになるんだけど、回避策はありませんか。
 現在は、合計したものを中間のテーブルに一度追加してから更新してます。
しかし、中間テーブルが増えすぎて面倒なのです。
0751デフォルトの名無しさんNGNG
>>750
更新可能なクエリに変える。
0752デフォルトの名無しさんNGNG
>>750
更新クエリが何かまず調べろ。
0753デフォルトの名無しさんNGNG
>750
結合プロパティが適切でないか、よけいなフィールドが入ってるとかで
更新される側が一意でないと思われ・・・・。

その更新クエリをSQLビューで表示して、ここにコピペしてみたら。
フィールド名とかは適当に変えて。
0754750NGNG
こういうやつです。

テーブルA
個人コード合計
A0010
A0020
A0030

テーブルB
個人コード点数
A001100
A00180
A00190
A002100
A00280
A00290
A003100
A00380
A0030
0755750NGNG
上のは失敗。

テーブル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
0756750NGNG
この状態で、Bの点数を合計するクエリ「Q_点数の合計」を作成。
SELECT B.個人コード, Sum(B.点数) AS 点数の合計
FROM B
GROUP BY B.個人コード;

上記のクエリを使って、テーブルAを更新 「エラークエリ」

UPDATE Q_点数の合計 INNER JOIN A ON Q_点数の合計.個人コード = A.個人コード SET A.合計 = [Q_点数の合計].[点数の合計];

こうするとエラーになってしまいます。どうしたらいいでしょうか?
0757753NGNG
>756
申し訳ない。勘違いをしてた。1対多のとき1側のフィールドは更新できないんだ。

この場合「Q_点数の合計」で済ませよう。
SELECT A.個人コード, Nz(Sum(B.点数),0) AS 点数の合計
FROM A LEFT JOIN B ON A.個人コード = B.個人コード
GROUP BY A.個人コード;
で、どう?
0758デフォルトの名無しさんNGNG
>747
これだヘルプがコピーされてない SR-1にはしてあるんだけども
あ サーバインストールしてあるけどもサーバ側はSR-1になってないな
サーバインストールしたのってどうやってSR-1にするんでしょう?

>749
そのとおりだとは思うが さてどういう使い方が問題なんだろうか
0759デフォルトの名無しさんNGNG
>>756
目的がテーブルAにBの合計を設定って事なら
DELETE * FROM A
でAをクリアした後に
INSERT INTO A(個人コード, 合計)
SELECT B.個人コード, Sum(B.点数) AS 点数合計 FROM B GROUP BY B.個人コード
てなSQLを投げる……のでは駄目?
スマートではないかも知れないけど。
0760750NGNG
>757
目的は、Aの合計フィールドを更新することなので
ちょっとちがうっぽい。そのクエリを使って更新しようとしても
エラーになってしまします。
あと気になったのですが、”1対多のとき1側のフィールドは更新できない。”
ってことは、もしかして、集計関数使ってるクエリを元ににして更新できないってことですか?。

>759
私も、750で書いたんだけど、一度中間テーブルに追加して、それから
更新してるんですが、〜中間というテーブルが増えすぎて困ってるのです。
Aのテーブルは、ずっと溜めてくものなのでデリート出来ないです。

ところで、これはACCESS特有のエラーなのですか。
先輩がACCESSのクエリは癖があるって言ってたんですが、
SQLサーバーやオラクルなら可能?
0761デフォルトの名無しさんNGNG
>>760
>集計関数使ってるクエリを元ににして更新できないってことですか?。

ヘルプにそのあたりは書いてある。
エラーメッセージで検索してみたら?
0762仕様書無しさんNGNG
ぐっすん ヽ(`Д´)ノ

String のデータと同じ名前のプロシージャを呼ぶには
どうしたらいいのでしょうか。 
0763デフォルトの名無しさんNGNG
>762
具体的には?
0764753NGNG
>760
ちょっと惑わしてしまったので、サービスだ。次のヘルプを読むといい。

Access97の場合
目次→クエリ→アクションクエリの作成→更新クエリ→トラブルシューティング:更新クエリで
「更新可能なクエリでなければ・・・・・・・」

Access2000の場合
目次→ヘルプ→アクセスのトラブルシューティング→トラブルシューティング:クエリ→トラブルシューティング:更新クエリで
「更新可能なクエリでなければ・・・・・・・」

対応方法が書いてあるよん。
0765デフォルトの名無しさんNGNG
合計フィールドを更新、なんて出来るのかと…
0766デフォルトの名無しさんNGNG
>>760
処理するレコードがそんなに多くなければ、
いっそVBAで回した方が早いかもね。
0767デフォルトの名無しさんNGNG
現在ACCESS2000とVB6.0SP5.0を使用してソフトを作成しております。
アクセスについての質問ですが、クエリでフィールド「1」「2」「3」「4」「5」
があります。このフィールドは全て、数字です。その合計を求めようと、クエリのフィールドに
「トータル: [1]+[2]+[3]+[4]+[5]」というように計算式をいれて、「トータル」
というフィールドに表示させております。その結果はきちんと計算されて合計が「トータル」
フィールドに反映されます。しかしVBで「DataEnvironment」にこのクエリを連結させて、
データレポートで印刷をかけようとしているのですが、計算結果が「0」の場合だけ、
空白になってしまいます。0以外の場合はきちんと反映されております。
クエリの結果はトータルフィールドに「0」と表示されているのですが、「DataEnvironment」→「データレポート」
というようにすれば0が空白になってしまいます。
これを回避する方法はないのでしょうか?アドバイスの方よろしくお願いします。
0768デフォルトの名無しさんNGNG
アクセスでテーブルに+記号を表示させてりんくさせるにはどうしたらいいですか?
0769デフォルトの名無しさんNGNG
>>768
リレーションシップの設定をしる!
0770デフォルトの名無しさんNGNG
Access2000でActiveXカレンダーコントロール9.0を使っています。
このコントロールだと1日しか選択することができませんが、複数日選択することは可能でしょうか?
おそらく無理だと思うので、機能的にカレンダコントロール9.0と同じで複数日選択可能なActiveXはないものでしょうか?
2002/7/18,2002/7/19が選択されているのであれば

year:2002
Month:7
day:18,19

などの値を返してくれるとありがたいのですが
0771デフォルトの名無しさんNGNG
チョット恥ずかしい質問なんですが、調べてもわからなかったので教えていただけますか?

Set cn = Application.CurrentProject.Connection
Set rs = CreateObject("adodb.recordset")

sql = "select max(契約番号) from 保険契約メイン"
rs.Open sql, cn, 1

それで、契約番号の最大値を引っ張ってきたいのですが
"rs"の後にどのように記述すれば値が取得できるのでしょうか?

このような場合、HELPではどのようなキーワードで検索するべきでしょうか?
0772デフォルトの名無しさんNGNG
条件をつけて抽出したいなら、大抵の場合はSQLで解決。
まんま「最大値」で検索すれば、ナイスな関数がサンプルコード付きで出てくるでしょう。
0773ど初心者 771NGNG
SQLでも最大値はもちろんですが他のキーワード検索したのですが・・・

sql = "select max(契約番号) from 保険契約メイン"
rs.Open sql, cn, 1

真では問題なく動きますが、(sMaxNum as string)
"sMaxNum = rs!契約番号"とか色々試行錯誤してますがレコードセットの値が
拾えないんです。どう書けばいいんでしょうか?
0774デフォルトの名無しさんNGNG
Access使ってる人って「Accessで出来る範囲の事」を
把握しないまま突っ走ちゃう人多いな〜。
0775ど初心者 771NGNG
RecordSetにデータは渡っているようなので、出来ると思うんですが・・・
どなたかご存じないでしょうか?
0776デフォルトの名無しさんNGNG
sql = "select max(契約番号) AS MAX_NO from 保険契約メイン"
rs![MAX_NO]

って名前を付けるとか、

rs.Fields(0).Value

ってフィールドの序数を指定するとか。
0777デフォルトの名無しさんNGNG
>>775
DMaxを使い

DMax("契約番号","保険契約メイン")
0778デフォルトの名無しさんNGNG
テーブル内のデータを連結して、一つの長い文字列を作成するには
どのような方法を用いるのが妥当なのでしょうか。
以下のような文字列を作成してファイルに格納するのが目的です。
AAA001 1…
AAA001 2
(データは英数文字で、データ毎に桁数が決まっている
足りない部分はスペースで埋める)

最初は、構造体に格納してその文字列を連結する方法でやろうと
思いました(大きさを定義しておけば、スペースも補完されるし)

ですが、テーブルが一つではなくテーブルごとにプログラムも別なため、
テーブル毎に構造体を定義して格納となるとなると、
あまりいい方法とは思えません。
いい方法ありましたら是非教えてください。よろしくお願いします。
0779デフォルトの名無しさんNGNG
>>778
クエリ
0780デフォルトの名無しさんNGNG
>>779
クエリでどうするのでしょうか…すいません

それと、データ型によってフォーマットをかける必要が
あるのですが、クエリでもできますか。
0781デフォルトの名無しさんNGNG
http://www.hime-r.com/rank/ranklink.cgi?id=yama
0782デフォルトの名無しさんNGNG
>780
「エクスポート」で検索しる。
0783デフォルトの名無しさんNGNG
マクロで外部ファイル(EXCELファイルとかテキストファイル)
を読み込むようにする方法を伝授して下さい。
0784デフォルトの名無しさんNGNG
SQLサーバーに接続して、サーバー上のテーブルを
ローカルにコピーしたいのですがどのようにしたらいいのか
わかりません。

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

のようにすると、サーバー上にテーブルが作成
されてしまいます。
助けて・・・・
■ このスレッドは過去ログ倉庫に格納されています