くだすれVB6.0以前( ..
[2ch|▼Menu]
237:デフォルトの名無しさん
08/10/15 23:10:38
だよねえ。
ってああ、思い出した、これだ。

URLリンク(msdn.microsoft.com)

> トラブルシューティング
>
>  実行順序。Visual Basic では、演算効率を高めるために数式が自動的に
>  並べ替えられることがあります。このため、変数の値を変えてしまうような
>  Function プロシージャを数式の中で実行しないようにしてください。

238:デフォルトの名無しさん
08/10/15 23:12:17
>>237のだよねえは>>235宛だったんだけど>>236に否定されてるな。まあいいか。

239:デフォルトの名無しさん
08/10/15 23:20:53
そしてリンク先がVB2008のヘルプだった。まあ該当部分はVB6でも一緒なんで。

240:デフォルトの名無しさん
08/10/15 23:35:01
>>236
Cだって&&と||は短絡評価だ。

241:228
08/10/15 23:55:34
>>237
そういうことだったんですね。目から鱗です。

皆様の貴重なご意見身に染みました。
有難うございました。

242:デフォルトの名無しさん
08/10/16 00:52:12
vb6でAndAlsoを代替するなら

if not 条件式A then
elseif 条件式B then

end if


243:デフォルトの名無しさん
08/10/16 01:00:49
(複雑な式の)数値演算の順序と単純な論理演算の順序の問題は
普通に考えればまったく別問題だろう。
目からうろこが落ちてどうする。
だから間違いなくお前さんの勘違いだから。

244:デフォルトの名無しさん
08/10/16 01:28:11
Dim txt As New TextBox
→Newキーワードの使用法が不正です。

これってどうしてでしょうか?
クラスである以上Newできるのが当然と思っているのですけど
できなくてすごく疑問です。


245:デフォルトの名無しさん
08/10/16 02:46:48
質問する前にVBのヘルプを読め。
New で 検索掛ければ 出てくる筈だ。

246:デフォルトの名無しさん
08/10/16 04:31:12
>>240
そうだった。算術演算子と勘違いしてた。

247:デフォルトの名無しさん
08/10/16 13:45:09
Andはどっち?

248:244
08/10/18 18:21:41
キーワード New を使って、固有のデータ型の変数の宣言、または従属オブジェクトのインスタンスの宣言はできません。
→CreateObject または New を使用して従属オブジェクトを作成することはできません
 →クラスの従属オブジェクトからオブジェクトを作るには、クラス モジュールの Instancing プロパティに PublicNotCreatable を設定します。

従属オブジェクトってことですね。

249:デフォルトの名無しさん
08/10/18 18:28:05
>>248
違うと思う。普通に New できるもん。

TextBox ってのの定義と、プロジェクトの種類を教えて。

250:245
08/10/18 20:01:02
>>248
Newにカーソル置いてF1押してるだけだとそのヘルプは出てこないから、
キーワードのヘルプだけでやってるとそこらでドツボにハマる。
というか、私もハマった一人なんだがな。なので、教えるのに若干くどい手段に。

ただ、>>248で従属オブジェクトと言ってるのは多分違う。
>>248の言っている従属オブジェクトと言うのは、
自作したクラスの中にTextBoxを丸ごと包括してたりする場合などを示す。
と言う訳で、Newの仕様を理解した所で回答。(宣言時のNewは自作Class専用みたいな物。)
ヘルプで探してもナイスな方法が出てこなかった気がするので説明添えてサンプル提示してみる。



Controls.Addで追加してそれを参照する形でNewの代用とする。
※txtNewは作成されるコントロール名なので複数Addする際は重複不可。
動的に割り当てる場合、大概は複数作る筈なのでindexに配列値を入れて、
Set Txt(index) = Me.Controls.Add("VB.TextBox", "txtNew" & format(index))
と言う形で作成する。
'--------------------------------始
Dim Txt(1) As TextBox
Set Txt(0) = Me.Controls.Add("VB.TextBox", "txtNew" & Format(0))
Set Txt(1) = Me.Controls.Add("VB.TextBox", "txtNew" & Format(1))
'--------------------------------
'単発版
Dim Txt1 As TextBox
Set Txt1 = Me.Controls.Add("VB.TextBox", "txtNew1")
'--------------------------------終
これを走らせると、定義したformにtxtNew1と言うオブジェクト名を持つTextBoxを作成し、
参照の設定を終えた形になる。
ただし、Me.Controlsの数は255以下とされていて、それを超えて生成しようとすると失敗する。
「際限なくコントロールを作成できるボタン」等を作成する場合は、
カウント数を見ながらエラートラップすべし。

251:デフォルトの名無しさん
08/10/19 12:40:44
コントロール配列にすれば良いじゃん

252:デフォルトの名無しさん
08/10/19 20:17:00

ハード(分解能=1μs)のタイマとソフトのタイマ使ったソフト仕事で作ってるんですが
VB6のタイマの分解能って実際50msぐらいなんですか?Windowsのタイマの分解能が1msらしいですが、、、

253:デフォルトの名無しさん
08/10/19 20:24:19
>>252
はい。約55msecです。

#10msec ってのも会ったような気がしたけど

それより細かい値が必要なときは、パフォーマンスカウンタを使いましょう。

254:デフォルトの名無しさん
08/10/19 22:48:52
>>253
ありがとうございます
細かい分解能必要な時はソフトのタイマ使うのはちょっと怖いですね
VBのタイマとか、APIのタイマってハードのクロックを常に取得しているんですかね?
VBでタイミングの遅延を気にするのなんてナンセンスな気もしますが
他のプロセスの動作でタイマの遅延みたいのってあるのかな・・?
実際はソフトウェアのタイマは使わないので遅延があっても構わないんですが、、、

255:デフォルトの名無しさん
08/10/19 23:23:55
rtos使え

256:デフォルトの名無しさん
08/10/19 23:39:03
>>252
timeBeginPeriod/timeEndPeriodで1msになるようだ。
URLリンク(www.emit.jp)
URLリンク(d.hatena.ne.jp)

257:デフォルトの名無しさん
08/10/19 23:45:45
>>253
55msecとか10msecとか決まってないって。
VBのタイマーはWM_TIMERだから、メッセージループを最低1回回すだけの時間は確実に掛かる。
具体的な数値はパソコンの性能とかそのとき行ってる処理内容による。
そういういいかげんなタイマーだ。

258:デフォルトの名無しさん
08/10/20 00:44:51
>メッセージループを最低1回回すだけの時間は確実に掛かる。
そらそうだが今はそういう話じゃないだろw


259:244
08/10/20 02:58:58
>>249
どうも違うみたいですね汗
TextBoxはフォームに乗せるTextBoxです

>>250
>宣言時のNewは自作Class専用みたいな物
これで納得しました。

New出来ないClassは例のように
Controls.Addのように間接的にしかNewできないんですね。
確かにTextBoxクラスなどはこっちで勝手にNewできる必要はないですし、
できたとしてもどう初期化すればいいのか困る気もします。

260:デフォルトの名無しさん
08/10/21 23:34:16
マルチスレッドで組めないVB6で苦悩しているVB厨の私が
次に手をつけるべきお勧めの言語は何でしょうか?

261:デフォルトの名無しさん
08/10/21 23:44:08
もうやめろ

262:デフォルトの名無しさん
08/10/21 23:56:03
選択肢はC#ぐらいしかないでしょ?このスレでDelphiとかいったら喧嘩売ってるようなもんだし。

263:デフォルトの名無しさん
08/10/22 03:13:02
>>260
VB,NETかC#辺りをお勧め。
とは言え、それなりにプログラムを何度か組んでいるのであれば
言語仕様は解ってきてると思うんだがな。
VBが粗方解ってきたらC++を少し齧っておくと後で覚えようとする時に楽かな。

264:デフォルトの名無しさん
08/10/22 04:34:15
>>260
なでしこにでも手を出せば?

265:デフォルトの名無しさん
08/10/22 06:41:03
>>263
ブイビーコンマネットいいよね

266:デフォルトの名無しさん
08/10/22 20:21:04
コロンネットの方が優れている

267:260
08/10/22 23:11:45
レス有難う
大幅な仕様変更でシビアなタイミングが求められてきて
タイマで誤魔化しきれなくなってきました
2005のC#なら少し使ったことあるので、そっちに移行出来るよう勉強します
といっても納期は来週頭なんですが・・・ハハハ
orz

268:デフォルトの名無しさん
08/10/22 23:36:38
C#なら解決するとでも思ってるんだろうか

269:デフォルトの名無しさん
08/10/22 23:42:27
解決するんじゃないあるいは?

例えば通信とか、機器の制御なんかだとワーカースレッドが使えるかどうかは
雌雄を決する場合があるよ。

270:デフォルトの名無しさん
08/10/23 22:19:52
VB6でまともなマルチスレッドがやりたければ、別スレッドの処理をCで書いたDLL関数からCreateThreadするのが常道。
VBとのスレッド間通信もDLL関数でできる。
Cの知識がなければ無理だが、職業プログラマでまさかCが書けないなんてことはないよな?

271:デフォルトの名無しさん
08/10/24 00:16:50
などと意味不明なことを口走っており

272:デフォルトの名無しさん
08/10/24 08:57:00
奥多摩方面に逃走している模様です

273:デフォルトの名無しさん
08/10/24 11:17:11
>>270
時代はJavaだと言うに

274:デフォルトの名無しさん
08/10/24 11:18:35
軽く1000回以上は説得したけど無駄でした。


275:デフォルトの名無しさん
08/10/25 23:10:41
web情報を一行ずつテキストに取り込む方法教えてください

276:デフォルトの名無しさん
08/10/25 23:13:02
web情報って何ですか?

277:デフォルトの名無しさん
08/10/25 23:18:39
馬鹿は黙っててください

278:デフォルトの名無しさん
08/10/25 23:30:37
web情報ってのはブラウザーに表示されている、web内容の意味で使いました。

279:デフォルトの名無しさん
08/10/26 06:31:55
目覚まし時計を作ってます

現在
dim aa

zikoku = Time
aa = DateAdd("m", 10, zikoku)

Dateaddで正確に時刻が入りません、timeを直接引数にしたりもしましたがダメでした
固定された時間しか無理なのですか?


If aa = Time Then
MMControl1.Command = "play"

数時間前はaaに時間が入力できる時がありましたが
同じ時刻のはずなのにif文が反応しませんでした。

マウスをあててみるとaa = "5:30:00" time = 5:30:00とダブルコーテーションのくくりなかったのでこれかなとも思ってます

280:デフォルトの名無しさん
08/10/26 06:33:03
誰か解決法いただけませんか

281:デフォルトの名無しさん
08/10/26 06:38:30
時間を=で比べるな

282:デフォルトの名無しさん
08/10/26 06:48:51
いや、分を”m”にしてたこととスピーカのボリュームが0になったました。
すいません、自己解決しました

283:260
08/10/26 23:54:30
>>270
残念ながら職業プログラマじゃないのです
学生の時ちょこっと齧っただけです
会社に適任者がおらん為、仕事を投げられました
まともにプログラムの勉強したいです

284:デフォルトの名無しさん
08/10/27 00:18:20
そのレベルなら外注するか専任にさせてもらうか、また今後どういう方向性で
プログラムを扱っていくのか、そのコストは見合うのか、など、言語とかそういうこととは
違うレベルで調整が必要だと思う。頑張ってどうにかしたのはいいけど、評価が
下がるんじゃ嬉しくないっしょ?

285:デフォルトの名無しさん
08/10/27 00:43:15
自分も外注に投げたいんですよ本当は
だけど計画性0の会社で5秒後に仕様変更発生みたいな感じなので
社内で作れと・・・
使う機器が1号機ってせいもあるんですが
仕様が全く固まってないので、当面は私が作ることになりそうです
しかもそのソフトを100万で売るっつってるんだから始末に終えない・・・
はぁ・・・こんな仕事やりたくねぇ・・・

286:デフォルトの名無しさん
08/10/27 01:40:59
お前な、成功させようとするからおかしな方向に進んでいくんだよ
ばっさりと動かなくさせれば他の道ができていくんだ
やれることをやってからぼやけ

287:デフォルトの名無しさん
08/10/29 00:53:25
VB6.0でListView(詳細)についてですが、
ListView1.ListItems.Add
のように、行を追加した後で、
ListView1.ListItems(0).Text = "hoge"
のように、やってみると、「インデックスが範囲を超えています」
というエラーが出て、文字の値の変更ができません。
本当に初心者の質問ですみません。悩んでいます。

288:デフォルトの名無しさん
08/10/29 01:08:18
>>287
インデックスが1からってことはない?

289:デフォルトの名無しさん
08/10/29 01:17:01
>>288
できました!インデックスが1からでした!!
有難うございます。しょうもない(?)ところで2〜3時間食っていて悩んでました!

290:デフォルトの名無しさん
08/10/31 00:25:17
スロー再生や倍速ができるアプリを作りたいんですがまるでわかりません
なんかヒントいただけませんか

291:デフォルトの名無しさん
08/10/31 12:03:30
>>285
どこの田舎の零細企業?
会社はソフト産業とは無縁でしょ。
よくいるんだよね。
そういうこと言い出す馬鹿。


292:デフォルトの名無しさん
08/10/31 12:06:42
>>290
まずは自分で再生するソフトを作ってみような。
もちろんデータを読み込んで1コマ1コマ表示する処理を自分で書くんだ。
それが出来てから倍速とか考えるべき。


データフォーマットをいじって30fpsってのを60fpsに変更してWindowsMediaPlayerで再生すれば倍速になるけど
音声も調整しないといけなくて、しかも音程が狂うんじゃなかったっけな。


293:デフォルトの名無しさん
08/11/05 17:13:16
VBで何かシステム作って卒業研究にしたいんですがいいアイデアありませんかね?

294:デフォルトの名無しさん
08/11/05 17:18:16
あるよ!

295:デフォルトの名無しさん
08/11/05 21:00:07
>>294
教えてくれこのとおりだ
or2

296:デフォルトの名無しさん
08/11/05 23:09:39
なんで今からVB6なんだよ?そもそもライセンスが(ry

297:デフォルトの名無しさん
08/11/05 23:20:00
ライセンスがどうかしたのか?
サポートの話ならわかるが

298:293
08/11/06 02:55:47
すまんスレタイの超初心者ってのみてここで相談しちまった

299:デフォルトの名無しさん
08/11/06 22:02:06
フォームサイズの最大値が画面の解像度に依存しないようにする方法ってありますか?
15インチ幅の用紙に印刷する為に印刷内容を載せるフォームを作ったのですが
解像度が低いマシンだとフォームのサイズを小さくされてしまい、
印刷内容が途中で切れてしまいます。

300:デフォルトの名無しさん
08/11/07 00:34:34
VBscriptをつかってHTA上で実行した結果をHTMLへ動的に表示させたいのですがうまく出来ずに悩んでおります。一応VBの部分はちゃんと出来ていることは確認していますが表示が全くダメです。
どなたか教えて下さい。


Option Explicit

Dim objAccess
Dim objDB
Dim objRS
Set objAccess = CreateObject("Access.Application")
objAccess.Visible = True
objAccess.OpenCurrentDatabase("c:\happy\island.mdb")
Set objDB = objAccess.CurrentDb
Set objRS = objDB.OpenRecordset("SELECT COUNT(*) AS 件 FROM 住所録テーブル")
WScript.echo "件数=" & objRS("件数")
objRS.Close
Set objRS = Nothing
Set objDB = Nothing
Set objAccess = Nothing

件数をWScript.echoではなくinnerhtmlで表示したいです。
またSQLを("SELECT * FROM 住所録テーブル")にした場合データをレコードセットで抽出し必要なデータを表にして表示をしたいのですが・・・(これもinnerhtmlを使いたい)

301:デフォルトの名無しさん
08/11/07 00:43:19
>>300
URLリンク(www.google.co.jp)

302:デフォルトの名無しさん
08/11/07 23:12:41
パラメータって引数とは違うの?

303:デフォルトの名無しさん
08/11/07 23:34:17
時と場合による

304:デフォルトの名無しさん
08/11/07 23:39:49
サンクス

305:デフォルトの名無しさん
08/11/08 03:06:03
おならプー

306:デフォルトの名無しさん
08/11/09 12:19:50
>>299
ピクセル数が少ないところに全体を表示するなら
縮小しないと出せませぬ。
Imageコントロールはビットマップを縮小表示できます。
FormやPictureBoxにLineやPrintで書いている場合は、
書いたものをビットマップ(IPicture)として取得してImageに出すか、
こんなときのためのScaleWidthやScaleHeightなので、これらを常に
同じ値にして、Twip単位でLineやPrintを使いましょう。


307:デフォルトの名無しさん
08/11/12 11:09:45
Visual Basics 6 Portable めっけた
URLリンク(www.plunder.com)
makeもできるんですけど

308:デフォルトの名無しさん
08/11/12 14:27:23
>>307
ぷぷw

309:デフォルトの名無しさん
08/11/12 15:55:59
>>307
コメント欄が荒れすぎなのでウィルスかなんかかと思ったけど、結局これ何なの?

310:デフォルトの名無しさん
08/11/12 16:01:33
>>309
ウイルスに決まってんじゃんw

311:デフォルトの名無しさん
08/11/12 16:51:54
AVGは反応しなかった。
普通に起動した。
何かが起きたかどうかは知らん。

312:デフォルトの名無しさん
08/11/13 10:54:38
US評価版だろ。
USBメモリ起動に割ったやつ

313:デフォルトの名無しさん
08/11/14 16:07:09
ベーシックス

314:デフォルトの名無しさん
08/11/15 18:20:55
社内の情報システム部のようなところで勤務していますが、プログラマーではありません。

そんな私が最近、VB6のコードを調べる必要がありました。
.NETのC++やC#のコードとよく似てるように見えるのですが
VB6はオブジェクト指向ではないという理解で正しいでしょうか。

315:デフォルトの名無しさん
08/11/15 18:29:54
何を持ってオブジェクト指向と定義するかで変わってくるが
オブジェクト指向に必要な要素は持っている。
ただ一般的に社内システムレベルのソースがオブジェクト指向ではない可能性は高い。

316:デフォルトの名無しさん
08/11/15 19:02:54
VB6はオブジェクト指向の要素のうちカプセル化を不完全な形で持っているだけで、
継承、多態といった要素を持ちません。つまり>314の認識でほぼ合っていると思われます。

317:デフォルトの名無しさん
08/11/15 19:11:03
オブジェクト指向なんて考え方。Java使ったコボラーの
プログラムなどをオブジェクト指向などと呼びたくない。

318:デフォルトの名無しさん
08/11/15 19:18:37
委譲、包含、インターフェイスといった要素ではダメですか>OOP
一口でオブジェクト指向といっても、オブジェクト指向プログラミングの他に
オブジェクト指向デザイン、オブジェクト指向ユーザーインターフェイス、
オブジェクト指向開発などなどさまざまな概念がそろっております。

319:デフォルトの名無しさん
08/11/15 19:26:44
> 委譲、包含、インターフェイスといった要素ではダメですか>OOP

だめじゃね? 全部 VB6 でできる。

320:デフォルトの名無しさん
08/11/15 19:28:07
とりあえず、VB6は、Cの構造的プログラミング+モジュール分割 の書かれ方が多い。
が、フォームのコントローラ関係は、普通にOOだな。
あ、そうそう、下手にOOしてるVB6ひいちゃったら、しねるぞ。

321:デフォルトの名無しさん
08/11/15 20:10:59
OOの定義の問題は置くとしても愚問だね。
仮に結論が出たとして、それを>>314が知ったところでなんの意味があるんだろう。

322:314
08/11/15 21:13:10
質問の仕方が下手ですみません。
VB6の言語使用を習得すれば、「オブジェクト指向も知ってます」と
いえるのかどうかを知りたかったです。
オブジェクト指向についてはまた別に学習することを考えます。

しかし、オブジェクト指向とは何たるかについては、
本職ではない私にはちょっと難しそうですね・・・

とても参考になりました。
みなさん、ありがとうございました。

323:デフォルトの名無しさん
08/11/15 21:29:29
>>322

> VB6の言語使用を習得すれば、「オブジェクト指向も知ってます」と
> いえるのかどうかを知りたかったです。

いえません

324:デフォルトの名無しさん
08/11/15 21:59:27
いくらOOが考え方だとはいえ、さすがにVB6でOO知ってますは無理があるだろ・・・。
VB6なんて最悪言語の代名詞なのに・・・。

325:デフォルトの名無しさん
08/11/15 22:05:14
かといって、Javaも不完全なんだよなー

326:デフォルトの名無しさん
08/11/15 22:43:44
>322
実装重視であれこれつまみ食いするのが結局一番いいんじゃね?
アカデミックに勉強してたらそれだけで一生終わる

327:デフォルトの名無しさん
08/11/18 13:17:41
なるほどオブジェクト指向を学ぶにはVBが最高なんですねー

328:デフォルトの名無しさん
08/11/18 20:02:59
反面教師としてはいいんじゃね?

329:デフォルトの名無しさん
08/11/19 14:51:36
はじめまして
早速ですが、現在、VB6.0でAccess97のmdbを使うプログラムを作成しているのですが、
実行時エラー 2147023170(800706be)オートメーションエラーです。リモートプロシャジーコールに失敗しました。
のエラーが、稀に発生します。
プログラムの一部
Public wrkJet As Workspace
Public Rundb As Database
Set wrkJet = CreateWorkspace("", "admin", "", dbUseJet)
Set Rundb = wrkJet.OpenDatabase("c:\xxxxx\xxxxxx.mdb", False)
strSql = ""
strSql = "Select * From 送信状況マスタ;"
Set RecSet = Rundb.OpenRecordset(strSql, dbOpenDynaset)
Call CloseRecSet(RecSet)
----------------------------------------------------------------------------------------------------------------------------
Public Sub CloseRecSet(ByRef RecSet As Recordset)
On Error Resume Next
If Not RecSet Is Nothing Then
RecSet.Close <<<<<<<<<<<<<<<<<< この変でエラーになります。
Set RecSet = Nothing
End If
End Sub
ライブラリにMicrosoft DAO 3.6 Object Library を使用しています。
URLリンク(support.microsoft.com)
に、Access97は、DAO 3.5を推奨とあったのですが、上位互換で問題無いと思っていたのですが、
やはり、DAO 3.5を使用した方が良いのでしょうか?
ご指導をお願い致します。



330:デフォルトの名無しさん
08/11/19 15:30:25
>>329
3.6で出なくなるの? 試すのはわけないと思うが・・・

closeを別ルーチンにせず同一ルーチンにしてみるとか
試せることはいろいろあるよね。



331:329
08/11/19 16:05:05
説明が少なく申し訳ありません。
現在までの流れは、
@VB6.0 + DAO3.5 で新規開発 >>> スキャナやFAXソフトを使用でタッチパネルの反応が遅い現象発生
AEXEを分割して、ActiveX.EXEを導入 >>> タッチパネルの件は解決。mdbが頻繁に壊れる現象発生
BDAO3.6を導入 >>> mdb破損回数が軽減。エラーを吐いてEXEが落ちる現象発生
となっています。



332:デフォルトの名無しさん
08/11/19 19:01:55
On Error Resume Nextでごまかすのをやめたほうがいいと思うぞね

333:デフォルトの名無しさん
08/11/19 23:15:35
すんません。
VB2008で教えて下さい。

ソリューションエクスプローラーのタブに
「データソース」が表示されなくなっちゃったんだけど
どう設定すれば、また表示されますか?

334:デフォルトの名無しさん
08/11/19 23:16:58
>>333
スレタイ100回読み直せ

335:デフォルトの名無しさん
08/11/22 21:25:45
>>331
じゃあ次はADO導入だな

336:デフォルトの名無しさん
08/11/23 00:26:37
>331
ネットワークドライブにmdb置いて複数クライアントからアクセスしたりしてない?
あとリンクテーブルとか。

337:デフォルトの名無しさん
08/11/24 19:17:31
質問です。
VB6.0でParadoxと言うデータベースを開きたいのですが、
エラーが出て開きません。

Private Sub Form_Load()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset

cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\;Extended Properties=Paradox 5.x;Persist Security Info=False"
cn.Open
rs.Open "ABC", cn, adOpenDynamic, adLockOptimistic, adCmdTableDirect
rs.AddNew
rs.Close
cn.Close
End Sub

上記のコードを書いたんですが、rs.Openの行で
「外部テーブルのフォーマットが正しくありません。」
というエラーが出ます。

何が悪いのでしょうか?
よろしくお願いします。

338:デフォルトの名無しさん
08/11/24 20:22:21
Data Sourceがディレクトリに見えるけど、
そういう話ではない?

339:337
08/11/24 21:56:14
返信ありがとうございます。

cn.Open までは進んでいるし、ファイル名まで指定すると
「パスが間違っています」と言うエラーが出るので、
Data Sourceはこれであっていると思われます。



340:デフォルトの名無しさん
08/11/24 22:08:22
C:\で接続できる方が不思議じゃね?
「Paradox ConnectionString」で検索しる

341:デフォルトの名無しさん
08/11/24 23:32:52
> rs.Open "ABC", cn, adOpenDynamic, adLockOptimistic, adCmdTableDirect
これを
rs.Open "select * from ABC", cn
みたいにシンプルにしてみたら?

342:337
08/11/25 00:28:03
>>340
今回はC:\の直下にファイルをおいてあるので、これで
いいと思います。
Paradoxは1ファイル1テーブルなので、こうしないと
接続出来ません。

>>341
試してみましたが、やはり「外部テーブルのフォーマットが正しくありません。」
のエラーが出てしまいます。



343:デフォルトの名無しさん
08/11/25 08:50:02
断言できるのか?
ネットの事例じゃ軒並みファイルしていしてるぞ?

344:デフォルトの名無しさん
08/11/25 09:03:22
1ファイル1テーブルと ルート指定とは次元が違いすぎるわな
どのファイルかを選択するのかは超能力的なパワーが必要なのかも試練

345:329,331
08/11/25 16:56:58
回答有難う御座います。
返答が遅れた事をお詫び致します。
>>335
確かにADOは考えました。しかし、大きな修正はしないでとの営業の意向がありまして。
断念致しました。
>>336
ネットワークドライブは使用していません。
mdbのリンクは行っています。



346:デフォルトの名無しさん
08/11/25 17:08:56
>>340
そのワードでググったらTOPのページにこんな記載が。
>Please note that you should only specify the folder where the database resides.
>Not the database name itself.
URLリンク(www.connectionstrings.com)

>>337
Paradoxのバージョン5までしか読めないらしいけどそこは大丈夫?

347:デフォルトの名無しさん
08/11/25 17:24:07
>>346
へぇそうなんだ ためになるねぇ つかうことないだろうけど・・・


348:デフォルトの名無しさん
08/11/25 21:08:19
すみません、こちらで質問させて下さい
Excel VBAでwebページをIEオブジェクトで操作して、リンクをクリックさせると別窓でリンク先が表示されます
今後この別窓のIEオブジェクトを掴んでアクティブにして操作するにはどうすればいいのでしょうか?
独学文系のなけなしの知識にて、ウィンドウハンドルを取得すればいいと思い当たり
For Eachで各ウィンドウのそれの取得だけはできました(たぶん)が、使い方というかセオリーが全く分かりません…

Private Declare Function SetForegroundWindow Lib "user32.dll" (ByVal hWnd As Long)
Private Declare Function GetForegroundWindow Lib "user32.dll" () As Long
(中略)
hWnd = GetForegroundWindow
Set objShell = CreateObject("Shell.Application")
 For Each objIE In objShell.Windows
  Debug.Print objIE.hWnd
 Next
ウィンドウハンドルの値は取得できても、アクティブにしたい(操作したい)ウィンドウのそれだと判別する
方法が解らないので、どなたかご教示&ご解説お願いします

349:デフォルトの名無しさん
08/11/26 21:43:48
>>348
ウィンドウの区別は基本的にはタイトル(タイトルバー)の文字列で行う。
同じアプリを複数開いて同じファイルを開くとタイトルバーの文字列がまったく同じになってしまうが、
この場合はウィンドウを区別するのは、不可能ではないが非常に難しい。
俺の知識で答えられるのはここまで。

350:デフォルトの名無しさん
08/11/26 21:55:08
つか、LocationUrl でいいだろ? その InternetExplorer の hWnd で、
SetForegroundWindow() すれ。

って、それだけだとアクティブにはならんけど。

351:348
08/11/26 22:12:32
>>349
ご回答ありがとうございます!となると、思いつきでは

1).新しいIE窓を開く前に全部のIE窓のタイトル又はハンドルを取得
2)上記を配列にでも入れる
3)新しいIE窓が開かれる
4)2で取得した配列の添え字と比較、大きかったらダウト
 (同じ内容であってもこちらを弄るようにする)

