前のログ | 次のログ |
No.600 Nullついて 投稿者:MOO [99/7/27(火)14:17分]
カモねぎさんへ
If 変数 = Null Then が Elseになることについて、
Null値を式に含めると、その結果もNullになります。
(これをNullの透過性といいます。)
従って、変数 = Null は Trueではなく Nullを返して
いるため、Else にしかならないのです。
(Nullの透過性についてはMSDNライブラリがあるなら調べてみて下さい。)
後、変数にNullが格納されているかどうか確認するには
やはりIsNull関数を使用します。(これはVBで決まっています)
IsNull関数は Boolean型つまりTrue/Falseを返します。
No.599 PictureBoxの印刷 投稿者:日比 学 [99/7/27(火)13:51分] http://www.d1.dion.ne.jp/~iwashi
PictureBox内の画像を印刷したいのですが、いい方法ありますか?
No.598 Re:Re:Nullについて教えてください 投稿者:カモねぎ [99/7/27(火)11:38分]
みゃおさん回答ありがとうございます。
>If IsNull(変数名) Then ならよろしいんじゃないかと。
これでちゃんと動きました。
ただ、なんで
If 変数名 = NULL Then
だと駄目なんでしょう?
NULLの場合はこういう書き方出来ないんでしょうか?
これはVBの仕様なのかな?
No.597 Re:Nullについて教えてください 投稿者:みゃお [99/7/27(火)9:46分]
If IsNull(変数名) Then ならよろしいんじゃないかと。
No.596 有り難うございます 投稿者:999 [99/7/27(火)0:20分]
MOOさんご回答有り難うございます。たしかにModule1のなかに
Sub Main()
Set fMainForm = New frmMain
fMainForm.Show
End Sub
がありました。一度本でインスタンスがなんとかというのを読んだことが
あります。Set〜の部分がそれに当たるような気がするのですが・・・。
VBを初めてようやく1ヶ月近くになりましたがまだまだ勉強不足ですね。
また何かありましたらご教授お願いいたします。
No.595 Nullについて教えてください 投稿者:カモねぎ [99/7/26(月)19:05分]
超超初心者なんですが…。
If 変数名 = NULL Then って書くと必ずElseに飛ぶのですが、どうしてでしょう?
教えてください。
No.594 ActiveXのサイズ調整ハンドル 投稿者:亜莉子 [99/7/26(月)17:53分] http://www.kt.rim.or.jp/~a_alice/
お久しぶりです\(^o^)/
ActiveXコントロールを作っているのですが、作成したコントロールを 複数選択してRefreshをかけるとサイズ調整ハンドルが消えてしまうんです。
VBのウィンドウを他のウィンドウで隠してもう一度選ぶと出てきます。なぜ?
どうすれば良いのか教えて下さい。
お願いします。
No.593 RE:フォーム内のオブジェクトのサイズの変更 投稿者:MOO [99/7/26(月)13:29分]
ひょっとして、Module1に次のような
Mainプロシージャが有りません?
Sub Main()
Set fMainForm = New frmMain
fMainForm.Show
End Sub
この場合、
Text1.Height = Me.ScaleHeight
Text1.Width = Me.ScaleWidth
で直ります
No.592 MOOさんありがとうございました。 投稿者:高塚一人 [99/7/25(日)15:50分]
返事が遅くなって申し訳ありませんでした。
なんとか出来ました。 m(__)m
ありがとうございました!!
No.591 ディスプレイ解像度の変更 投稿者:スカイ [99/7/25(日)13:17分] http://www.cam.hi-ho.ne.jp/llfff
Win32API ChangeDisplaySettingの使い方が
いまいちわからないのですが誰かご存知でしょうか?
DEVMODE構造体の設定もあやふやなのですが・・・
No.590 ありがとうございました。 投稿者:ポッポ [99/7/24(土)23:52分]
花ちゃんさん、遅くなりましたが、ご教授ありがとうございます。
早速やってみます。
まだまだ初心者ですので、これからも、ちょくちょく書き込みしたいと思っています。
No.589 RE:文字列をTYPE定義した型へ代入 投稿者:MOO [99/7/23(金)18:27分]
MOOです。本日3回目の書き込みです。
こういう方法があります。
Private Sub Convert(sStr As String, uType As aaa)
uType.a1 = Mid$(sStr, 1, 1)
uType.a2 = Mid$(sStr, 2, 1)
End Sub
という関数(関数名は何でも良い)を作成し、
Call Convert(ccc, bbb)
としてやればcccの内容は(分割されて)bbbに代入されます。
但し、この様な方法が必要になる事自体が方法論として
正しく無い場合が多いです。単純に文字列Strを1文字
づつ拾うのであれば、Len関数とMid関数とFor文で何とか
なります。
Option Base 1 '配列の下限を1にする
Dim Char() as string '配列を宣言
ReDim Char(Len(Str)) '配列数 = 文字数
For i = 1 to Len(Str) '文字数分ループ
Char(i)=Mid$(Str,i,1) 'Char(i)にi文字目を代入
Next i
いかがです?
No.588 文字列をTYPE定義した型へ代入 投稿者:高塚一人 [99/7/23(金)16:53分]
文字列をTYPE定義した型へ代入するにはどうしたら良いのでしょう?
ご存知の方〜。教えて下さい。
例)
cccの内容をbbbへ代入してbbb.a1で使いたいのです。
TYPE aaa
a1 as string * 1
a2 as string * 1
END TYPE
dim bbb as aaa
dim ccc as string * 2
No.587 RE:Bitbltについて 投稿者:匿名改めMOO [99/7/23(金)13:20分]
さっき1件記入したとこです。
No.463への回答です。
これは、転送先のイメージを先にBitBltを用いてPictureBox等に
保存しておけば解決できます。
例)
FrmCanv ・・・ 転送先(フォーム)
PicSrc ・・・ 転送する絵(PictureBox)
PicTemp ・・・ 一時的にイメージを格納する所(PictureBox)
1.転送前にFrmCanvのイメージをBitBltでPicTempに転送(部分転送で良い)
2.PicSrcからFrmCanvへBitBltで転送
3.次の場所へ転送を行う前に、PicTempから元の場所(FrmCanv)へBitBlt
で転送(つまり書き戻す)
4. 次の場所で1〜3繰り返し
おわかり頂けましたか?
No.586 RE:タイマーコントロール 投稿者:匿名 [99/7/23(金)11:48分]
当然起動時フォームはスプラッシュフォームになって
いますね?なっていなければ変更して下さい。後は
スプラッシュフォームにTimerコントロールを配置し、
EnabledプロパティをTrue、Intervalプロパティを
希望の数値(例えば3秒なら3000)に設定します。
Timerコントロールのプロシージャは次の通りです。
Sub Timer1_Timer()
FrmMain.Show '次に表示させたいフォームの
'名前にして下さい。
Unload Me 'スプラッシュフォーム消去
End Sub
これでOKです。
No.585 おしえて! 投稿者:ますピー [99/7/22(木)23:16分]
ポップアップメニューを、実行時に、作る方法なんですが、
同じ階層には、Load を使って作れるのですが、
下の階層にめにゅーを作る方法が、分かりません。
分かりづらいですか?
よーするに、
あ行---あ
|-い
|-う
|-え
|-お
と言うメニューを実行時に作りたいのですが…
分かっていただけました?
No.584 他のソフト起動について 投稿者:うちわ [99/7/22(木)4:31分]
private sub Command1_Click()
Dim a
a=Shell("c:\windows\notepad.exe",vbNomalFocus)
End Sub
のように、exeの場所が分かるのは、VBのアプリから起動できますが、
外部の、プリンターや、モデムの起動、終了の取得はどうしたらよいのでしょうか?
API宣言による方法もいまいち分かっていません。
どうぞ御教授のほどお願いします。
No.583 RE:MSFlexGridの印刷 投稿者:花ちゃん [99/7/21(水)23:40分]
ポッポ さん Format が抜けていますよ
Printer.Print Tab(11 + (j - 1) * 8 + 1); _ Right$(" " & Format(frmSub.MSFlexGrid.Text,"######.0"),8);
これでもまだ不充分です、整数のみ場合の事も考えてください。
(一行で書くとか)
No.582 花ちゃんさんへ 投稿者:ポッポ [99/7/21(水)22:26分]
遅くなって申し訳ありません。
この間「MSFlexGridの印刷」について質問させていただいたポッポです。
現在、測量製図を行うためのシステムを作成中です。
先日忠告頂きましたことについて確認を行ってみたのですが、やはり、うまく行きません。
下記に内容を書きますのでお手数ですが、見ていただきご回答お願いします。
For i = 1 To ken
frmSub.MSFlexGrid1.Row = i
Printer.CurrentX = Lyohaku + 1
For j = 0 To kamoku
frmSub.MSFlexGrid1.Cow = j
Printer.Print Tab(11 + (j - 1) * 8 + 1);Right$(" " & frmSub.MSFlexGrid.Text,8);
Next j
Printer.CurrentY = Printer.CurrentY + 0.5
Printer.CurrentX = Lyohaku + 1
Next i
の様に記述をし、印刷すると
45 0 100 70.7 70.7 75.05 70.32 0.0 0.0
90 0 100 0.0 100.0 4.35 99.62 75.05 70.32
225 0 100 -70.7 -70.7 -66.35 -71.08 79.40 169.94
260 0 100 -17.4 -98.5 -13.05 -98.86 13.05 98.86
と、この様に印刷されてしまいます。
それぞれの数値を右揃えにするにはどうしたら良いのでしょうか。
No.581 リストボックスでの外字について 投稿者:高塚一人 [99/7/21(水)12:27分]
こんにちは!
以下の事について、対応策をお持ちの方がおられましたら教えてください。
リストボックスで外字フォントと他のフォントを混在して使えないでしょうか?
あるいは、いかにも混在して表示しているように見せる方法はないでしょうか?
よろしくお願いします。 m(__)m
No.580 フォーム内のオブジェクトのサイズの変更 投稿者:999 [99/7/21(水)11:52分]
すみません、教えていただきたいことがあります。
題名の通りなのですが、フォームの大きさを変更するとフォーム内のオブジェクト
の大きさも変更したいのです。通常はForm_Resize()の中で
Text1.Height = frmMain.ScaleHeight
Text1.Width = frmMain.ScaleWidth
などとやればうまくいくのですが、アプリケーションウィザードで作成したフォームで
これをやってもうまくいってくれません。これはどのようにすれば解決できますでしょうか。
No.579 RE:ボタンにショートカットを付ける方法? 投稿者:花ちゃん [99/7/21(水)8:25分]
ひょっとして 終了(&X) のことですか?
No.578 タイマーコントロール 投稿者:めり [99/7/21(水)8:22分]
アプリを実行させる時にスプラッシュロゴを先に表示させているのですが
スプラッシュが表示される前に(本体が軽すぎる為か)本体作業画面の方が先に(ちらっと)
表示されてしまいます。
これをタイマーコントロールを利用して、実行してから数秒作業画面の表示を
遅らせたいのですが、その場合どの様に記述すればよいでしょうか?
Intervalプロパティで時間を指定して、Enabledプロパティで指定するのかもしれませんが、
組み立て方が解りません。(;_;)
おわかりになる方教えて頂けませんでしょうか。m(__)m
No.577 re:すべて選択 (お礼) 投稿者:めり [99/7/21(水)7:43分]
たくボンさん
Text1.SetFocus
Text1.SelStart = 0 ' 選択を開始する位置と
Text1.SelLength = Len(Text1) ' 選択する文字数を設定します。
で、出来ました〜。(^.^)
ありがとうございますっ。m(__)m
No.576 ボタンにショートカットを付ける方法? 投稿者:nakaji [99/7/21(水)3:47分]
はじめて投稿します。
VB5SP3を使用しておりますが、ボタンにショートカットを付ける方法がわかりません。
何か、根本的な見落としをしているのかも知れませんが、ご存じの方がいらっしゃいましたら、
どうか、お教え下さい。
宜しくお願いします。
No.575 re:すべて選択 投稿者:たくボン [99/7/21(水)1:42分]
SelStart,SelLengthプロパティを使用すればできますよ。
No.574 すべて選択 投稿者:めり [99/7/21(水)0:07分]
続けての質問、失礼します。m(__)m
リッチテキストボックス(テキストボックスでも同じかもしれませんが)
の中に表示されているテキストを全部選択するにはどうすれば良いでしょうか?
よろしくお願い致します。
No.573 RE:ポップアップメニュー(お礼) 投稿者:めり [99/7/20(火)23:46分]
花ちゃんさん(?)
下の様にやってみたらちゃんと出来ました。ありがとうございました!m(__)m
No.572 RE:ポップアップメニュー 投稿者:花ちゃん [99/7/20(火)20:35分]
リッチテキストの場合
Private Sub RichTextBox1_MouseDown(Button As Integer, _ Shift As Integer, X As Single, Y As Single)
If Button = vbRightButton Then
Form1.PopupMenu MyPopMe
End If
End Sub
テキストボックスの場合
Private Sub Text1_MouseDown(Button As Integer, _ Shift As Integer, X As Single, Y As Single)
Text1.Enabled = False 'この3行を入れると
Text1.Enabled = True '右のシングルクリックで
Text1.SetFocus 'カスタムメニュー表示
If Button = vbRightButton Then
Form1.PopupMenu MyPopMe
End If
End Sub
これで表示できましたが?
No.571 ポップアップメニュー 投稿者:めり [99/7/20(火)18:37分]
リッチテキスト上で右クリックでポップアップメニューを表示(切り取り、コピー等の) させたいのですがテキストボックスを使っていた時に記述していたやり方をそのまま残して、
コントロールのみリッチテキストボックスにすり変えた所、表示できなくなりました。
普通にテキストボックスを使っていた時の記述では無理な様なのですが・・・。^^;
リッチテキストボックスでポップアップメニューを表示するにはどうすれば良いのでしょうか?
お分かりになる方、どうぞよろしくお願い致します。m(__)m
No.570 RE:MSFlexGridへのデータの入力 投稿者:花ちゃん [99/7/19(月)18:16分]
下記のように Form2.MSFlexGrid1 フォーム名を入れればOKのはずですが
又は変数を Public で宣言するとかすればOKです。
あとの質問はよく理解できません。
ひとつひとつ解決していきませんか?
やりたいことをもう少し詳しく教えて下さい。
Private Sub Form_Load()
Dim i As Long
Dim ken As Long
ken = 10
With Form2.MSFlexGrid1
.Rows = ken + 1 '行の総数(固定行含む)
.Cols = 8 '列の総数(固定列含む)
.FixedRows = 1 '固定行の数 Rowsより1以上少ない事
.FixedCols = 1 '固定列の数 Colsより1以上少ない事
.Row = 0
.Col = 0
For i = 1 To ken
.RowHeight(i) = 350 '行の高さ
.Row = i
.Text = i
Next i
End With
Form2.Show
End Sub
No.569 お礼:DAO&ADOの書籍 投稿者:バカボン [99/7/19(月)17:27分]
taneさんありがとうございます。
早速見てみます(HP) m(_ _)m
No.568 DAO&ADOの書籍 投稿者:tane [99/7/19(月)16:44分]
雑誌でよければ
VisualBasic magazine 4月号
特集「負けない、めげない、データベース」データベースに必要な
基礎体力を養おう
というものがあります。
参考なると思うのですが、バックナンバーの有無は確かめていません。
http://www.shoeisha.co.jp/pc/vbm/index.html
でご確認ください。
No.567 投稿者:バカボン [99/7/18(日)17:05分]
今まで、DAOでプログラムの勉強をしていたのですが、
”今度はADOで。”と上司にいわれ取り組んでいるのですが、
何がなにやらさっぱり解りません。
基本的な知識がないもので、
ADOって結局何?そもそもDAOって?と根本的なところで詰まってきてしまいました。
ヘルプを見ても”なんのこっちゃ”てかんじで。
こういう場合のお薦めの本をどなたか教えてください。お願いします。m(_ _)m
No.566 フロッピーディスクのドライブ取得について 投稿者:koji-w [99/7/18(日)12:31分]
データをFDに保存したり読み出したりする場合に、ソフトを操作する人が
ドライブを選択するのではなく(コモンダイアログなど)ソフトウェアのほうで
自動的にFDのパス取得するにはどうすればいいのでしょう?
DOS/VだけならC:でことたりるのですが、pc-98にも対応しようとすると
FDのドライブを取得する必要があるのですが・・・。
No.565 RE:終了のしくみ 投稿者:たくボン [99/7/17(土)23:56分]
手元に参考になるような資料が存在しないため、私なりの追求をしてみた結果を 以下に記載しておきます。
http://www.geocities.co.jp/SiliconValley/8358/end.htm
しかし、どうしてメモリの管理が気になるのでしょうか?
作成中のアプリケーションでメモリリークでも発生しているのでしょうか?
VBはメモリの管理やウィンドウの管理をプログラマから極力減らすために開発された言語です。
通常のアプリケーションを作成する場合は一般のプログラマが気にしなくてもよいはずです(^-^)
それとTimerステートメントはその日の午前0:00:00からの経過時刻なので、 できればNowステートメントを使用することをお勧めします(^-^)
No.564 MSFlexGridへのデータの入力 投稿者:bivil [99/7/17(土)19:47分]
MSFlexGridへデータを入力する場合にこちらのMSFlexGrid 関係のサンプルでは同じフォームから
の入力ですが、これを別のフォームから一括して入力するようにしたいのですがうまくいきません
でした。つまり、MSFlexGridをダブルクリックするなり、ボタンを押すなりして新たな窓が開き
そこでサンプルで言えば氏名や国語、数学・・・を入力し、ボタンを押せばそこで入力したものが
MSFlexGridに入力されているという具合です。簡単なことなのかもしれませんが出来ませんでした。
もう一つ入力後にボタンを押して登録フォームを閉じるごとに一行づつ追加したいのですが そのときになにか特別な事をする必要はありますでしょうか。あと、変更したい行をダブルクリック すれば登録フォームにそのデータが入るようにしたい場合もご教授頂ければ幸いです。 いまいちcolやrowを使ってどのように実現すれば良いのか分かっておりませんので、 ご存知の方がいらっしゃいましたらお願いいたします。
No.563 RE:終了の仕組み 投稿者:tane [99/7/17(土)12:50分]
たくボンさま、有難う御座います。
Do While Timer のTimer関数がこんな意味をもつとは思いませんでした。
ところで、とてもとても知りたいのですが、
VBプログラムの終了とは(メモリ内のオブジェクトとコードの解放) どんな具合に進行していくのでしょうか。
ごめんなさい、あまり良く考えずNothingしていました。
でも、Endは緊急的な強制終了で以降のメッセージがWindowsからなされないためその記述位置に
よっては問題があるのではないでしょうか。
このソースは、あくまでもTestでした。
返す返すも有難う御座います。
でも、まだすっきりしていません。
快刀乱麻のようなアドバイスをお待ちします。
No.562 RE:終了の仕組み 投稿者:たくボン [99/7/17(土)4:19分]
自フォーム内でNothingする理由がわかりませんが、通常このような事は避けるべきです。
せっかく、DoEventsでイベント認識をさせているのですから、終了フラグのようなものを
もってループを抜けるべきです。
Endステートメントを使用すると、適切な順序でメモリの解放を行うのでわざわざ フォーム内でNothingする
必要はありません。
(他のモジュールからオブジェクト変数を使用して参照する場合は参照側での 明示的な解放が意味を持ちます)
Option Explicit
Private bolExit As Boolean
Private Sub Command1_Click()
Dim Timer_End, Timer_Val
On Error GoTo Error_Rtn
Timer_End = Timer
Timer_Val = 30
Do While Timer > Timer_End + Timer_Val << 'ここが盲点でした
DoEvents
If bolExit Then Exit Do
Loop
Exit Sub
Error_Rtn:
MsgBox Err.Number & " " & Err.Description
End Sub
Private Sub Command2_Click()
bolExit = True
End
End Sub
No.561 RE:終了の仕組み 投稿者:tane [99/7/16(金)16:21分]
自己レスです。Option Explicit
Private Sub Command1_Click()
Dim Timer_End, Timer_Val
On Error GoTo Error_Rtn
Timer_End = Timer
Timer_Val = 30
Do While Timer > Timer_End + Timer_Val << 'ここが盲点でした
DoEvents
Loop
Exit Sub
Error_Rtn:
MsgBox Err.Number & " " & Err.Description
End Sub
Private Sub Command2_Click()
Unload Form1
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set Form1 = Nothing
End
End Sub
たしかにCommand2にてFormはUnloadされ、Set Nothingされますが
コードは時間が経過するまで生きています。
そして、Do While Timerで時間を参照します。
このTimer関数が問題でした。オブジェクトとオブジェクトへの参照はなくなりましたが (オブジェクト変数のクリア)
オブジェクト上のコントロール(レイアウト上は不可視)Timerが参照されることにより、
オブジェクト(インスタンス)がLoadされるのです。FormがLoadされていて見えない状態です。
こうして、Endという強制終了しか手立てがなくなったという結末でした。
Timer関数を使っても確実にアプリを終了するためには
どうすればいいのでしょうか?
No.560 お礼;re:日付の取得 投稿者:バカボン [99/7/16(金)9:51分]
neptuneさんどうもありがとうございます。
今からやってみます。
No.559 RE:MSFlexGridの印刷について 投稿者:花ちゃん [99/7/16(金)6:09分]
>VBレスキューに載っていた、「データを表形式で印刷する」を少し改良して使用したのですが、
>全て左揃えになり、うまく右揃え(数値データを)ができません。
どこが悪くて、どのように改良されたか知りませんが? 右揃えは下記の設定でできたはずですが!
(ただし、表示桁数での修正は必要)
もう一度サンプルをよく確認して頂けますか!
'各科目の点数印字
Printer.Print Tab(11 + (j - 1) * 8 + 1);Right$(" " & _ Format(MSFlexGrid1.Text, "########"), 8);
No.558 MSFlexGridの印刷について 投稿者:ポッポ [99/7/16(金)0:06分]
初めて書き込みします。VBは未だ初心者ですっ。
VBレスキューに載っていた、「データを表形式で印刷する」を少し改良して使用したのですが、
全て左揃えになり、うまく右揃え(数値データを)ができません。
なお、MSFlexGrid内のデータは、
Col=13列
Row=n行
です。
どなたか良い知恵を教えてください。
No.557 re:日付の取得 投稿者:neptune [99/7/15(木)19:14分]
バカボンさん、こんばんわ
初めて書きこみさせてもらいます。
私は初心者なので、Resは気恥ずかしい気もしますが・・・
>Text1(1) = DateAdd("d", 30, "n")
上の式の, "n" の "" が原因では?
これってString型になってしまうのでは?
こんな方法でも良いのでは?
Dim A As Variant
A = Format(Now, "yyyy/mm/01")
Text1(0) = A
Text1(1) = Format(DateAdd("m", 1, A) - 1, "yyyy/mm/dd")
30という日数を足していたのでは31日の月や2月の時に対応できません。
No.556 日付の取得 投稿者:バカボン [99/7/15(木)16:47分]
Text1(0)〜Text1(1)に、プログラム実行された日のその月の1日から最終日、例えば、
(1999/07/01)〜(1999/07/31)を取得したいのですが・・・
Dim n as Variant
Text1(0) = Format$(Now, "yyyy/mm/01")
n = text1(0)
Text1(1) = DateAdd("d", 30, "n")
・・・・・では、ダメなのでしょうか?
”データ型がちがいます”というERRORメッセージが出てしまいます。
でもバリアント型でいいんですよね?
その間の日付のデータにフラグをつけたいのですが、先に進まなくて困っています。
どなたかヒントをくださいませんか?
お願いします。
No.555 終了の仕組み 投稿者:tane [99/7/15(木)16:10分]
End UnLoad オブジェクト Set オブジェクト=Nothing の関係の中でオブジェクトとインスタンスがメモリ内でどう処理されているのですか ? それが知りたくて、FormにCommandボタンを2つ貼り一つを30秒待機する、もう一つ を終了としました コードは下記の通りです。 Option Explicit Private Sub Command1_Click() Dim Timer_End, Timer_Val On Error GoTo Error_Rtn Timer_End = Timer Timer_Val = 30 Do While Timer > Timer_End + Timer_Val DoEvents Loop Exit Sub Error_Rtn: MsgBox Err.Number & " " & Err.Description End Sub Private Sub Command2_Click() Unload Form1 End Sub Private Sub Form_Unload(Cancel As Integer) Set Form1 = Nothing End Sub これでCommand1をクリックしてLoopが終了しないうちにCommand2をクリックすると Form1オブジェクトはメモリからUnLoadされ、インスタンスは解放されますが。 30秒後インスタンスはメッセージ待ちの状態で残りますね。オブジェクトというイン タフェースがないので 無意味な待ちですが、それでEnd(インスタンスの強制終了)が必要となりますよね Option Explicit Private Sub Command1_Click() Dim Timer_End, Timer_Val On Error GoTo Error_Rtn Timer_End = Timer Timer_Val = 30 Do While Timer > Timer_End + Timer_Val DoEvents Loop Exit Sub Error_Rtn: MsgBox Err.Number & " " & Err.Description End Sub
Private Sub Command2_Click() Unload Form1 End Sub
Private Sub Form_Unload(Cancel As Integer) Set Form1 = Nothing End End Sub なんだかひどいEndの使い方ですが(オブジェクトもUnloadされ、それへの 参照も切られているにもかかわらずメッセージ待ちのインスタンスを削除するには これしかないのでしょうか?しかし、メモリからの解放はなされるのでしょうか?) お教え下さい
この間のログが数件抜けてしまいました。
お詫び致します。
No.554 RE:クライアント&サーバー 投稿者:たくボン [99/7/10(土)1:10分]
サーバー・クライアントとはアプリケーションのことだと思いますが、 VB6ならばActiveX EXEを作成して、公開用のプロパティもしくは メソッドを介してやりとりする方法が一般的だと思います。
単にデータの送信だけであるのなら、DDE通信や、APIを利用して名前付き パイプを作成する手もあります。
ネットワークを介する場合は、サーバーがNTなら上記の方法も有効ですが、 他のOSなどの場合は独自のパイプを作成するか、利用できるプロトコルや ミドルウェアが存在するのならそれを利用するのが楽な方法です。
最後の質問は意味がよく理解できなかったのでもう少し詳しく書いて下さい。
No.553 ADO 投稿者:慶子 [99/7/09(金)0:09分]
VB6を使っているのですが、
DBの接続でSQLOLEDBを使用すると
複雑なストアド(テンプラリなどを使っている)の結果が
返されません。
例
Dim GobjConnection as New ADODB.Connection
Dim GobJRecord as New ADODB.Recordset
GobjConnection.Open "Provider=SQLOLEDB;Data Source=AAA;
Persist Security Info=False;User ID=BBB
Password=CCC
これでオープンするとエラーになってしまいます。
例
Dim GobjConnection as New ADODB.Connection
Dim GobJRecord as New ADODB.Recordset
GobjConnection.Open "DRIVER={SQL SERVER};Server=AAA;
UID=BBB;
PWD=CCC;Database=DDD;
これだとストワドが返ってきます。
この二つのつなぎ方の違いも教えてください。
No.552 クライアント&サーバー 投稿者:PROST [99/7/08(木)11:16分]
初めて投稿します。VB6で
サーバーからクライアントにデータを取得するのと、逆にクライアントから サーバーにデータを送るにはコードはどのようにしたら良いですか? またもう1つ。起動したプロジェクトから違うプロジェクトに登録しているフォームに 起動したプロジェクトにそのフォームを登録せずに表示する方法はどうしたら良いですか? 教えて下さい。
No.551 Re:確かに「close」でやっていました 投稿者:みゃお [99/7/06(火)10:44分]
接続法の書き方に問題はないですよ。
ただ、Windowsフォルダーのhosts(.sam)というファイルに、 ホスト名とIPアドレスが登録されていないとつながりません。
最初はhosts.samというファイル名のはずなので、登録−上書き後拡張子を外します。
でも私は面倒なので、はじめから
open ホストの名前 でなく
open ホストのIPアドレス と記述しています。
前のログ | 次のログ |
VBレスキュー(花ちゃん)
Visual
Basic6.0 VB6.0