前のログ 次のログ

No.4750 レジスト設定の場所について 追加  投稿者:みゆ [02/5/17(金)9:40分]

記事追加です。

レジストの場所は
HKEY_CURRENT_USER\Software\会社名\ソフト名
以下で
設定したいと思ってます

No.4749 RE:レジスト設定の場所について  投稿者:Rabbit [02/5/17(金)9:39分]

他の場所へは、APIを使用します。


(補足)
VBのアドインマネージャーより、VB6テンプレートマネージャーを起動すると、
ツールメニューに3種類のテンプレートが追加されます。
コードの追加メニューの中から、レジストリアクセスを選択すると、コードが作成されますよ。

No.4748 レジスト設定の場所について  投稿者:みゆ [02/5/17(金)9:24分]

おはようございます。

今回はレジストにデータを登録する件で
教えてもらいたいことがあります。

ここの逆引きでもあったのですが(67番)
”SaveSetting ”でレジストリの設定値を設定
”GetSetting”でレジストリの設定値を取得
”DeleteSetting” レジストリの設定値を削除
HKEY_CURRENT_USER\Software\VB and VBA Progrm settings
に登録されるようですが
この場所を他の場所にすることはできないのでしょうか?

No.4747 RE:VB出作成されたEXEファイルのバージョン番号の取得方法  投稿者:Rabbit [02/5/17(金)9:22分]

APPオブジェクトから、取得出来ます。


App.Major , App.Minor , App.Revision です。

No.4746 re:VB出作成されたEXEファイルのバージョン番号の取得方法  投稿者:A221 [02/5/17(金)9:19分]

プロパティで設定できる順に下記で出ました。


MsgBox Str$(App.Major) + Str$(App.Minor) + Str$(App.Revision)

No.4745 mschartのValueFormatプロパティについて  投稿者:いとう [02/5/17(金)1:55分]

はじめまして。

mschartのデータポイントラベルのフォーマットを設定する
ValueFormatプロパティは個々の値には設定可能なのでしょうか?

現在、ValueFormat = "0.00"と設定しているのですが
値が0の場合「0.00」と表示されています。
値が0の場合は、0と表示させたいのですが…

よろしくお願いします。

[環境] 
OS:WIN2K SP
VB:6.0 Enterprise

No.4744 VB出作成されたEXEファイルのバージョン番号の取得方法  投稿者:m_hagi [02/5/16(木)21:50分]

VBで作成されたEXEファイルは、エクスプローラーなどで「プロパティ」を

参照するとバージョン番号が見れますが、これをプログラムで取得する方法を
ご存知であれば教えていただけないでしょうか?。
VB初心者です。よろしくお願い致します。 m(_ _)m

No.4743 パワーポイントの処理について  投稿者:ゆうこ [02/5/16(木)19:53分]

'パワーポイントを開く

Set xlApp = CreateObject("powerpoint.application")
xlApp.Visible = True
Set objpresent = xlApp.Presentations.Open(FileName:=EXCELNM, Untitled:=True)
xlApp.Presentations(1).SlideShowSettings.Run
xlApp.SlideShowWindows(1).Activate

'パワーポイントを閉じる
objpresent.Close
Set objpresent = Nothing
Set xlApp = GetObject(, "powerpoint.application")
xlApp.Quit ' 処理終了後、Quit メソッドでアプリケーションを終了し、
Set xlApp = Nothing ' オブジェクトの参照を解放します。

先日同じ質問を出して、やり方を教えてもらったのですが。。。

1分間隔でパワーポイントをOPENしてCLOSEしています。
2回目までの表示、終了は上手くいったのですが。。。3回目のファイルをCLOSEする時
GetObjectのところで
「Activexコンポーネントはオブジェクトを作成できません。」とエラーが出ます。

上記の書き方がまずいのでしょうか??どのようにして書けば良いのですか??
分かる方がいらっしゃいましたら教えてください。

