玄関へお回り下さい。 前のログ 次のログ

No.5150 Re: CD-ROMドライブ  投稿者:SSK [02/6/28(金)14:53分]

割り込み失礼します。


>> SDK32:CD-ROM 挿入/取り出しの通知を得る
>> 最終更新日: 1999/03/16
>> 文書番号: JP163503

> を参考に、 VB に移植してやってみましたけど、
> うまくいきませんでした。

Win98 + VB6 ですが、当方では上記の方法でうまくいきました。

#でも、SysInfo.OCXの方が簡単ですね。

No.5149 Re: CD-ROMドライブ  投稿者:とろ [02/6/28(金)14:41分]

> WindowsXP VB6.0  Windows98SE VB6.0 で試して見ましたところ

> 両方とも確認できました。(CDが入っていないと発生しない)

> 私の環境(Windows 2000、CD-ROM/DVD-ROM (IDE))では、出し入れするだけで、
> 提示されたコードでイベントが発生することを確認しました。

なんで、私だけできないのでしょう...
なんか、仲間はずれの気分...
環境は WinNT4.0(SP6) + VB5(SP3) ですけど。

よし、家に帰ってから
WinMe, Win2000 で確認してみよう。

No.5148 Re: CD-ROMドライブ  投稿者:花ちゃん [02/6/28(金)14:29分]

WindowsXP VB6.0  Windows98SE VB6.0 で試して見ましたところ

両方とも確認できました。(CDが入っていないと発生しない)

すごい! \(~o~)/


No.5147 RE:漢字のカナについて  投稿者:花ちゃん [02/6/28(金)13:54分]

簡単な方法なら Excel を利用した方法がここのExcel&Word関係にあります。

APIを使った方法は性と名のところでうまく変換されないの多いですが
下記のサイトのサンプルはお薦めかと思います。
 
 http://www.netlaputa.ne.jp/~stadt/vb/index.html


No.5146 Re: CD-ROMドライブ  投稿者:K.J.K. [02/6/28(金)13:47分]

私の環境(Windows 2000、CD-ROM/DVD-ROM (IDE))では、出し入れするだけで、

提示されたコードでイベントが発生することを確認しました。

No.5145 Re: CD-ROMドライブ  投稿者:とろ [02/6/28(金)13:07分]

> SysInfo.OCXのDeviceArrivalやDeviceRemoveCompleteイベントを使ってみては。


SysInfo をフォーム上に貼り付けて、下のコードをコピー・アンド・ペーストして実行しても同じですね。
ドライブを追加すると DeviceArrival イベントが発生して、
ドライブを削除すると DeviceRemoveComplete イベントが発生しますが、
CD-ROM が挿入された、取り出されたという場合には発生しませんでした。

# 私はイベントが発生しようがしまいが、興味を持ったから試しているだけですけど、
# 元質問者の方はあきらめたのでしょうか...

===================================================================================
Private Sub SysInfo1_DeviceArrival(ByVal DeviceType As Long, _
ByVal DeviceID As Long, ByVal DeviceName As String, ByVal DeviceData As Long)
Debug.Print "DeviceArrival"
End Sub
Private Sub SysInfo1_DeviceRemoveComplete(ByVal DeviceType As Long, _
ByVal DeviceID As Long, ByVal DeviceName As String, ByVal DeviceData As Long)
Debug.Print "DeviceRemoveComplete"
End Sub

No.5144 Re: 大きいフォントと小さいフォント  投稿者:Honda [02/6/28(金)12:27分]

ありがとうございます


TwipsPerPixelで調整することにしました。

No.5143 Re: CD-ROMドライブ  投稿者:K.J.K. [02/6/28(金)12:25分]

SysInfo.OCXのDeviceArrivalやDeviceRemoveCompleteイベントを使ってみては。


No.5142 Re: CD-ROMドライブ  投稿者:とろ [02/6/28(金)12:01分]

> SDK32:CD-ROM 挿入/取り出しの通知を得る

> 最終更新日: 1999/03/16
> 文書番号: JP163503

を参考に、 VB に移植してやってみましたけど、
うまくいきませんでした。

net use コマンドを使って、ドライブを
作成/削除したというメッセージは、取得できたのですが、
CD-ROM を挿入/取出しというメッセージは
取得することが出来ませんでした。

まっ、私のコーディングが間違っているから
だとは思いますが、参考までに。

No.5141 漢字のカナについて  投稿者:まきこ [02/6/28(金)11:52分]

お世話になっております!