4の配列の添え字の比較って出来るのかな?ド素人なもので…
って、窓数の増加だけならインデックスの上限値を見ればいいのか

…こんな感じで行けるのかな?
汎用化するにはIEのイベントを監視しなくちゃならなそうですが(;´Д`)
しかし用途を限定すれば何とかできる…と思いたいです

352:デフォルトの名無しさん
08/11/26 22:23:49

最初に聞いたExcelVBAスレの質問取り下げてないのでマルチだし
しかもExcel総合スレにまでリンク形式でマルチしてる

> ExcelやExcel VBAからは外れる質問とは承知しているのですが、
> 文系独学なうえ近くに教えを請える人も居ないので、
> 何方か親切な方、ご回答お願いします…(;´Д`)
>
> スレリンク(tech板:348番)

もう、この子は放置の方向で

353:デフォルトの名無しさん
08/11/26 22:29:05
>>352
取り下げも何も、誘導も無しにスレ違いの一言で一蹴されましたが…

ご回答下さいました方々には改めてお礼申し上げます

354:デフォルトの名無しさん
08/11/26 22:29:58
まだマルチが悪いとか思ってるウブな奴っているんだなw
俺的に言えばそんな奴こそいらん。

マルチが悪いって、それって他でもないお前が「人に感謝されたい威張りたがり屋」
なだけじゃんw
むしろそのお前の幼児性こそ問題だよ。