No.4742 Re: データ受信がうまくいきません。  投稿者:K.J.K. [02/5/16(木)19:30分]

Dim strA As String

Dim bytB() As Byte

とすれば、

' バイト配列にUNICODE文字列を代入。
bytB = strA

' バイト配列にANSI文字列を代入
bytB = StrConv(strA, vbFromUnicode)

' UNICODEであるバイト配列を文字列化。
strA = bytB

' ANSIであるバイト配列を文字列化。
strA = StrConv(bytB, vbUnicode)

となります。

No.4741 Re: モーダルダイアログのデータやり取り  投稿者:みゆ [02/5/16(木)18:51分]

>> Private Sub Command1_Click()

>> 1: Form2.Text1.Text = m_sPartID '*
>> 2: Form2.Show vbModal
>> 3: m_sPartID = Form_Opening.Text1.Text
>> 4: Unload Form2
>> End Sub
>
>Form_Opening って Form2 のことですよね。
>
>3: のステートメントが実行される時点で、
>Form2 は既に Unload されてしまっています。
>ので、3: で Form2 が(暗黙に)再ロードされ、
>Text1 の初期値が返ってってきているのではないですか?
なるほど、そういう理由か〜。

>3: のステートメントは Form2 内の処理に書きましょう。
>つまり、m_sPartID を Public にしましょう。
>そうすれば、 OK が押されたのか、
>キャンセルが押されたのかも判断できるでしょう。

OKボタンを押したときに
3の処理を行なえばいいということですね。

ありがとうございました。

No.4740 Re: モーダルダイアログのデータやり取り  投稿者:とろ [02/5/16(木)18:23分]

> Private Sub Command1_Click()

> 1: Form2.Text1.Text = m_sPartID '*
> 2: Form2.Show vbModal
> 3: m_sPartID = Form_Opening.Text1.Text
> 4: Unload Form2
> End Sub

Form_Opening って Form2 のことですよね。

3: のステートメントが実行される時点で、
Form2 は既に Unload されてしまっています。
ので、3: で Form2 が(暗黙に)再ロードされ、
Text1 の初期値が返ってってきているのではないですか?
3: のステートメントは Form2 内の処理に書きましょう。

つまり、m_sPartID を Public にしましょう。
そうすれば、 OK が押されたのか、
キャンセルが押されたのかも判断できるでしょう。

このコードだと、 3: で Form2 が再ロードされているので、
4: に Unload が必要ですが、上のような修正をした場合、
再ロードされないので、 Unload する必要もなくなります。

No.4739 モーダルダイアログのデータやり取り  投稿者:みゆ [02/5/16(木)17:49分]

Form1のあるボタンを押すことで

Form2を表示するプログラムを作ってます。
Form1のデータをForm2に渡して
Form2でそのデータを変更します。
Form2でOKボタンを押してForm2を終えたらデータをForm1に返し
キャンセルボタンを押したら、データをForm2に返さないようにいたいのです。

現在以下のようにしてForm2を表示しています。
Form2のxでForm2をアンロードしても、
Form1のm_sPartIDは、”Text1”の文字が入ります。

Private Sub Command1_Click()
Form2.Text1.Text = m_sPartID '*
Form2.Show vbModal
m_sPartID = Form_Opening.Text1.Text
Unload Form2
End Sub

どうして、値が返されないのでしょうか?
'*では、m_sPartIDの文字列がForm2のText1には渡されているのですが?

あと、Form2でOKボタンとキャンセルボタンをクリックしたときの
処理はどうすればいいのでしょうか?
お願いします

No.4738 Re: コンボボックス  投稿者:とろ [02/5/16(木)17:31分]

combo1.ListIndex = 0

No.4737 コンボボックス  投稿者:みかん [02/5/16(木)17:21分]

はじめましてVB初心者です。

