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

VBプログラマ質問スレ(6.0以前) Part46

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/02/03(金) 22:58:33
VisuarlStudio
06526502006/02/13(月) 18:40:58
>>651
一応IDとnameにはTextBoxの値を代入してます。
補足でtable1の内容は
AID Aname  ←フィールド名
1  suzuki
2 satou
3 takahasi
みたいな感じです。
  
0653デフォルトの名無しさん2006/02/13(月) 18:43:15
SQLインジェクションとかまっさら置いておいて、
もしかして "insert into table1(AID,Aname) values(" & ID & "," & name & ")" こう?
0654デフォルトの名無しさん2006/02/13(月) 19:49:22
windows xp
vb6 で ソケットを使うには
どのコントロールを使えばいいのでしょうか
0655デフォルトの名無しさん2006/02/13(月) 19:52:33
>>654
コントロール使わなければならないならwinsockを思いつく
0656デフォルトの名無しさん2006/02/13(月) 20:18:05
>>654
だからXPでVBは(ry
0657デフォルトの名無しさん2006/02/13(月) 20:31:58
Visual Studio 2005です
インストールする時に、勘違いをしてVB BASICを選択してしまいました
そしたら、リソースビューやクラスビューが右に表示されます
VC++スタイルの様に左側に配置したいのですが、どこを弄ったら
出来るでしょうか?

0658デフォルトの名無しさん2006/02/13(月) 20:35:39
>>657
ディスプレイを逆さにしろ
0659デフォルトの名無しさん2006/02/13(月) 21:07:05
>>657
ツール−オプションとかの何処かにあるのでは。
0660デフォルトの名無しさん2006/02/13(月) 21:11:38
Visual Studio 2005にVB6.0以前が入ってるとは知らなかった
0661デフォルトの名無しさん2006/02/13(月) 22:03:42
>>650
俺もそれやろうとして
そんなエラーメッセージでた事あるわ。
どうやって解決したかは、忘れたけどw
0662デフォルトの名無しさん2006/02/13(月) 23:00:48
 / ̄⌒⌒ヽ
 | / ̄ ̄ ̄ヽ 
 | |   /  \| 
 | |    ´ ` |   http://uploader.fam.cx/data/u1826.wmv
 (6    つ /    http://uploader.fam.cx/data/u1837.wmv
 |   / /⌒⌒ヽ   http://uploader.fam.cx/data/u1838.wmv
 |    \  ̄ ノ  
 |     / ̄
0663デフォルトの名無しさん2006/02/13(月) 23:20:53
基本ランタイム以外のコンポーネントを配布する場合、インストーラは必須でしょうか・・・?
0664デフォルトの名無しさん2006/02/14(火) 01:34:59
>>663

1.インストーラーを作る
2.Vector等で配布されてるランタイムパッケージを利用者に入れてもらう

の選択肢しかないな

2 を選択した場合は 配布されているバージョン・SPのコンポーネントで作らないと
DLLヘル起こすよ
0665デフォルトの名無しさん2006/02/14(火) 12:41:50
>>663
regsvr32で1個ずつ登録するとか。
0666デフォルトの名無しさん2006/02/14(火) 13:37:16
>>663
基本コンポーネント以外は、全部関数呼び出しのDLLだけにすればOKOK。
0667デフォルトの名無しさん2006/02/14(火) 13:50:24
なぜこうも的外れなレスが多いのか
0668デフォルトの名無しさん2006/02/14(火) 14:08:34
一番的外れ → >>667
0669デフォルトの名無しさん2006/02/14(火) 14:35:19
うわっ。さぶっw
0670デフォルトの名無しさん2006/02/14(火) 14:56:01
>>669
つカイロ
0671デフォルトの名無しさん2006/02/14(火) 15:13:33
ヤバスw
0672デフォルトの名無しさん2006/02/14(火) 15:14:02
言語障害ですね
0673デフォルトの名無しさん2006/02/14(火) 15:25:01
誰も質問しないね。
0674デフォルトの名無しさん2006/02/14(火) 15:34:21
質問しても誰も答えられないじゃんw
0675デフォルトの名無しさん2006/02/14(火) 15:38:03
任せとけ!
0676デフォルトの名無しさん2006/02/14(火) 15:39:24
VB初心者とかプログラミング初心者とかはまだ許せる

でも質問初心者とかは消えてなくなれって感じですね

【消えろ】質問初心者【カス】みたいな
0677デフォルトの名無しさん2006/02/14(火) 15:46:17
今やWEB上に幾らでも情報が転がってるから、どんな質問に対しても
「ググれ」で終われる様な気がする・・・
0678デフォルトの名無しさん2006/02/14(火) 15:53:15
まあまあ
.NETが出てけっこうたつのに新規でVB6を覚える初心者も少ないってことだろ
そもそも言語自体が手に入りにくい
0679デフォルトの名無しさん2006/02/14(火) 16:17:35
VB6かわいいよVB6
0680デフォルトの名無しさん2006/02/14(火) 17:21:19
シャチかわいいよシャチ
0681デフォルトの名無しさん2006/02/14(火) 19:51:05
>>680
シャチて?
0682デフォルトの名無しさん2006/02/14(火) 19:56:00
能登かわいいよ能登
0683デフォルトの名無しさん2006/02/14(火) 20:40:13
  ,j;;;;;j,. ---一、 `  ―--‐、_ l;;;;;;
 {;;;;;;ゝ T辷iフ i    f'辷jァ  !i;;;;; アンゴルモアちゃんや志摩子サマに
  ヾ;;;ハ    ノ       .::!lリ;;r゙ 中の人など居ない・・・
   `Z;i   〈.,_..,.      ノ;;;;;;;;>
   ,;ぇハ、 、_,.ー-、_',.    ,f゙: Y;;f.  そんな風に考えていた時期が
   ~''戈ヽ   `二´    r'´:::. `!   俺にもありました・・・
0684デフォルトの名無しさん2006/02/15(水) 09:56:20
UBoundとLBoundのどっちが配列の要素数最大値取得なんだか毎回分からなくなっちゃう鳥頭な俺なんだが、
覚えやすい方法ない? つーか何の頭文字なんだ?
0685デフォルトの名無しさん2006/02/15(水) 09:58:01
>>684
根本的に間違ってる
UBound(array,script):arrayのscript次元の上限
LBound(array,script):arrayのscript次元の下限

arrayのあるscript次元の要素数は
ubound(array,script)-lbound(array,script)+1で与えられる
0686デフォルトの名無しさん2006/02/15(水) 10:26:57
で、何の頭文字?
0687デフォルトの名無しさん2006/02/15(水) 10:28:44
upperとlowerじゃねーの?
0688デフォルトの名無しさん2006/02/15(水) 10:36:49
>>685
要素数"最大値"なんだから言い方は悪いが間違っちゃいねーだろ
要素インデックス最大値って言った方がまだいいけどな
ちなみに正確にはUBound(array [ ,script=1])ね

つーかLBound使う機会ほとんどねー
0689デフォルトの名無しさん2006/02/15(水) 12:10:35
>>687
thx、これで覚えられそうだ
0690デフォルトの名無しさん2006/02/15(水) 12:34:30
つうか思い当たらないのか?UとLで・・・。
0691デフォルトの名無しさん2006/02/15(水) 12:42:22
ヒント:俺はバカ
0692デフォルトの名無しさん2006/02/15(水) 14:47:19
>>691
それ解答。
0693デフォルトの名無しさん2006/02/15(水) 15:31:30
配列になっていない状態で、

a1="abc"
a2="def"
  ・
  ・
  ・
a100="ghi

上記のように100個の変数がある場合、
forやloopで1〜100を回してそれぞれの値を取る方法はないでしょうか?
0694デフォルトの名無しさん2006/02/15(水) 15:43:59
配列にしてください。
0695デフォルトの名無しさん2006/02/15(水) 15:59:20
>>693
ない。
0696デフォルトの名無しさん2006/02/15(水) 16:00:42
>>693
何が目的なのか良く分からないけど、それは無理です。
素直に配列で質問してくださいね
0697デフォルトの名無しさん2006/02/15(水) 16:21:33
>>693
そんな状態で100個の変数がある時点で異常。
0698デフォルトの名無しさん2006/02/15(水) 20:17:00
( ,_`ゝ′)キー
0699デフォルトの名無しさん2006/02/15(水) 20:37:26
ヘ:::::::::;;: -‐''''""( )1
 ゙、::::::::-‐''""" ̄"'i
  :V;;||:::: '~ニ=ッ, r='|
  i!f !:::::      ゙、i
  i!ゝ!::::     ‐/リ
  i::/:、 :::、  /''ii'V
  ̄ハ:::::\ "''il|バ''
 ショカツリョウ
 諸葛亮 曰く
  「目的と手段を履き違えてはいかんぞ」
0700デフォルトの名無しさん2006/02/15(水) 21:57:34
田村亮なら知っているが、諸葛亮って誰やねん
0701デフォルトの名無しさん2006/02/15(水) 22:15:02
もろくずりょうさん知らないなんて・・・。
0702デフォルトの名無しさん2006/02/16(木) 21:29:31
テキストファイルで指定した一行を削除(改行を含む)する方法はありますか?
0703デフォルトの名無しさん2006/02/16(木) 21:30:16
>>702
方法はあります
0704デフォルトの名無しさん2006/02/16(木) 21:36:55
>>702
ある。
0705デフォルトの名無しさん2006/02/16(木) 21:58:38
みんな断言するなんてすごいね。
俺は多分あるとしか言えない。
0706デフォルトの名無しさん2006/02/16(木) 21:56:22
環境:
WinXP SP2
VB6.0 SP6
InputMan Pro 6.5J

InputManのimTextで、IMEオフで入力すると正常ですが、
IMEオンにして入力すると、確定したときに文字がある部分のみ
灰色(フォーム背景色?)になり、文字が隠れてしまうという現象が起こります。
IMEからの入力だと全角、半角問わず発生します。

解決策ご存知の方いましたらご教授お願いします。
0707デフォルトの名無しさん2006/02/16(木) 22:06:00
あるわけねえだろw
ネタじゃなくあるって言ってるならファイル操作ってものが全くわかってないんだよw
0708デフォルトの名無しさん2006/02/16(木) 22:49:16
>>706
ここではなく、BOC、じゃなくてグレープシティのWEBサイトでFAQ検索した方がいいかも。
0709デフォルトの名無しさん2006/02/16(木) 22:57:50
>>703-705
教えてティーチャー
0710デフォルトの名無しさん2006/02/16(木) 23:00:41
環境:
WinXP SP2
VB6.0 SP6
InputMan Pro 6.5J

InputManのimTextで、IMEオフで入力すると正常ですが、
IMEオンにして入力すると、確定したときに文字がある部分のみ
灰色(フォーム背景色?)になり、文字が隠れてしまうという現象が起こります。
IMEからの入力だと全角、半角問わず発生します。

解決策ご存知の方いましたらご教授お願いします。
0711デフォルトの名無しさん2006/02/16(木) 23:16:30
>>710
VB6もInputMan65Jも、XPには対応してないよ。
だから、どんな不具合が起こっても仕方がないし、回避方法はない。
0712デフォルトの名無しさん2006/02/16(木) 23:17:23
>>709
ヒント:エディタ
0713デフォルトの名無しさん2006/02/16(木) 23:37:17
>>709
ヒント:split()
0714デフォルトの名無しさん2006/02/16(木) 23:54:02
>>702
あるも何もロジックの問題
0715デフォルトの名無しさん2006/02/17(金) 00:21:59
  _  ∩
( ゚∀゚)彡 ロジック!ロジック!
 ⊂彡
07167102006/02/17(金) 00:26:45
>>711
そうですか・・・。回答有難うございます。
0717デフォルトの名無しさん2006/02/17(金) 03:40:06
販売元に報告したらいいよ。
一応お客さんなんだしさ。なんらかの対応はしてくれるよ。
0718デフォルトの名無しさん2006/02/17(金) 06:34:04
>>707
行を削除する関数とかがあるかって話じゃなくて、
"方法"があるかって話なんだがw

組み込みにしたってAPIにしたって、関数一つで出来る事なんて限られてる。
それを組み合わせて必要な機能を実装していくのがプログラミングというものですよ。
そのレベルの話で「出来ない」とか言ってるなら、「お前の知識では出来ないだけ」だ。
0719デフォルトの名無しさん2006/02/17(金) 07:02:48
VBSのスレが見あたらないのでこちらで質問。
正規表現を使いたくて、ここ
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/vsobjRegExp.asp
を参考にスクリプト組んでみたのですが、
被検索文字列を " 2005/12/31" 、検索パターン文字列を "[0-9]^4" にして
RegExpオブジェクトを使っても、どこにも一致してくれません。
パターンを "\\d^4" にしても一致してくれません。
"僕は海が好きで、川が好きで、山も好きです。" から "(海|山)(.)好き" の
パターンを検索すると、これは正常に動作してくれます。
数字4桁を拾うにはどう記述したらいいですか?
0720デフォルトの名無しさん2006/02/17(金) 07:26:01
>>719
VBSはスレ違いじゃないけど、正規表現構文はスレ違い。
つーか、全然理解してないようだが、Pattern プロパティのところに正規表現の解説あるから
それを読んでも解らなかったら正規表現スレ行け。
まぁ、この件に関しては数量子の使い方が解ればいいだけだが、この機会にきちんと勉強しておけ。


あまりにも簡単すぎる質問だから、ここでも教えたがり君がスレ違いにも関わらず意気揚々と答え出すかもしれないけどな。
0721デフォルトの名無しさん2006/02/17(金) 08:20:33
まあ「場違いな」尊大な物言いをする奴は例外なく無能だから気にしない方がいいよw
スレ違いなら例外なく排除すべき、と単細胞に思い込むほど頭悪いんだから。

スレ違いだろうとなんだろうと、スレの主題に関連した話題で
多数の人間に利益があればそれを否定する理由はない、と理性的な人間なら
考えると俺は思うけどね。

例のパーティージョークだと「こういう場合は海に飛び込む規則になっております」
ってのはドイツ人に向かっていうセリフになってるが、自分の頭で物事考えられない
鳥頭ってのはドイツ人よりむしろ日本人にこそより当てはまるんだよね悲しいかな。
0722デフォルトの名無しさん2006/02/17(金) 09:57:44
で、長文書いた割には有用な情報は無し、とw
0723デフォルトの名無しさん2006/02/17(金) 09:58:06
で、長文書いた割には有用な情報は無し、とw
0724デフォルトの名無しさん2006/02/17(金) 10:14:24
このユーザーフォームのコードを実行したとき
textbox1に101以上の数値を入れたとき
commandbutton1のフォーカスしないのはナゼ?

ttp://venus.aez.jp/uploda/index.php?dlpas_id=22513
pass:test


0725デフォルトの名無しさん2006/02/17(金) 11:00:52
>>724
しらね
バグでもあるんじゃない?
0726デフォルトの名無しさん2006/02/17(金) 11:11:30
>>724
そんなのわざわざダウンロードして試してくれる奴なんか居る訳ないでしょ。
コピペだけで一切変更なしですぐ動いて動作を試せるコードを提示しろよ。
0727デフォルトの名無しさん2006/02/17(金) 14:42:34
>>721
言いたいことは分かるが、スルーするのも大人のたしなみだと思いねえ
0728デフォルトの名無しさん2006/02/17(金) 21:59:12
>>719
VBSの正規表現は、^4で4桁になるのか?
桁数は {なんとか} あたりで指定すると思うんだが?
0729デフォルトの名無しさん2006/02/17(金) 22:07:09
質問です。

VB6(SP5)の環境で、ADO6.0(SP4)を使ってACCESS2003(SP2)のmdbファイルを
読み書きするプログラムを作っています。

普通にSELECTしてレコードセットを作って〜という部分は、
意図した通りの動きをしているのですが、SELECT文中でLIKE演算子を
使った部分でレコードが無いという結果になっています。

VB中で使っているSQL文を、ACCESSのクエリに貼って動かしてみると、
きちんとレコードが選択されるので、何が問題なのか絞り込めずにいます。

ソースは以下のようになってます。

Private Sub foge()
    Dim cn as New ADODB.Connection
    Dim rs as New ADODB.Recordset
    Dim strSQL as String
    strSQL = "select A, B from T where C like 'X*' order by A"
    rs.Open strSQL, cn, adOpenKeyset, adLockReadOnly
    Do While (rs.EOF = False)
        ' この辺にレコードの処理
    Loop
    rs.Close
    Set rs = Nothing
    cn.Close
End Sub

動きとしては、レコードが選択されない→ループの中に入らない、という状態です。
07307292006/02/17(金) 22:33:26
書き忘れてますが、コネクションはこんな感じでrs.Openの前に入れてます。

    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
     "Data Source=" & p_mdbPath & p_fileName & ";"
0731デフォルトの名無しさん2006/02/17(金) 22:41:57
皆様はどういったインストーラをお使いになっているのでしょうか?
VB6 に付属しているディストリビューション ウィザードで事足りるものでしょうか。
0732デフォルトの名無しさん2006/02/17(金) 23:23:50
>>729
ADOの場合、Likeのワイルドカードって*じゃなかった様な気がする。
%だっけか。ヘルプ見てみて。
0733デフォルトの名無しさん2006/02/17(金) 23:40:01
>>731
ディストリビューションウィザードは自分で改造しないと使い物にならない
というのが正直なところ。
InstallShield Expressを使ったほうが良いです。
0734デフォルトの名無しさん2006/02/17(金) 23:44:29
Windows InstallerがMSからダウンロードできるじゃん。
もちろん正規のプロダクトIDが必要だけどねw
まさかヤフオクで入手したVL(w

っていうか、どうせ同じ今から新しく覚えるならVB6ってのは
果たしてよい選択なんだろうかね
07357292006/02/17(金) 23:45:45
>>732
うぉーありがとうございます!
一発で解決しました!
ACCESSで "%" が使えなかったので、ADOの仕様まで考慮してませんでした。

本当にありがとうございましたー
0736デフォルトの名無しさん2006/02/18(土) 00:19:31
>>735
例えMDBにアクセスしてても、ADOを使ってる訳で、
SQL文はSQLサーバの方の文法になります。
07377192006/02/18(土) 00:45:36
>>720>>721>>728
PCにインストールされてるMSDNの検索でヒットした正規表現の項目を
使ったのがまずかったようです。微妙に異なる部分に引っかかりました。
ご指摘の通り"{}"で試したところ正常にヒットしてくれました。
この際ちゃんと学習しておくことにします。
0738デフォルトの名無しさん2006/02/18(土) 01:04:51
Dim oHttp As Object
' オブジェクト変数に参照をセットします。
Set oHttp = CreateObject("MSXML2.XMLHTTP")
If (Err.Number <> 0) Then
Set oHttp = CreateObject("MSXML.XMLHTTPRequest")
End If
If oHttp Is Nothing Then
MsgBox "XMLHTTP オブジェクトを作成できませんでした。", vbCritical
Exit Sub
End If
With oHttp
.Open "GET", strURL, False
.setRequestHeader "If-Modified-Since", "Thu, 01 Jun 1970 00:00:00 GMT"
.Send
strHTML = StrConv(oHttp.responseBody, vbUnicode)
End With

このロジックでまれにstrHTMLにCR/LFだけが帰ってくる場合がありますが、
原因・対処方はありますか?
0739デフォルトの名無しさん2006/02/18(土) 07:24:28
捨ててリトライすれば?
0740デフォルトの名無しさん2006/02/18(土) 08:16:51
>>738
ネットワークなんて水物ですよ。
0741デフォルトの名無しさん2006/02/18(土) 15:06:58
>>735
Access、DAOから入ると良く躓く部分だな、そこは。懐かしい。
0742デフォルトの名無しさん2006/02/18(土) 15:26:25
>>738
As Object:CreateObject()よりできる限り事前バインディングのが良く寝?
誰か利点ナリ反論ドゾ
0743デフォルトの名無しさん2006/02/18(土) 15:40:49
>>742
Dim oHttp As XMLHTTP26
Set oHttp = CreateObject("MSXML2.XMLHTTP")
が一番良い。
0744デフォルトの名無しさん2006/02/18(土) 15:49:29
>>743
('A`)?
0745pp2006/02/19(日) 01:02:48
文字の置換で質問があります。たとえば、 "%・%" の%が半角欧文の場合は
半角の中グロにして全角の場合は、全角の中グロにするなど前後のテキストに
応じて変換したいのですが…。
ワイルドカードに任意の複数文字を設定するやり方とかあるのでしょうか?
0746デフォルトの名無しさん2006/02/19(日) 01:35:03
>>745
変換ルールがあるなら素直にfor-nextとmid$()で逐次変換してくのが良いと思うが・・・
0747pp2006/02/19(日) 01:58:10
あいがとうございます。初心者なので便利な関数が用意されているのかと思っていましたが…。
やっぱり自分で流れを作ります。
0748デフォルトの名無しさん2006/02/19(日) 04:33:32
VBSなのですがお願いいたします。

あるフォルダの中に複数のファイルがあります。
それらのファイルのタイムスタンプを見てある時刻以前のものを
削除したいといった処理なのですが

フォルダ:TEST

AAA.txt 2006/02/17 01:30
BBB.txt 2006/02/18 12:15
CCC.txt 2006/02/18 18:45
DDDtxt 2006/02/19 03:30
EEE.txt 2006/02/19 04:27

☆ 2006/02/19 03:30 以前のファイルを削除したい

入門WEBページを見ても検討がつきません。。
正直眠りたい。
肌が。。
0749デフォルトの名無しさん2006/02/19(日) 08:17:24
>>748
FSO使え。

wshの日本語版ヘルプファイルに詳しく載ってる。
MSDNと同じ内容だけど、wsh(vbs、jsなど)使うなら落としておくが吉。

1週間それを読んでもわからなかったらまた来なさい。
0750デフォルトの名無しさん2006/02/19(日) 08:37:30
>>748
VBだとこんな感じ。

Dim objFSO As FileSystemObject
Set objFSO = CreateObject("Scripting.FileSystemObject")

Dim objDir As Folder
Set objDir = objFSO.GetSpecialFolder(SystemFolder)

Dim objFile As File
For Each objFile In objDir.Files
DoEvents

If DateDiff("d", objFile.DateLastModified, "1999/01/01") > 0 Then
Debug.Print objFile.Name, objFile.DateLastModified
End If
Next

Set objDir = Nothing
Set objFSO = Nothing

VBSに DateDiff があるのかどうかは知らない。
0751デフォルトの名無しさん2006/02/19(日) 08:43:51
偶に簡単な質問が来ると、意気揚々とコードまで書いて答える子が居るねぇ
普段は答えられないことをごまかすためになんだかんだ理由付けて叩くくせに
■ このスレッドは過去ログ倉庫に格納されています