普通は掲示板のやり取りなんて答える方も自分のためにやってるわけで、
その上回答者に感謝されたいなんて図々しいこと思わねえよ。

355:デフォルトの名無しさん
08/11/27 01:17:14
ユーザー定義型の質問なのですが、

Public Type AAA
b as Long
c as Long
End Type

Public A(0 To 99) As AAA

といったようなのをモジュールに書き、フォーム1でA(0).b = 100と書いたとします
しかし、それをフォーム2で参照したところA(0).b = 0となっていました
配列化しなければ問題は起こらなかったのですが、原因は何なのでしょうか?

356:デフォルトの名無しさん
08/11/27 02:22:28
ふつうに動いてるが?

357:デフォルトの名無しさん
08/11/27 09:07:18
>>354
ボク、何か嫌なことでもあったの?


358:デフォルトの名無しさん
08/11/27 11:14:38
使用するosをXPからVistaに移行したところ、矢印の「dumst」部分で
インデックスが有効範囲にない、というエラーが出てしまいます。
アドバイスお願いします。

Private Sub Form_Load()
Const DataFile1 As String = "emadr.txt"
noTA = 0: noID = 0: noFA = 0: noSMTP = 0
fileNum = FreeFile
Open DataFile1 For Input As #fileNum
Do Until EOF(fileNum)
Line Input #fileNum, dummy
→ dumst = Split(dummy, ",")
If (dumst(0) = "TA") Then
noTA = noTA + 1
emTA(noTA) = dumst(1)
End If
Loop
Close #fileNum