早速質問なんですがコンボボックスの使い方で、
AddItemでコンボボックスのリストに名前を追加したんです。
でも、プログラムを実行した時、コンボボックスには最初は何にも表示されませんよね。
それを、フォームがロードされた時にコンボボックスにリストの最初の項目を表示させたいんですけど
どうしたらいいんですか?

No.4736 DATAREPORTについて  投稿者:ami [02/5/16(木)15:45分]

現在VB6.0+ACCESS2000で開発をおこなっております

用紙設定をしたいと以下のように書きますが
プレビューで見ても変化なしです。
データレポートを使用した際のプリンターの用紙設定はないのでしょうか?
宜しくおねがいします 。

Printer.Orientation = vbPRORLandscape
Printer.PaperSize = vbPRPSA3

DataReport3.Show

No.4735 Re:基本的な質問  投稿者:みゆ [02/5/16(木)14:38分]

ありがとうございます。

同じものなんですか〜

こんな、質問に答えていただき
ありがとうございました

No.4734 Re:基本的な質問  投稿者:A221 [02/5/16(木)14:31分]

>フォームモジュールの追加なんですが

>”フォーム”と”ダイアログ”の違いってなんなんですか?

以下、MSDNから抜粋です。

--------------------------------------------------------------------
Windows 用アプリケーションでは、ダイアログボックスを使用して、
必要なデータの入力をユーザーに要求したり、情報を表示したりできます。
ダイアログボックスは、次の 3 つの方法で作成できる特殊なタイプの
フォーム オブジェクトです。

・ "定義済み" ダイアログボックスは、MsgBox 関数または
InputBox 関数を使ってコードから作成できます。

・ "カスタム" ダイアログボックスは、標準フォームを使用するか、
既存のダイアログボックスをカスタマイズして作成できます。

・ [印刷] や [ファイルを開く] などの "標準" ダイアログボックスは、
コモンダイアログコントロールを使って作成できます。
--------------------------------------------------------------------

No.4733 Re: 基本的な質問  投稿者:とろ [02/5/16(木)14:27分]

> フォームモジュールの追加なんですが

> ”フォーム”と”ダイアログ”の違いってなんなんですか?
> 見た目は、同じように思えるのですが。

"フォーム" とか "ダイアログ" とか
説明が少なくて、何を指しているのか分かりませんが、

フォームモジュールの追加ダイアログボックスの
新規作成タブ内のものを指しているのであれば、

"フォームモジュール" もそれ以外も全く同じです。
ただ、コードやコントロール、プロパティが最初から
設定(記述)されているかどうかの違いです。

No.4732 RE:UpDate  投稿者:A221 [02/5/16(木)14:20分]

MSflexGridのテキストを取得する方法は


With MSflexGrid
.Row=i
.Col=j
MsgBox .Text
End With

この、花ちゃん さんのホームページのMSflexGrid「その他の小技集(その1) 」
に、もっと高速で簡単なTexeMatrix を使用した例が詳細に記されていますよ。

No.4731 基本的な質問  投稿者:みゆ [02/5/16(木)13:50分]

すみません。

いまさらなんですが、
フォームモジュールの追加なんですが
”フォーム”と”ダイアログ”の違いってなんなんですか?
見た目は、同じように思えるのですが。

No.4730 Re: UpDate  投稿者:とろ [02/5/16(木)13:18分]

> このようにしたいのですが、更新後の値はテキストボックスに入ってるからいいんですが

> 更新前の値をどう取得していいかわかりません

> グリッドのセルをクリックすると、選択したセルの行全部をテキストボックスに1つずつ表示し、
> そのテキストボックスの値を変更し、更新ボタンをクリックすると選択した行を更新する

テキストボックスに表示させる時に、変数に格納しておきましょう。

No.4729 RE:UpDate  投稿者:ゆずマン [02/5/16(木)13:06分]

>where USE_ID = '更新前の値'