またもや質問なのですがよろしくお願いいたします。

Textボックスで入力した文字(氏名漢字)よりフリガナを
自動的に求めたいのですが、なにか良い方法ありますか?

よろしくお願いいたします。

環境:Windows98、VB6(SP5)

No.5140 RE:disconnectについて    投稿者:penguin [02/6/28(金)11:12分]

もともとDBに接続されていたものが切れたときにメッセージ出すので、
CD-ROMが開けたことが原因でDBにアクセスできない」というような旨のメッセージになります。

CD-ROMのトレイにCDがない場合や接続されてないときに接続に失敗したときに
「データベースにアクセスできません」になります。

No.5139 RE:任意ファルダ以下の読み込み  投稿者:じょうじ [02/6/28(金)10:59分]

花ちゃんありがとうございました。すべて解決しました!!

No.5138 RE:disconnectについて  投稿者:よねKEN [02/6/28(金)10:56分]

> CD-ROMに入っているデータベースとの接続が切れたときにメッセージを出そうとしてます。


データベースにアクセスするときに適切なエラートラップをしておいて、
単に「アクセスできません」というような意味あいのエラーメッセージを出すのでは駄目なんでしょうか?

「CD-ROMが開けたことが原因でDBにアクセスできない」というような旨のメッセージで
ユーザーに知らせないといけないのでしょうか?そんな詳細って必要ですか?

例えば、マニュアルに「アクセスできません」というメッセージが出た場合の原因として
「CD-ROMが開いていることが考えられます」と載せておけばいいだけのような気がします。

No.5137 RE:disconnectについて  投稿者:penguin [02/6/28(金)10:39分]

CD-ROMに入っているデータベースとの接続が切れたときにメッセージを出そうとしてます。

PCでCD-ROMのトレイを開いたときに勝手に接続が切れると思うのでdisconnect使えばいいのかな?
って思った次第なのですがなにぶん初心者なもので・・・
VB自体で開閉はしないつもりですよ。

No.5136 Re: CD-ROMドライブ  投稿者:花ちゃん [02/6/28(金)10:10分]

VBのサンプルではないのですが MSに下記のようなものがありました。


SDK32:CD-ROM 挿入/取り出しの通知を得る
最終更新日: 1999/03/16
文書番号: JP163503


No.5135 RE:任意ファルダ以下の読み込み  投稿者:花ちゃん [02/6/28(金)10:08分]

サブフォルダー以下が取得できたら、後は個々のフォルダーについて

[ファイル名又はディレクトリ名を読み込む(Dir関数)]を参考に
フォルダー内のファイルを取得して変更すれば出来ます。

サブフォルダーについては Path を配列に読み込んでおき
その配列内のフォルダー内のファイルを順番に調べるようにすれば
すべてのファイルが取得できます。
Dir の変わりにAPIを使用する方法もあります。一度にHD内のすべての
ファイルの属性を変えるような事はないと思うので Dir 関数でもいいかと思います。

No.5134 Re: 大きいフォントと小さいフォント  投稿者:よねKEN [02/6/28(金)10:03分] http://www5b.biglobe.ne.jp/~yone-ken/

>Windowsの画面プロパティに画面のフォントサイズの設定がありますが、

>この値を取得する方法をご存知ないでしょうか?

ちょいちょいと検索してみました。
http://tksoft.cjb.net/vb/system/gamenfontsize.html

>小さいフォント(96dpi)で画面を作成しても、大きいフォント(120dpi)を使用しているマシンでは
>最大化している時にはみ出してしまいます。
>どうにかして解決したいのですが、

考え方としては、フォントサイズをこちらの思う通りに見えるようにする方法と
逆にユーザーの指定するフォントサイズに合わせて各コントロールのサイズを調整する方法とあります。

前者のやり方としては、2通りあります。

1.開発環境のScreen.TwipsPerPixelYの値と実行時のScreen.TwipsPerPixelYの比率から
フォントサイズを調整する方法。
#以下の本で紹介されている方法です。
#「Visual Basic ビジュアルプログラミング実践テクニック」
#http://home.impress.co.jp/books/vbbook/

2.フォントサイズをあらかじめピクセルで指定する方法
#以下のサイト、及び、「Visual Basic スーパープログラミング」という本で紹介されています。
#「新日本プログラミング情報」
#http://members.aol.com/njprog/vb_002.html

後者のやり方としては、こちらも2通り。

1.ScaleModeもTwipsのまま、一切コードではサイズ指定しない。
フォントサイズに応じて各コントロールはサイズが調整されます。