359:デフォルトの名無しさん
08/11/27 18:13:33
>>356
普通にいけました…
消したと思っていた変数定義が消えておらず、変数がリセットされていただけでした
お騒がせしました

360:デフォルトの名無しさん
08/11/28 22:55:15
VB6でFTPでの転送結果(スループット等)を取得する関数とかあるのでしょうか?

361:デフォルトの名無しさん
08/11/28 23:27:26
あると思うほうが不思議だが?

362:デフォルトの名無しさん
08/11/28 23:32:46
絶対に無いと確信するほうが不思議

363:360
08/11/28 23:50:40
>>361-362

回答ありがとうございます。

やはり無いんですね・・・

ファイル転送量/時間で出そうと思います。

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

364:デフォルトの名無しさん
08/11/29 12:43:32
>362
んなこたぁない。FTP(クライアント)はVBの機能じゃないんだぜ?エスパーすればINet系関数だろうが、
あれは腐ってるからな。

365:デフォルトの名無しさん
08/11/29 14:59:29
VB用のコンポーネントにあったって不思議じゃない

366:デフォルトの名無しさん
08/11/29 17:01:16
コンポーネントなら関数とかいわんだろ。

367:デフォルトの名無しさん
08/11/29 18:20:45
お願いします。

構造体の入れ子を作りたいのですが、下記ではエラーになってしまいます。
Private Type ABC
i As Integer
j() As ABC
End Type