このようにしたいのですが、更新後の値はテキストボックスに入ってるからいいんですが
更新前の値をどう取得していいかわかりません
where USE_ID = MSFlexGrid1.Row
で現在選択されている行を取得しようとしたりしてはいるのですが、
これではエラーが出てしまいます。
選択している行が更新前の値なのですが・・・
どうしていいかわかりません・・・

No.4728 Re: すみません・・・  投稿者:とろ [02/5/16(木)12:25分]

> ユニークな値を持つフィールドとはどういうことなのでしょうか?

> すいません、アホな質問してしまって・・・

"ユニークな値を持つフィールド" とは、主キー(ユニークキー)のことです。
つまり、値がレコード間で重複することがない、
レコードを一意に決定することができるフィールドです。
たぶん、テーブルをどのように設計したのか分からないので、
はっきりとは言えませんが、
あなたの例でいうと USE_ID がユニークキーでは?
だから
where USE_ID = '更新前の値'
とすれば良いと思うけど、

もし分からなければ、下のようにすれば?
update dbo_TBLUSER
set USE_ID = '更新後の値',
USE_NAME = '更新後の値',
USE_PASS = '更新後の値',
USE_LEVEL = '更新後の値',
USE_Office = '更新後の値'
where USE_ID = '更新前の値',
USE_NAME = '更新前の値',
USE_PASS = '更新前の値',
USE_LEVEL = '更新前の値',
USE_Office = '更新前の値'
このようにする人はいないと思うけど...

No.4727 RE:「”を読み込めません。」エラーメッセージについて  投稿者:かなん [02/5/16(木)12:23分]

 投稿者: [02/5/16(木)10:10分] 


>すでにご存知とは思いますが、
>MSのサイトでは、VB5.0とVB6.0の開発環境を共存させることは保証していません。

初めて知りました。
OSから再インストールしてみます。

花ちゃんさん、YOU-Jさん、ありがとうございました。

No.4726 印刷が途中で終わってしまう。  投稿者:しらい [02/5/16(木)11:42分]

こんにちは

さて、お尋ねしたいのですが、
OS windows 2000 APP VB6.0 SP5 で
PRINTER オブジェクトを使って レコードセットの内容を出力させていますが
データが少ない(枚数が少ない)時には問題ないのですが大量データの(枚数が150枚とか)時
印刷処理を終わらせた後(ENDDOCでちゃんと終了)、ユーザーがすぐにアプリを終わらせると
印刷が途中ページで終わってしまうらしいのです。どうやら、 スプール中に終わらせてしまうとだめな様ですが、
VBは、そういう仕様なのでしょうか。それとも、別な原因があるのでしょうか。
皆さんは何か回避策を行っているのでしょうか。(ENUMJobs APIとか使っているのでしょうか)
よろしくご指導ください

No.4725 すみません・・・  投稿者:ゆずマン [02/5/16(木)11:30分]

>それぞれにユニークな値を持つフィールドを指定すればよいでしょう。

>Where Usr_ID='0xxxx' And Usr_Name='xxxx'

大変申し訳ないのですが・・・
ユニークな値を持つフィールドとはどういうことなのでしょうか?
すいません、アホな質問してしまって・・・

No.4724 Re:Whereの部分に・・・  投稿者:A221 [02/5/16(木)10:33分]

それぞれにユニークな値を持つフィールドを指定すればよいでしょう。


Where Usr_ID='0xxxx' And Usr_Name='xxxx'

No.4723 Whereの部分に・・・  投稿者:ゆずマン [02/5/16(木)10:21分]

MSFlexGridにmdbファイルを表示させて

グリッドのセルをクリックすると、選択したセルの行全部をテキストボックスに1つずつ表示し、
そのテキストボックスの値を変更し、更新ボタンをクリックすると選択した行を更新するという
ことがしたいのですが、Whereの部分に行を指定するを書きたいのですが、わかりません。
このままでは表の全てが更新されてしまいます・・・
誰かわかる方がいましたらよろしくお願いします
**********************************************************************