2.フォントサイズを元に全コントロールのサイズを調整する。
TextWidth、TextHeightメソッドでフォントの幅、高さがわかりますので、
それで後は各コントロールの配置を実行時に計算で求めます。



No.5133 大きいフォントと小さいフォント  投稿者:Honda [02/6/28(金)9:40分]

Windowsの画面プロパティに画面のフォントサイズの設定がありますが、

この値を取得する方法をご存知ないでしょうか?

小さいフォント(96dpi)で画面を作成しても、大きいフォント(120dpi)を使用しているマシンでは
最大化している時にはみ出してしまいます。
どうにかして解決したいのですが、
なにか方法があればよろしくお願いします。


No.5132 RE:任意ファルダ以下の読み込み  投稿者:じょうじ [02/6/28(金)9:34分]

>それをご覧になられたのなら、その下に

>FileSystemObject オブジェクトの使用例ファイル・フォルダー操作)があったと思います。
>その中に 指定フォルダー以下のサブフォルダーを列挙 が有りますので見て下さい。

すみません。そこまで気づきませんでした。あやまりついでにもうひとつ質問いいですか?
上記の方法でサブフォルダーの属性は変えることができましたが、ファイルの属性を変えること
ができません。任意フォルダー、サブフォルダー内のファイルの読み込み方はどうすればいいのでしょうか。

No.5131 Re: CD-ROMドライブ  投稿者:K.J.K. [02/6/28(金)0:48分]

考えてみれば、WM_DEVICECHANGEメッセージがブロードキャストされるはずなので、

SysInfo.OCXで捕えられるかも知れませんね。

No.5130 Re:CD-ROMドライブ    投稿者:penguin [02/6/28(金)0:31分]

わたしの勝手な想像ですが、maroさんのやりたいことって私と同じじゃありませんか?

同じ質問する前にいろんな方法を考えましょう!

えらそうな事言ってすみませんm(__)m

No.5129 disconnectについて  投稿者:penguin [02/6/28(金)0:25分]

今、CD-ROMに入ってるACCESS2000のデータベースをADOでVB6.0(sp5)と接続しているのですが、

CDを取り出そうとしたときにメッセージを出そうとしているのですがうまくいきません。
disconnectを使えばいけそうなのですがMSDNのヘルプを見ても使い方がよくわかりませんでした(^-^;
だれか使い方の例かよく説明されているサイト知りませんか?
お願いしますm(__)m


No.5128 re:データの比較検索    投稿者:うさうさ [02/6/27(木)19:47分]

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

勉強ぶそくでした。。。、

No.5127 re:データの比較検索  投稿者:NAO★ [02/6/27(木)19:23分]

ヒント


Dim mai as Integer

mai = i

上の二つの行をそれぞれ適切な行に挿入して、ループのあとで
変数maiの値を見るといいかと思います。

No.5126 データの比較検索  投稿者:うさうさ [02/6/27(木)19:08分]

こんにちは。かなりの初心者です。そこで質問なんですが、

For i = 1 To maxrec
ret(i) = DateDiff("d", datatable(3, i), Date)
Next i

ma = ret(1)
For i = 1 To maxrec
If ret(i) >= ma Then
ma = ret(i)
End If
next i

このような場合に最大値をもとめようとしています。そして、最大値がでたときの「i」の値を使いたいです
いくらやってもうまくいきません。なにかいい方法があればおしえてほしいです。

No.5125 CD-ROMドライブ  投稿者:maro [02/6/27(木)15:37分]


CD-ROMドライブの開閉はVBではなくPCについているボタンを使ったとき、
VBでCD−ROMドライブを開けという命令が出たことをキャッチできるのでしょうか?

No.5124 RE:任意ファルダ以下の読み込み  投稿者:花ちゃん [02/6/27(木)15:31分]

それをご覧になられたのなら、その下に

FileSystemObject オブジェクトの使用例ファイル・フォルダー操作)があったと思います。
その中に 指定フォルダー以下のサブフォルダーを列挙 が有りますので見て下さい。

No.5123 任意ファルダ以下の読み込み  投稿者:じょうじ [02/6/27(木)13:53分]

質問があります。

任意ファルダ以下全部のフォルダーとファイルの属性の一括変換をしたいのですが
どのようにすればいいのでしょうか。こちらにc:\windows\以下の属性取得の方法があったので
参考にしてやっていましたが、任意のフォルダーからはじめると言うのでつまづいています。
ご教授お願いします。