動的なツリー構造を作りたいのですが、可能でしょうか。


368:デフォルトの名無しさん
08/11/29 19:39:41
皆さんよろしくお願いします。

URLリンク(upp.dip.jp)
実は↑のような流れのスクリプトを組みたいと思っているのですが
if を使っての簡単なサンプルを書いていただけませんでしょうか?
本当に簡単なもので結構ですので・・・。

369:デフォルトの名無しさん
08/11/29 19:49:37
URLリンク(blogs.yahoo.co.jp)


370:デフォルトの名無しさん
08/11/29 19:49:50
>>368
何だこのフローチャート
もう少しルールに従って書けよw

371:デフォルトの名無しさん
08/11/29 19:53:05
フローチャートと呼んでいいのかww
まあ>368がんばれ

372:368
08/11/29 19:59:04
た、たしかに
酷いことになってますね・・・
すいません・・・

373:デフォルトの名無しさん
08/11/29 21:31:00
むしろ状態遷移図だな。

374:デフォルトの名無しさん
08/11/29 21:47:21
無限ループ

375:デフォルトの名無しさん
08/11/29 22:23:29
start:

if (isExist(a)) {
 goto start;
}

second:

if (isExist(b))
 goto start;
else {
 goto second;
}

376:デフォルトの名無しさん
08/11/29 23:22:22
VB4で作られたソフトウェアが動きません。
VB40032.dll、MCI32.ocx、grid32.ocx、comdlg32.ocxが必要なソフトなんですがXPでは入れても動かないんです。
「ファイルの読み込み中にエラーが発生しました」と出てしまいます・・・
MEでは正常に動きました。
上記4つのファイルはME、XP共に同じバージョンでした。