'更新する
Dim ustSQL As String
ustSQL = "update dbo_TBLUSER "
ustSQL = ustSQL & "Set USE_ID = '" & TexID.Text & "', USE_NAME = '" & TexName.Text & "',_
USE_PASS = '" & TexPass.Text & "', USE_LEVEL = '" & TexLevel.Text & "',_
USE_Office = '" & TexOffice.Text & "' "
ustSQL = ustSQL & "where " "
dbs.Execute (ustSQL)

No.4722 Re: テキストボックスの表示について。  投稿者:とろ [02/5/16(木)10:18分]

> テキストボックスをenabled=falseにすると、文字の色が薄くなってしまうのですが

> ラベルに表示するように色を黒くする方法はないのでしょうか?

テキストボックスをフレーム上に配置するのが一般的かと。
そして、テキストボックスではなく、フレームの方を Enabled=False にする。

他の方法はないと思います。

No.4721 RE:「”を読み込めません。」エラーメッセージについて  投稿者:YOU-J [02/5/16(木)10:10分]

こんにちは。

すでにご存知とは思いますが、
MSのサイトでは、VB5.0とVB6.0の開発環境を共存させることは保証していません。

VB5.0からVB6.0へバージョンアップする場合はVB5.0をアンインストールすればできます。
ところが。VB6.0をインストールした後にVB5.0にバージョンダウンしたい
場合は、ハードディスクをフォーマットしなおすしか方法がありません。
私も以前やってしまいまして、もう何をしてもだめでした。
(いろいろいじれば一応動くところまではいくのですが、動作が不安定でエラーが頻出します。)
結局バックアップを取ってOSから再インストールしました(ToT)
かなんさんも多分そうしないといけないと思いますです・・・。
まったく、VB6.0はかなりの曲者です。VB.netはVB6.0と共存できるというのに・・・。

詳細については、こちらを参照してください。
(見つからない場合は、検索で文書番号の J045059 を検索してください)
http://support.microsoft.com/default.aspx?scid=%2Fisapi%2Fgomscom%2Easp%3
    Ftarget%3D%2Fjapan%2Fsupport%2Fkb%2Farticles%2Fj045%2F0%2F59%2Easp&LN=JA

No.4720 テキストボックスの表示について。  投稿者:コロ助 [02/5/16(木)10:09分]

いつもお世話になります。


テキストボックスをenabled=falseにすると、文字の色が薄くなってしまうのですが
ラベルに表示するように色を黒くする方法はないのでしょうか?

よろしくお願いします。

No.4719 RE:「”を読み込めません。」エラーメッセージについて  投稿者:花ちゃん [02/5/15(水)22:25 分]

一度、MSDNで "J040961" で検索して見て下さい。

特にその中の ライセンス情報が書き込まれない場合の対処方法 と同じ現象が起きているのでは
ないでしょうか?

No.4718 「”を読み込めません。」エラーメッセージについて  投稿者:かなん [02/5/15(水)21:09分]

はじめまして。


コンポーネントを追加したいのですが、「”を読み込めません。」エラーメッセージが出て困っています。
(”の前にOCX名は表示されません。)

Win98にVB6.0をインストールしたのですが、VB5.0を入れることになったのでアンインストールしました。
使用するOCXをC:\windows\system下から削除し、その後VB5.0をインストールしました。
VB5.0を起動し、メニューバー「プロジェクト」−「コンポーネント」−
「Microsoft Rich Textbox Control 5.0」にチェックを入れ、「OK」をクリックしたら、
「”を読み込めません。」というエラーメッセージが出てしまいました。


「Regsvr32 /u Richtx32.ocx」を実行して、レジストリから削除したりもしたのですが、 同じ結果になります。

これはOSからインストールしなおした方がいいのでしょうか。
それともOCXが壊れているのでしょうか。
正常に動いている端末のOCXをコピーしても、同じメッセージが出てしまいます。