No.5122 Re: MultiSelect を実行時変更する方法  投稿者:花ちゃん [02/6/27(木)13:00分]

ありがとうございます。


やはり、だめですか!!

No.5121 Re: MultiSelect を実行時変更する方法  投稿者:K.J.K. [02/6/27(木)12:07分]

複数選択に関するスタイルの変更は、確か許可されていなかったと思います。


No.5120 RE:RE:MSFlexGridのセルについて  投稿者:sato [02/6/27(木)11:24分]

すみません。よくみてから投稿させていただきます。


もう一つすいません。ページ更新したら同じ物を
書き込んでしまいました。。。(^^ゞ

No.5119 MultiSelect を実行時変更する方法  投稿者:花ちゃん [02/6/27(木)11:02分]

リストボックスの MultiSelect プロパティの値を実行時に変更したいのですが

何か方法があるのでしょうか?

実行時にリストボックスを作成しているので、デザイン時にはプロパティを
設定出来ないので実行時に変更する方法を探しているのですが、ご存知の方
おられましたら、ご教授願います。

No.5118 RE:MSFlexGridのセルについて  投稿者:花ちゃん [02/6/27(木)10:52分]

左のメニューの MSFlexGrid関係 の中の


MSFlexGrid関係の過去のログ一覧より(行・列関係及びセル等の編集関係) の中に

  No.4023 Re:MSFlexGridセルのマージ  投稿者 ゆう(U) さん があります。

質問される前に出来るだけ逆引きヘルプやサイト内検索で調べてから質問されると
回答も早いですよ


No.5117 Re: メモリの解放について  投稿者:K.J.K. [02/6/27(木)10:25分]

> Nothing に設定されているオブジェクト変数を使用しようとすると、エラーが出る

> みたいなんですが・・・

参照されていないものは使えませんよね。
そのオブジェクトをどういう形で保持しているのでしょうか?

例えば、こんな形で共有すれば、

Private mobjX As ClassX

Private Sub Form_Load()
Dim frm As Form
Dim frmX As FormX

For Each frm In Forms
On Error Resume Next
Set frmX = frm
If (0& = Err.Number) Then
mobjX = frmX.ObjectX
On Error GoTo 0
Exit For
End If
Call Err.Clear
On Error GoTo 0
Set frm = Nothing
Next
If (mobjX Is Nothing) Then Set mobjX = New ClassX
End Sub

Private Sub Form_Unload(Cancel As Integer)
Set mobjX = Nothing
End Sub

Public Property Get ObjectX() As ClassX
Set ObjjectX = mobjX
End Property

特に問題は生じませんよね。

No.5116 MSFlexGridのセルについて  投稿者:sato [02/6/27(木)10:23分]

はじめて投稿させて頂ます。


さっそくですがMSFlexGridのセルって結合できないんでしょうか?
よろしければご指導お願いします。

No.5115 RERE:ACCESSの日付での検索    投稿者:はまお [02/6/27(木)9:56分]

お2人のご指摘通り


inf = "(受付日 >= #" & dt1 & "# And " & "受付日' <= #" & dt2 & "#)
  Or (受付日 >= #" & dt3 & "# And " & "受付日' <= #" & dt4 & "#)"

にしたら動きました... NAO★さん、とろさん、ありがとうございます。

No.5114 Re: ACCESSの日付での検索  投稿者:とろ [02/6/27(木)9:16分]

> inf = "('受付日' >= '" & dt1 & "' And " & "'受付日' <= '" & dt2 & "') 

>   Or ('受付日' >= '" & dt3 & "' And " & "'受付日' <= '" & dt4 & "')"
>
> Set rs = db.OpenRecordset("SELECT * FROM XXテーブル WHERE " + inf)

これだと、
'受付日' という文字列と '2002/01/01' のような文字列(日付)を
比較することになってしまいます。

No.5113 RE:ACCESSの日付での検索  投稿者:NAO★ [02/6/26(水)23:19分]

>Set rs = db.OpenRecordset("SELECT * FROM XXテーブル WHERE " + inf)


こういう条件がうまくいっているか不明な場合、問い合わせのSQLを
イミディエイト ウィンドウに表示させて眺めてみると原因がわかるかも。
また、そのSQLをACCESSで直接実行してみるのも手です。

#たしかACCESSでは、日付型のデータはシングルクォーテーションではなくて、# で囲まないと
いけなかったような。それは関係ないですか?

#あ〜、書き込むの久しぶりだ(^^;

No.5112 メモリの解放について  投稿者:ぱぱん [02/6/26(水)17:56分]

クラスモジュールのメモリの解放についての質問なんですが・・・

データベースに複数セッションをもたせようとしてるのですが・・・
まずフォームをロードしたときにクラスのインスタンスを生成します。
そして同じフォームをもう一度ロードします。
つまり、同じフォームを2つ画面に表示させます。

その後1つ目のフォームを終了させます。このときNothingでメモリを解放してるのですが
残ったもうひとつのフォームを終了させるときにエラーが出てしまいます
Nothing に設定されているオブジェクト変数を使用しようとすると、エラーが出るみたいなんですが・・・
クラスのメモリはNothing以外で解放する事はできるのでしょうか??
よろしくお願いします。

No.5111 ACCESSの日付での検索  投稿者:はまお [02/6/26(水)17:41分]

以下のような記述でACCESSからデータを取得しようとしたのですが、条件が無視されてしまいます。

(全データ取得されてしまう)
記述が根本的におかしいのでしょうか...
dt1〜dt4 はDate型の変数で値はyyyy/mm/ddで入っていました。
また、2行に分けて書いてありますが、実際は1行で記述しています。

すみませんが、よろしくお願いいたします。


inf = "('受付日' >= '" & dt1 & "' And " & "'受付日' <= '" & dt2 & "')
  Or ('受付日' >= '" & dt3 & "' And " & "'受付日' <= '" & dt4 & "')"

Set rs = db.OpenRecordset("SELECT * FROM XXテーブル WHERE " + inf)

No.5110 RE:画像ファイルについて    投稿者:mura [02/6/26(水)17:07分]

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

No.5109 RE:画像ファイルについて  投稿者:花ちゃん [02/6/26(水)16:11分]

もう解決されているかも知れませんが?


Private Sub Command1_Click()
If FileDateTime("C:\サンプル001.TXT") < FileDateTime("C:\サンプル002.TXT") Then
MsgBox "古い"
Else
MsgBox "新しい"
End If
Debug.Print FileDateTime("C:\サンプル001.TXT")
Debug.Print FileDateTime("C:\サンプル002.TXT")
End Sub

No.5108 Re: 閉じるボタンの取り外し方  投稿者:花ちゃん [02/6/26(水)16:03分]

K.J.K. さん ありがとうございました。 


サブクラス化する事で思い通りの操作ができるようになりました。


No.5107 トランザクションについて  投稿者:ゆずマン [02/6/26(水)15:21分]

ADOのトランザクションで質問です。

1つトランザクションをbeginTransメソッドで開始したら、CommitTransメソッドで終了させるまで
もうひとつトランザクションを開始する事はできないのでしょうか?

No.5106 Re: 閉じるボタンの取り外し方  投稿者:K.J.K. [02/6/26(水)11:10分]

Formに貼り付けて使うわけには行かないのでしょうか?

移動を妨げること自体は、サブクラス化してWM_NCHITTESTでHTCAPTION
を返さないようにすれば可能でしょうけど。

No.5105 Re: 閉じるボタンの取り外し方  投稿者: 花ちゃん [02/6/26(水)11:00分]

何度もありがとうございます。


>MovableプロパティをFalseにしてみるとか。

この状態をリストボックス(ウィンドウスタイルを変更した)で実現したいのです。

No.5104 RE:画像ファイルについて    投稿者:Say [02/6/26(水)9:46分]

タイムスタンプを比較するだけなら、

画像を読み込む必要はありません。

たとえば、FileSystemObjectのFileオブジェクトの
Date〜プロパティで取得できます。

No.5103 RE:画像ファイルについて  投稿者:mura [02/6/26(水)0:36分]

花ちゃんさんどうもありがとうございます。分けて読込んで日付で比較などは出来るのでしょうか?

できるのであればヒントか簡単なサンプルなどあれば教えていただけないでしょうか?
よろしくお願いします。

No.5102 Re: 閉じるボタンの取り外し方  投稿者:K.J.K. [02/6/26(水)0:10分]

# また外しているかも知れないけど。


MovableプロパティをFalseにしてみるとか。

No.5101 RE:画像ファイルについて  投稿者:花ちゃん [02/6/25(火)23:46分]

同時に複数のファイルは読込めませんので2回に分けて読込んで下さい。

ただ、ファイルのPathを取得するだけなら配列に読込むとか


玄関へお回り下さい。 前のログ 次のログ


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