解決方法知っていたら教えて下さい。お願いします。

377:デフォルトの名無しさん
08/11/29 23:27:06
>>376
スレ違い

378:デフォルトの名無しさん
08/12/04 10:59:01
>>367
循環参照できないんですよねー。ケチケチしやがって。
可変長配列なら無限ループにならないから許可してほしいところです。
等価ではないがクラスモジュールでこう

(CLASS ABC)
Public I As Integer
Public J As Collection

あくまで等価ではないので使えなさそうですが。


379:デフォルトの名無しさん
08/12/07 08:21:48
>>367
すまん、どんな場合それを使うのか教えてくれ・・・

380:デフォルトの名無しさん
08/12/07 13:33:33
いわゆる「自己参照構造体」ってやつを作りたいんだろうけど、
だったらVBの場合ユーザー定義型じゃないくてクラスを使わないと駄目だね。

仮にユーザー定義型に循環参照(余談ながら、この用語の使い方は本来不適切だと
思うんだが、MSDNがそうなってるんだね)が可能だとしても、ユーザー定義型は
ドトネトでいう値型になるから無駄が多すぎる。

381:デフォルトの名無しさん
08/12/07 13:57:04
Private Type ABC
  i As Integer
  j() As ABC*
End Type

Dim udtABC As ABC
udtABC.j = &udtABC

夢のようだが、() は誰が実装すんのかね。
j() が自己参照にしては自己が配列であることは保障されてないし。
まぁ蛇足でしかないけど。

382:デフォルトの名無しさん
08/12/08 03:32:56
>>381
そこまでなくても…
循環参照はメモリ確保がどこまでも終わらないから禁止なんだろうけど、
JはREDIMするまで要素数ゼロだから、それは許されるようにしてくれていても
いいのにと思うんだが。
理解が違っていたらすまん。

早く寝なきゃ…