どなたか教えてください。
お願いします。

No.4717 データ受信がうまくいきません。  投稿者:まー [02/5/15(水)18:45分]



PC同士でデータの送受信を行いたいのですが、
送信側は「MSComm1.Output = "FAQ:5L"」でデータを送信し、
受信側は

If MSComm1.InputMode = comInputModeText Then
RecBuff = RecBuff + MSComm1.Input
Exit Sub
End If

のように記述すれば、
"FAQ:5L"というデータがそのまま受信されると考えたのですが、
うまくいきません。

このようなことがしたい場合、
1byteずつ受信して、まとまったデータをStringに変換しなければ、
いけないのでしょうか?

また、byteのデータをStringに変換する方法がよく分からないので、
教えていただけますか?お願いします。

No.4716 初歩的かもしれませんが・・  投稿者:ライ [02/5/15(水)18:29分]

こんばんは。

この間の件は解決しました。
今度は、作成したものを最大化でみると
テキストボックスの大きさが変化せず
見栄えがすごくわるくなってしまいます。
それと、テキストボックスのカーソルの種類を変更したいのですが
どうすればいいのでしょう?
ご返答お待ちしております。

No.4715 re:ファィル全体を1つの変数に一発で読込む方法  投稿者:Yuuko [02/5/15(水)9:55分]

A221さん。ゆう(U)さん ありがとうございました。 

出張してたもので お礼が遅れました。 

No.4714 Re:インサート,リロードについて  投稿者:ゆう(U) [02/5/14(火)20:04分]

A221 さんが書かれている通り、Field オブジェクトの

場合、Captionではなく「Name プロパティ」でした。


ちなみに・・・

SQL(SELECT文)で取得したレコードセットを表示するなら
「Data コントロール」を使用すると2〜3行のみで簡単に
表示できますが・・・
※VB6.0なら「ADOデータ コントロール」とか

詳しくは「DataSource プロパティ」などのヘルプも
読んでみてください。


レコード追加後にデータコントロールのRefreshとか・・・
※オープン時のモードも関係するかもね

No.4713 Set up  投稿者:ライ [02/5/14(火)17:54分]

えーと、作ったソフトを、DLしてから、

アイコンをダブルクリックすると
セットアップ画面になり、セットアップするようにするにはどのようにすればいいんでしょうか?
もうソフト自体は完成しているので、あとはセットアップ形式にするだけなのですが・・
ご返答お待ちしております

No.4712 パッケージインストール時のエラーで困っています  投稿者:sakusaku [02/5/14(火)17:07分]

作成したプログラムを「ディストリビューションウイザード」を使って

パケージ化し、テスト用マシンにインストールしようとしたところ、
エラーが発生し、困っています。

エラーの内容は、「d:\package\\@data.mdbが見つかりません」というもので、
メッセージを見ると実際にファイルのあるパスに対し"\@"が余計に付いています。
この症状は、実際にプログラムを組んだマシンでは発生しません。

環境、エラー発生の手順は下記の通りです。

/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
環境:開発機

   WIN2000(SP2)+ VB6.0(SP5)
   
   テスト機

   WIN2000(SP2)
/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
症状が起きるまでの手順

1. 開発機側で「ディストリビューションウイザード」を使用し、
  パッケージを作成。
2.LANでテスト機側へファイルを移動
3.テスト機上でセットアップを行う。





No.4711 re:インサート,リロードについて  投稿者:A221 [02/5/14(火)17:04分]

>項目名の部分(グレーになってる部分)とレコードとを含めた

>レコードは取れないのでしょうか?

例えばフィールドn番目の項目名、ということですか?
MsgBox Fields(n).Name    'nは任意の数字

インサートのほうはSQLのINSERT INTOですか?
rs.Addnewとrs.Updateですか?

No.4710 Re:インサート,リロードについて  投稿者:ゆう(U) [02/5/14(火)16:54分]

レコードセットの内容全てをMSFelxGridコントロールに表示しているなら

配列で内容を保存する必要は無いのではないでしょうか?

ちなみに多次元の配列の場合、変更可能なのは最後の
次元のみです。

ReDim strArray(0 To 4, 0 To 49)

ReDim strArray(0 To 4, 0 To 99)
はOKですが

ReDim strArray(0 To 9, 0 To 49)
はNGです。


配列に保存しない場合インサート結果を追加したいのであれば、
行を追加するメソッドで追加する部分だけ変更すると簡単に
終了しますが?
「AddItem メソッド」
※vbTabで列をつなげればOK


それと列のタイトルは「Field オブジェクト」の
「Caption プロパティ」を参照するとOKでしょう。


RowsとCount(*)+列のタイトルの関係を考えれば
最後の行が表示されない原因はわかるのでは?
※+1でOK・・・理解されていますよね

No.4709 インサート,リロードについて  投稿者:ゆずマン [02/5/14(火)16:10分]

このようなコードでmdbをMSFlexGridに表示しています。

ここで質問です。
レコードをSQLで取得しているのですが
mdbのテーブルの項目(グレーになっている部分)のレコードは取ってこないため
項目名は自分で取得して、そのぶん表示させる場合に行のループカウンターを1行目から始めています。
項目名の部分(グレーになってる部分)とレコードとを含めたレコードは取れないのでしょうか?
今は、レコード数をSQLで取ってはいるのですが表示させると最後の行が表示されない為
redset(0)+1として対処しています。

あと、このmdbにデータをインサートしたいのですが、
インサートをする事はできるのですが、インサートされたmdbをリロードするときに
このコードでリロードするとエラーとなってしまいます。
どうしたらリロードができるようになるのでしょうか
わかる方がいらっしゃいましたらよろしくお願いします。

*************************************   'すでにDBは開かれています
  'TBLUSERのテーブルを表示
strSQL = "SELECT * FROM dbo_TBLUSER" 'テーブルのすべての項目を取り出す
Call SQL_Select(strSQL, myset)

'レコード数の取得
rstSQL = "SELECT COUNT (*) FROM dbo_TBLUSER"
Set recset = dbs.OpenRecordset(rstSQL) 'フィールドの0番目に行数が取得される

Dim ColCount As Integer
Dim RowCount As Integer
ColCount = myset.Fields.Count 'レコードセットの列の数を調べる
RowCount = recset(0) + 1 '+1は見出し分

ReDim Preserve strTBLUSER(RowCount, ColCount) As String '列を配列に格納


With FrmUSER.MSFlexGrid1 '見出しの入力
.Cols = ColCount
.Rows = RowCount
.ColWidth(-1) = 1500
.TextMatrix(0, 0) = "USE_ID"
.TextMatrix(0, 1) = "USE_NAME"
.TextMatrix(0, 2) = "USE_PASS"
.TextMatrix(0, 3) = "USE_LEVEL"
.TextMatrix(0, 4) = "USE_OFFICE"
End With

'動的配列にテーブルのデータを格納する
rowNum = 1 'カウンターの初期化
colNum = 0
Do While Not myset.EOF And rowNum < RowCount '見出し部分を加えてカウントさせる
colNum = 0 'カウンターの初期化
Do While colNum < ColCount '列の数とレコードセットの比較

strTBLUSER(rowNum, colNum) = myset.Fields(colNum).Value 'mdbのレコードを配列に格納

With FrmUSER.MSFlexGrid1
.TextMatrix(rowNum, colNum) = strTBLUSER(rowNum, colNum)
End With
colNum = colNum + 1 '配列のカラムを1移動
Loop
rowNum = rowNum + 1 '配列のレコード1行移動
myset.MoveNext 'レコードセットの改行
Loop
myset.Close
*************************************************************************