383:デフォルトの名無しさん
08/12/08 03:36:40
そういえば>>377
スレ違いだっけ?


384:デフォルトの名無しさん
08/12/11 23:35:25
30Hex + 30Hex + 30Hex + 30Hex + 30Hex + 33Hex + 30Hex + 30Hex +35Hex + 33Hex + 30Hex
+30Hex +31Hex + 03Hex = 37Hex
(+は排他的論理和、Hexは16進数)

とオムロンのマニュアルに書いてあるんですが
これをVBで計算すると37なんて数字が出てきません。

val(hex(30)) xor val(hex(30)) xor ・・・
とかじゃぁ 根本的に何か間違ってるのかな。。

385:デフォルトの名無しさん
08/12/11 23:41:40
間違っています

386:デフォルトの名無しさん
08/12/12 00:08:30
30h

387:デフォルトの名無しさん
08/12/12 00:13:39
&h30 xor &h30 xor …

388:デフォルトの名無しさん
08/12/12 00:14:36
00h+33h+00h+02h+00h+02h

389:デフォルトの名無しさん
08/12/12 00:17:42
00h+33h+00h+06h+00h+02h

390:デフォルトの名無しさん
08/12/12 00:43:38
Private Sub hoge()
  Const hexList As String _
    = "30, 30, 30, 30, 30, 33, 30, 30, 35, 33, 30, 30, 31, 03"

  Dim hexText As Variant
  Dim result As Integer
  result = 0
  For Each hexText In Split(hexList, ",")
    result = result Xor CInt("&h" & Trim(hexText))
  Next
  MsgBox (hex$(result))
End Sub

391:デフォルトの名無しさん
08/12/12 01:02:04
リストボックスには、複数の学生の名前、教科、点数と
その合計、平均などが表示されていて、
ボタンを押すと、ひとりひとりの学生の点数の合計と点数の表示をする
プログラムを作成したいのですが、教えて下さい。

392:デフォルトの名無しさん
08/12/12 01:13:35
どんな表示されてんだよ

393:デフォルトの名無しさん
08/12/12 01:28:50
ああ、悪い。

氏名  国語  英語 合計 平均

A   50   60  110  55
B   60   70  130  65
C   70   70  140  70

合計  180  210  
平均  60   70


こんな感じに表示されています。
ボタンの名前を「縦計 横計」と表示させ、
押すと、ひとりひとりの合計と平均を表示し、
最後に国語と英語の合計、ならびに平均を表示させたいのです。

394:デフォルトの名無しさん
08/12/12 01:31:18
>ああ、悪い。
なんだその態度は
氏ねばいいのに

395:デフォルトの名無しさん
08/12/12 01:33:29
select case


end select

396:デフォルトの名無しさん
08/12/12 01:58:37
悪い印象を与えてしまったのなら謝るよ。
日本語って難しいな…
例えば「ああ、スマソ」って言ったらまた印象は違うだろうしね。



397:デフォルトの名無しさん
08/12/12 02:04:34
ドシロウトはエクセルでも使っとけ

398:デフォルトの名無しさん
08/12/12 02:19:54
在日は国へ帰れ

399:デフォルトの名無しさん
08/12/12 06:28:24
>>396
他人に物を聞く態度じゃない
ここにいるのは親しい友人じゃない

400:デフォルトの名無しさん
08/12/12 06:34:12
で、何がわからんの? 足し算して割り算するだけだろ?

401:デフォルトの名無しさん
08/12/12 09:14:50
>>393
excelのVBAで充分
そこで人間性を磨いて来い 

402:デフォルトの名無しさん
08/12/12 22:03:09
>>391ですが、今日までの課題だったので
情報科の人に教えてもらい、無事解決しました。
基礎なのでさすがに学校で聞くのは気が引けました。



403:デフォルトの名無しさん
08/12/12 22:04:35
何も解決してないだろw

404:デフォルトの名無しさん
08/12/12 22:17:35
continueがない!!gotoで代用した。