No.4708 NAO★様 ありがとうございます。   投稿者:emma [02/5/14(火)14:08分]

ショートカットをスタートアップフォルダーに作るだけでも、

出来るんですね。
大変参考になりました。
わざわざご丁寧にありがとうございました♪

No.4707 Re: rs.update  投稿者:とろ [02/5/14(火)11:10分]

> レコードをデータベースに書き込むのに

> rs.update
> を使っているのですが、書き込みに失敗したときには何が返ってくるのかわかりません。
> 誰か知ってる人いませんか?
> updateが失敗したらRollbackTransさせたいのです。

失敗するとエラーが発生すると思いますが。
だから、下のような感じで良いと思います。
======================================
On Error GoTo L_Err
...
rs.Update
...
GoTo L_Exit
L_Err:
'ロールバック処理を記述
GoTo L_Exit
L_Exit:
======================================

No.4706 rs.update  投稿者:初心者totoro [02/5/14(火)10:12分]

レコードをデータベースに書き込むのに

rs.update
を使っているのですが、書き込みに失敗したときには何が返ってくるのかわかりません。

誰か知ってる人いませんか?

updateが失敗したらRollbackTransさせたいのです。

No.4705 RE:パワーポイントについて  投稿者:Rabbit [02/5/14(火)8:42分]

多分、Set xlApp = GetObject(, "powerpoint.application")はいらないのでは?

後、objpresentのオブジェクトも解放する必要があると思います。

No.4704 パワーポイントについて  投稿者:ゆうこ [02/5/13(月)19:39分]

1分間隔でパワーポイントのファイルをOPENしてCLOSEしています。

1回目のOPEN・CLOSEは上手くいくのですが。。。2回目開いたファイルを
CLOSEする時に(下記ソース)GetObjectのところで
「Activexコンポーネントはオブジェクトを作成できません。」とエラーが出ます。

繰り返しOPENしてCLOSEかけたいのですが・・・
上手くいきません・・・下記ソースの書き方が悪いのでしょうか??

---------------------------------------------------------------------------------
'パワーポイントを開く
Set xlApp = CreateObject("powerpoint.application")
xlApp.Visible = True
Set objpresent = xlApp.Presentations.Open(FileName:=EXCELNM, Untitled:=True)
xlApp.Presentations(1).SlideShowSettings.Run
xlApp.SlideShowWindows(1).Activate

'パワーポイントを閉じる
Set xlApp = GetObject(, "powerpoint.application")
xlApp.Quit ' 処理終了後、Quit メソッドでアプリケーションを終了し、
Set xlApp = Nothing ' オブジェクトの参照を解放します。
---------------------------------------------------------------------------------
もし分かる方いらっしゃいましたら教えてください。

No.4703 レコードセットについて  投稿者:ゆずマン [02/5/13(月)17:50分]

ありがとうございました!!

A221さんと、とろさんのおかげで
仕組みがわかりました!!

特にとろさんにはこんなに丁寧に説明していただいて・・・
本当にありがとうございました

No.4702 Re:ピクチャーボックスの絵   投稿者:みゆ [02/5/13(月)15:22分]

自己レスです。

すみません。
私の設定ミスでした(TT

No.4701 re:レコードセットの質問  投稿者:A221 [02/5/13(月)15:19分]

DAOでのレコードセットは通常DBEngineオブジェクトに含まれており、

その下に
WorkSpace → Connection
Database(今回はこちら)

というオブジェクトがあり、さらにその下には

            → RecordSet → Field
という成り立ちです。

では、「Counter(0)」が何を指すのかといえば
レコードセット「Counter」のフィールド「0」番目の値を指します。

すなわち、Counter.Fields(0).Valueでもよいわけです。

>ここでとてもはづかしい質問なんですが
わからないことをわからないというのは全然恥ずかしいことでは
ありませんよ。

前のログ 次のログ


VBレスキュー(花ちゃん)
Visual Basic6.0  VB6.0