405:デフォルトの名無しさん
08/12/13 01:30:41
>>404
お前はVBを知ってるのかと小一時間(ry

406:デフォルトの名無しさん
08/12/13 01:57:10
>>405
whileとかforのループのcontinueね。あんの?

407:デフォルトの名無しさん
08/12/13 02:44:13
Continue Forとかのこと?

408:デフォルトの名無しさん
08/12/13 03:31:59
日本        日本語でおk
英          please in Japnese
独          bitte auf japanisch
仏          veuillez dans le Japonais
イタリア     . prego nel giapponese
ポルトガル  . por favor no japones
スペイン    . por favor en japones
オランダ   ..Japanner gelieve in
スウェーデン behaga i japan
ギリシア    .παρακαλ? στα ιαπωνικ
ロシア      пожалуйста в японце
トルコ     . Japoncata tamam.
中国        請在日文
沖縄        やまとぅぐちっしいい
アイヌ      . sisam itak ani ukoitak yan.
大阪民国    日本語でおkや

409:デフォルトの名無しさん
08/12/13 09:34:26
>>408
日本語でおk


410:デフォルトの名無しさん
08/12/13 13:23:33
フイタ

411:デフォルトの名無しさん
08/12/13 13:25:30
>>405
いやおまえの方がVB知らなさ過ぎる。
.NET以後にVBはじめた情報弱者のにわかは消えろよ。


412:デフォルトの名無しさん
08/12/13 15:11:55
.NET以降にVBはじめたら情報弱者!うは

413:デフォルトの名無しさん
08/12/13 15:20:02
いやまあ、スレがスレだからね。
TPOを考えれば>>411のように罵倒されてもまあ仕方がない面はある。

414:デフォルトの名無しさん
08/12/13 15:24:00
このスレ時々スレタイの意味が理解できてないやつが混じるんだよな。


415:デフォルトの名無しさん
08/12/13 15:27:20
>>412
これは正解。普通C#選ぶ。あえてVBを選ぶ理由がない。

416:デフォルトの名無しさん
08/12/13 16:14:52
405 はVB6でgoto使うのはスパゲティの始まりだから
continueのためだけにgotoに逃げるんじゃねぇ!って事を
言いたかったんジャマイカ?

わからんけど。

417:デフォルトの名無しさん
08/12/13 17:21:49
でもifのネストが深くなるよりわかりやすいんじゃね。

418:デフォルトの名無しさん
08/12/17 09:43:20
日頃はVC使い。今更VB6始めたが、(VCもそうだが)仕事とかではない

VB6でdllexportするっていったら、基本的にはOCX化するのみ?
あと、簡潔に、通常の.objファイルをスタティックリンクする方法とかある?


ついでに参加
>>415
最近、VB6で書かれたマルウェアが増えてきて、ちょっと勉強しとこうと思ったのが、
いまさらVB6やろうと思ったきっかけ どう考えてもVCで書いた方が楽なような処理を
ごりごりVB6で書いてあるようで、もしかすると、難読化のつもりもあるのかもしれん
あと、IDE軽かったから、遊ぶ分にはいいかなとw

419:デフォルトの名無しさん
08/12/17 10:49:40
恥ずかしいにもほどがある

420:デフォルトの名無しさん
08/12/17 11:13:14
OCX化というよりActiveX(COM)化、EXE, DLL, OCX 形式のCOM。
ものすごい裏技でVBの関数を直接呼び出す方法もあるちゃあるが現実的ではない。

>最近、VB6で書かれたマルウェアが増えてきて
VBSなどで書かれてるその手のスクリプトをそのまま流用できるからじゃないのかね。
COMの扱いは簡単だしランタイムも大概入っている。


421:デフォルトの名無しさん
08/12/17 13:53:25
流れぶった切って申し訳ない。
vbは余り馴染みがなく今から記述することが出来るかどうかお教え頂きたい。

VBで作成したアプリに中国語を表示したい。
OSの設定ロケールは日本語。
vb6jp.dllはインストール済み。

OSのロケールが中国の場合は上手く中国語が表示出来ました。
日本ロケールだと文字化けしてしまいます。
SetThreadLocaleを使いロケールを変更してみましたが効果ありませんでした。
SetLocaleInfoは使い方が解りませんでした…。

ロケール変更にて文字化けを直すことは可能なのでしょうか?
お教え願います。

422:デフォルトの名無しさん
08/12/17 16:01:54
あきらめるか、.netにする。

423:デフォルトの名無しさん
08/12/17 20:05:59
>>421
中国語版のVB6.0で開発すればできるよ。

424:デフォルトの名無しさん
08/12/17 20:26:15
似たような質問
URLリンク(www.biz.kotaete-net.net)

425:デフォルトの名無しさん
08/12/18 01:44:45
>>422-424
回答ありがとうございます。
自分で調査したうえでそのような予感はしてましたが・・・。

特に424さんありがとうございました。
何故ダメなのか?という理由までわかったのですっきり諦められます。
別の方法で処理を回避、またはオペレーション誘導などで
問題を回避したいと思います。

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

426:デフォルトの名無しさん
08/12/18 12:13:42
VB6にての質問。
ファイル名が文字化けしているファイルを、コモンダイアログで指定して読み込みたいんだけど、
読み込んだ段階でパス名が変わってしまって、読み込みが出来ない。
解決策はありますか?

427:デフォルトの名無しさん
08/12/18 13:40:42
文字は化けてなどいない

428:デフォルトの名無しさん
08/12/18 20:41:41
リネームしたら

429:デフォルトの名無しさん
08/12/19 12:19:15
>>427
一般的に文字化けと言うと思う。

>>428
リネームしたら確かに読み込めるけど、そのままいける方法が無いかなとね。

430:デフォルトの名無しさん
08/12/19 13:23:25
>>429
何がどう化けたと思ってるんだ?

431:デフォルトの名無しさん
08/12/19 14:19:53
UNICODEのファイル名を読んで化けたとか言うオチじゃあるまいな

432:デフォルトの名無しさん
08/12/19 15:07:57
VB6でMDBからデータを引っ張りクリスタルレポートに出力しています。
最初はクリスタルレポート8.5を使っていたのですが使いにくいので前使っていた4.7を入れなおしました。
プリンターとプレビューの出力は上手く行くのですがテキストファイルやCSVの外部ファイルにエクスポートの際に
実行時エラー20540
エクスポート DLL がないかまたは古いです。
というエラーメッセージが出ます。
散々ぐぐりましたが解決策が見つかりません。
何かコンポーネートか参照をし忘れてるのでしょうか?

433:デフォルトの名無しさん
08/12/19 16:12:02
OSのクリーンインストールからやり直して、やっぱりエラーが出てから文句言え

434:デフォルトの名無しさん
08/12/19 18:40:38
リネームできるんだからよめるだろ

435:デフォルトの名無しさん
08/12/20 09:45:58
根本的に変な質問かもしれませんが教えて下さい。
VBで作られたEXEはデバッグというかコードを
読むことができるんでしょうか?
Visual Studio 6.0は入ってます。

正直なところ、EXEはアセンブラで読むしかない
みたいなイメージがあるんですが・・・

436:デフォルトの名無しさん
08/12/20 10:16:52
読めない

437:デフォルトの名無しさん
08/12/20 11:24:20
VB用の逆アセツールもあるけどね

438:デフォルトの名無しさん
08/12/20 11:29:25
>>435
URLリンク(www.watahiki.info)

439:デフォルトの名無しさん
08/12/20 19:20:56
Dynamic HTML Editing Control SDK を入手できるWebサイトは?
まあ無くても、もう持ってるから別に困りませんが。





440:デフォルトの名無しさん
08/12/21 08:23:22
>>439
MSDN

441:デフォルトの名無しさん
08/12/24 00:03:19
VB6.0でエクセルのAVERAGEみたいな計算できませんか?

| 10| 20| |=AVERAGE(A1:C1)


442:デフォルトの名無しさん
08/12/24 00:11:07
(10+20)/2

443:デフォルトの名無しさん
08/12/24 00:13:39
>>441
スレタイどおりで乙


444:デフォルトの名無しさん
08/12/24 01:27:17
(10+20)/3だろ

445:デフォルトの名無しさん
08/12/24 08:44:14
C1のnullをどう扱うかだな

446:441
08/12/24 10:56:17
>>445
そうなんです。nullをどう処理するかなんです。
IF 文でだらだら書くのがちょっと思い書きました。
>>444
10ではなく15の答えが欲しいのです。




次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4226日前に更新/174 KB
担当:undef