(*´д`*)アハァ… VB初心者質問スレ Part14
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGPart 2 http://piza.2ch.net/tech/kako/990/990793224.html
Part 3 http://piza2.2ch.net/tech/kako/1000/10005/1000523122.html
Part 4 http://pc.2ch.net/tech/kako/1006/10069/1006922992.html
Part 5 http://pc.2ch.net/tech/kako/1010/10106/1010624646.html
Part 6 http://pc.2ch.net/tech/kako/1013/10138/1013844542.html
Part 7 http://pc.2ch.net/tech/kako/1015/10158/1015836357.html
Part 8 http://pc.2ch.net/tech/kako/1018/10187/1018794901.html
Part 9 http://pc.2ch.net/tech/kako/1020/10208/1020830472.html
Part10 http://pc.2ch.net/tech/kako/1022/10221/1022127528.html
Part11 http://pc.2ch.net/tech/kako/1024/10243/1024380249.html
Part12 http://pc3.2ch.net/test/read.cgi/tech/1026642565/
Part13 http://pc3.2ch.net/test/read.cgi/tech/1029241786/l50
Win32 API関連スレ
Win32API 質問箱 Build4
http://pc.2ch.net/test/read.cgi/tech/1023361418/
心得
壱.質問する前に過去ログにも目を通してみる。
弐.質問する前に MSDN などで調べてみる。
参.VBScript もこのスレでOK。
四.インストーラーなどの質問もOK。
0153仮 ◆XnRNuqZ2
NGNG?? APIでつか?
>>152
GetWindowっす・・・GW_CHILDつけて。
他に同じようなAPIがあるのですか。そっちも調べてみます。
0154デフォルトの名無しさん
NGNG同じソースで、他のマシン(WindowsXP、Windows98)では取得できるし、
ローカルプリンタでは成功するので、プリンタの設定なのかもしれないのですが・・・
権限の設定も問題無いし、どこに気をつけるべきなんでしょうか?教えてください。
ちなみに、プリンタは正常に印刷できます。
0155デフォルトの名無しさん
NGNGGetWindowとGW_CHILD/GW_HWNDNEXTで回す方法は間違ってないと思う。
hWnd=GetWindow(hWnd親,GW_CHILD)
Do While hWnd <> 0
'ここで何か処理
hWnd=GetWindow(hWnd,GW_HWNDNEXT)
Loop
これで同じ階層のWindowは列挙できるはずだ。
問題あるとしたら、Windowの親子関係の理解かも。
ちゃんと再帰検索しないと全部出てこないよ。
Windowの階層構造は、
DesktopWindow/Form/Frameなどのコンテナ/各種コントロール/その上の部品
ってな感じになってるから、各階層で列挙したらその下も検索しないと。
クラス名だけじゃ判別できない、ってのも、Windowの階層構造から比較すれば
絞り込めるはず。そのうえで、Textの中身で判別するなどの方法をつかえば
何とかなるんじゃないか?
#次はGetWindowTextでテキストが取れないとゴネるに1票。
#SendMessageとWM_GETTEXT使ってね。
0156デフォルトの名無しさん
NGNG右詰やセンタリングではなく 均 等 にすることはできますか?
0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNG下のプログラムを動かしたところ
Delete部分で
実行時エラー'3251';オブジェクトまたはプロバイダは
要求された操作を実行できません
というエラーが出てしまいました。
DeleteはAccess2000では使えないのでしょうか?
Dim cnn_Test As ADODB.Connection
Dim rs_Sample As ADODB.Recordset
Dim str_SQL As String
Set cnn_Test = New ADODB.Connection
With cnn_Test
.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\Test\Test.mdb;"
End With
Set rs_Sample = New ADODB.Recordset
str_SQL = "select * from Sample"
rs_Sample.Open str_SQL, cnn_Test, adOpenStatic,adLockPessimistic
Do Until rs_Sample.EOF
rs_Sample.Delete
rs_Sample.MoveNext
Loop
0159デフォルトの名無しさん
NGNGSet rs_Sample = New ADODB.Recordset
str_SQL = "select * from Sample"
rs_Sample.Open str_SQL, cnn_Test, adOpenStatic,adLockPessimistic
Do Until rs_Sample.EOF
rs_Sample.Delete
rs_Sample.MoveNext
Loop
↓
cnn_Test.Execute "DELETE FROM Sample"
0160159
NGNGcnn_Test.Execute "TRUNCATE TABLE Sample"
試したこと無いけど
0161158
NGNGありがとうございます。
やっぱりExecuteするしかないんでしょうか?
recordsetのDeleteはなんで使えないんだろう?
0163219.96.219.219
NGNG/:. :..:..:::::::::::::::;;;:::;;;:::;:..:.:!,
i:.:::::;;;;;:::::-,:-'" ;:::::::i,
ノ:::" ヽ,.. ;:::::::i,
,i::::. ,....,,,_ ,;;;;;;::::,,,,,.;:::;i..,
ヽ;::,;:- ;:;;::,ー:;"/ / i"`:;":l,
;"!,:!, "''''"ノ: .ヽ---'" :l,,,/
!, ;!,"""~::.,....::,: .:l' 人生ってせつねーな
'l; ,//l,l,l,l,ll:: .;l
ヽ, "~---'" ,;/!ヽ,
ヽ,, /;;;" ヽ,,,,,,,
,,,,,,::---''''''''''''"!,i,"''''''''''"/ /::" "'--::;;,
/";, :::ヽ, l,!,/=l;"~,/ /: :;--''"'ヽ,
(;;;;,,ヾ, ;::: . l/,,,.l,/ ,/;' ' :',,..:' :ヽ
,ノ ::;;,,,::i, :, ::, i,./ / .: ,:'' _,,.,-'l;:.. ,i
,):::::.... "";, :,,:; / ,/.;;;;;, _,,;:-''''".,,;,:-"::... l
0165TTT ◆aXGRPkmk
NGNGむちゃくちゃ単純なやつです。
remoteport設定して
bindして
remotehostに送るだけ。
受信はイベントまちしてるだけ。
作ったときはうまくいったんですが
ディストリビューションウィザードで
他のPCにインストールして送信しようとすると
実行時エラー126がでてきます。
なぜでしょう。
0166デフォルトの名無しさん
NGNG過去ログを読むとSQL文でCOUNTをした方が良いと書いてあったので
次のようにしたのですが、肝心の結果が取得できません。
どこが悪いのでしょうか。助けてください。。。
Dim objtest As ADODB.Recordset
Dim strtest As String
Dim strSQL As String
Set objtest = New ADODB.Recordset
strSQL = "select COUNT(*) from spos.tst_meisai"
objtest.Open strSQL, cnn, adOpenKeyset, adLockOptimistic
strtest = objtest(0).Value
0167デフォルトの名無しさん
NGNGWordのはVBA
0169デフォルトの名無しさん
NGNG0170デフォルトの名無しさん
NGNG出来ますよ。
エクセルで作ったテトリスを見たことあります。
0171デフォルトの名無しさん
NGNG0172デフォルトの名無しさん
NGNGVBではどうやって記述したらいい?
0173デフォルトの名無しさん
NGNGVBならとかって気取ってかいてんじゃねーYO。
他の言語使えないくせに。
0174デフォルトの名無しさん
NGNGchr$とか
0175デフォルトの名無しさん
NGNGこんな感じ?
"ABC"+Chr(13)+Chr(10)
Chr(13) = キャリッジリターン
Chr(10) = ラインフィード
0176デフォルトの名無しさん
NGNG逆にリストビュー内の文字列を取得する方法を教えてください。
インターネットで探してもヘルプ見ても書店に行ってもやり方が
書いてないんです・・・。単純に表示されている文字列を取得したい
だけなのですが。
私の探し方がいけないのでしょうか?
0178デフォルトの名無しさん
NGNG22ってなんだろう?
・キャリッジ リターンとライン フィードの組み合わせ。
vbCrLf = Chr(13) & Chr(10)
vbには定数が定義されているよ。
0179デフォルトの名無しさん
NGNGlvw.ListItems(index).Text
lvw.ListItems(index).ListSubItems(index).Text
0180デフォルトの名無しさん
NGNGVBからエクセルをShell関数にて起動しているのですが、
起動するまでの約1〜2秒間の間、
普通にエクセルを起動(エクセルアイコンダブルクリック、スタートメニューから起動等)
できないようにしたいのですが、可能でしょうか?
というのは、Shellから起動する前後にエクセルのレジストリを触っているからです。
どなたかご教授願います。
よろしくお願いします。
0181デフォルトの名無しさん
NGNG ̄ ̄ ̄ ̄-----________ \ | / __-- ̄
--------------------------------- 。>>173 ------------
_______----------------- ̄ ̄ ̄ ̄ ̄  ̄ ̄----_______
∧ ∧ / / | \ \
( ) / / | \ \
_ / )/ / | \ \
ぅ/ / // / | \
ノ ,/ /' / | \
_____ ,./ // | / | \
(_____二二二二) ノ ( (. | / |
^^^' ヽ, | | / |
| | |
,,/ ,ノ ∧、∧、∧、∧、∧、∧、∧、∧、∧
/ /| <
/ / | < 宇宙のかなたまでとんでけや
,/ / | <、
\__つ ) ∨^∨^∨^∨^∨^∨^∨^∨^∨^∨
0182デフォルトの名無しさん
NGNGVBからノーマル表示されているDOS窓を最小化したいのですが、どのようにしたらいいのか分かりません。
どなたか教えていただけませんか??よろしくお願い致します。
0183デフォルトの名無しさん
NGNGというのが意味不明なんですが
shellでbatファイル動かしてるという意味ならshellの第二引数でウィンドウの大きさ指定してくれ
違ったらスマソ
0184デフォルトの名無しさん
NGNGVBから、ノーマル表示されているDOS窓
であろう
0185仮 ◆ZKkSDatc
NGNGうぅ、どうもです。
>問題あるとしたら、Windowの親子関係の理解かも
これが大的中でございますです。
ComboBoxの内側のTextがComboBoxの子Windowになるとは知りませんでした。
なんとなく全部同じ階層なのかと勘違いしてたわけです。
お陰でComboBoxハッケソ→その子を検索→目的のTextBoxハッケソ
と、トントン拍子です。
ありがとうございました。(実は「テキストが取れない」ってのも調べようとしてましたw)
0186デフォルトの名無しさん
NGNGint main(int argc, char* argv[])
{
HWND hwnd;
WINDOWPLACEMENT windowplacement;
BOOL b;
hwnd = FindWindow(NULL, "c:\\winnt\\system32\\cmd.exe");
//hwnd = FindWindow("ConsoleWindowClass", NULL);
printf("hwnd=%d\n", hwnd);
GetWindowPlacement(hwnd, &windowplacement);
windowplacement.showCmd = SW_MINIMIZE;
b = SetWindowPlacement(hwnd, &windowplacement);
return 0;
}
0187デフォルトの名無しさん
NGNGSQL2000だけど、そのコードで動いたよ。
数値で帰ってくるのに、文字列に入れているからかな。
でもちゃんと自動的に変換されたよ。
あとはcount(*) as cntとか名前を付けて、
Debug.Print objtest("cnt").Value してみるとか。
0188仮 ◆ZKkSDatc
NGNG他のツールではちゃんと変更できるんだけどなぁ。
もういいやヽ(`Д´)ノネル!!
0189デフォルトの名無しさん
NGNGだからWM_SETTEXT使えってば(w
0190仮 ◆ZKkSDatc
NGNG0191仮 ◆ZKkSDatc
NGNGモレガヴァカデシタ
イッテキマ
0192初心質問
NGNGモジュール初期起動時に、PublicのDAO3.5_ObjectでCreateworkspace,OpenDataBaseを作成して
プログラム内でRecordsetを作成して参照・更新・追加などをしています。
複数のテーブルにレコード追加するときに、 Begintrans〜commitTransを使おうとしたら
追加時、Recordset.addnewのときにオブジェクトが無効とエラーになってしまいます。
直前のset Recordset = DataBase.OpenRecordset("select * from tbl where id=id ",dbsopendynaset)
は実行できます。
なぜなんでしょうか?
ちなみにBegintrans実行直前にCreateworkspace,OpenDataBaseを再作成(set〜)を行うとエラーになりません。
またBegintrans〜commitTransを使用しなければ、エラーは起きません。
誰か助けていただきたく。
0193デフォルトの名無しさん
NGNGツールバーのボタンにTBSTYLE_AUTOSIZEをセットしようとしてるんですけど、
全然上手く行きません。いい方法ありませんかね?ハァ・・・
そもそもツールバーコントロールのボタンのIDは101から始まってんだろーか。
Private Const WM_USER As Long = &H400
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Const TBSTYLE_BUTTON = &H0
Private Const TB_GETBUTTONINFOA As Long = (WM_USER + 65)
Private Const TB_SETBUTTONINFOA As Long = (WM_USER + 66)
Private Const TB_GETBUTTONINFO As Long = TB_GETBUTTONINFOA
Private Const TB_SETBUTTONINFO As Long = TB_SETBUTTONINFOA
Private Type TBBUTTONINFO
cbSize As Long : dwMask As Long : idCommand As Long : iImage As Long
fsState As Byte : fsStyle As Byte : cx As Long : lParam As Long : pszText As String : cchText As Integer
End Type
Private Const TBSTYLE_AUTOSIZE As Long = &H10
Private Const TBIF_STYLE As Long = &H8
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Sub Form_Load()
Dim tbInfo As TBBUTTONINFO
Dim lnghWnd As Long,lngRet As Long
lnghWnd = FindWindowEx(Toolbar1.hwnd, 0&, "ToolbarWindow32", vbNullString)
tbInfo.cbSize = Len(tbInfo) : tbInfo.dwMask = TBIF_STYLE
lngRet = SendMessage(lnghWnd, TB_GETBUTTONINFO, 101&, tbInfo)
tbInfo.fsStyle = TBSTYLE_BUTTON Or TBSTYLE_AUTOSIZE
lngRet = SendMessage(lnghWnd, TB_SETBUTTONINFO, 101&, tbInfo)
Toolbar1.Refresh
End Sub
0194デフォルトの名無しさん
NGNGエラーが出るプロシージャのコード出してみ
0195デフォルトの名無しさん
NGNG動きましたか。。。
教えていただいた方法を試してみます。
0196デフォルトの名無しさん
NGNGDim oraDynaset As Object
Dim strSQL As String
Dim oraCnt As Long
Const ORADYN_READONLY = &H4&
strSQL = "SELECT * FROM TABLE"
Set oraDynaset = gOraDataBase.CreateDynaset(strSQL, ORADYN_READONLY)
oraCnt = oraDynaset.RecordCount
※gOraDataBaseは、オープンしたDBね
0197デフォルトの名無しさん
NGNGCで言うところのstrstrみたいな。
0198デフォルトの名無しさん
NGNGまずはstrstrがどういう関数か調べてこい。
0199197
NGNGstrstrは全然違う関数すね。
0200197
NGNGやってみます
0201?
NGNGOracleの場合はFieldsコレクションを使わないとだめだよ。
objtest.Fields(0).Value でうまくいくと思う。
>>196
ADOとOO4Oの区別をつけましょう。
それと行数取得のために全表問い合わせなんて事はやめましょう。
0202197
NGNGタブ記号を"'"なりに変換するほうがいいですかね?
Dim strValue() As String
Dim aaa As String
aaa = "aa bbb cc"
strValue = Split(aaa, Chr$(9))
0203196
NGNG>それと行数取得のために全表問い合わせなんて事はやめましょう。
ここにSQLを代入するという、例のつもりだったんだけどね。
0208?
NGNGそこにカウントをとるSQLを入れるとレコード行数は1になるよ。
会社の先輩に教わってるんだろうけど、ちゃんと自分で勉強したほうがいいよ。
>>205
クク・・騙りはよせヨ
0210デフォルトの名無しさん
NGNG作成していたんですが、実行すると「1つ以上の必要なパラメータの
値が設定されていません」と表示されます。
デバックをクリックすると
(変数名).Open strSQL, (変数名), adOpenDynamic, adLockOptimistic
ここが黄色で指摘されます。どういうことなのでしょうか?
神様おながいします。MSDNのCD持ってないのもで・・・
0212デフォルトの名無しさん
NGNGAccessでTransactionがうまくいかんのは俺もあった。
結局こまめにCommitする事にしました。
0213デフォルトの名無しさん
NGNGありがとうございます。
SQL文ですか・・・。具体的にどう間違っているかわからないので
調べてみたいと思います
0214デフォルトの名無しさん
NGNG0216デフォルトの名無しさん
NGNGACCESSの方でデータを格納したいレコードの部分の名前にテキスト型なら
うまくいくんですが、整数型にすると「型が一致しないと」
表示されてエラーになってしまいます・・・
0217デフォルトの名無しさん
NGNG/⌒彡
/⌒\ /冫、 )
/ ∧ `./⌒ i ` /ゝ
/ ノ > ( < ( \\
 ̄~⌒ ̄ ̄~ \`つ ⌒ _)
 ̄ ̄ フーン
0218?
NGNGえー、正直言ってることがわからないですが。
Where句に指定した値が文字列型なら・・・という事でしょうか?
型が一致しないと出てるのならそれが原因でしょう。
具体的に言うと、整数型なら"'"をはずしてやらなければなりません。
Oracleならはずさなくても平気なんだけどね。
0219デフォルトの名無しさん
NGNGアンタバリバリにできるナ
0220216
NGNGありがとうございます。
確かにその通りでした。"'"だと文字扱いになるんですね・・・。
おかげで解決することができました
0221デフォルトの名無しさん
NGNG0222デフォルトの名無しさん
NGNG0223?
NGNGそんなことないですよ。まだまだ未熟者です・・・でもありがとう!
>>220
「1つ以上の必要なパラメータの値が設定されていません」
は解決したんですよね?原因がなんだったのか知りたい。
0224Prime
NGNG技術教師が私に授業で作る例題のプログラムを作れといってきました。
自分で作れないのに技術の教師…時代は変わったのか
0226デフォルトの名無しさん
NGNG家庭科(技術?)で。
高校でBASIC習うんだし。数Aね。
0227216
NGNGstrSQL = "Select * From (名前) " & _
"Where (名前) = '" & (TextBoxの名前).text & "'" & _
"AND (名前) = '" & (TextBoxの名前)..text & "'" & _
"AND (名前) = '" & (TextBoxの名前)..text & "'"
これでやって悩んでいました・・・。"'"をはずして解決しました
0228デフォルトの名無しさん
NGNGTextBoxに 「'」とか「"」とか打つとウマーだし。
0229デフォルトの名無しさん
NGNGというように確保した領域って
MyRec() = Nothing
で領域開放できるんでしたっけ?
0230デフォルトの名無しさん
NGNG好みだけど、↓こー書いた方が見やすいんでない。
strSQL=""
strSQL = strSQL & "SELECT 〜 "
strSQL = strSQL & "WHERE 〜 "
strSQL = strSQL & "AND 〜 "
0231229
NGNGSet MyRec() = Nothing
0232デフォルトの名無しさん
NGNGそれ動いたか?
0234229
NGNGVB側で勝手に開放してくれるのかな?
調べてみます
0235216
NGNGありがとうございます。参考にさせていただきます
0236デフォルトの名無しさん
NGNG明示的に開放したいなら Erase ステートメントで出来ますよ。
0238デフォルトの名無しさん
NGNGhttpプロトコルでファイルをダウンロードしようとしていますが
うまくいきません。
(ステートは12の完了までいくけど、ファイルがどこにも保存されない)
・プログラムのどこか間違っているのでしょうか?
・「GET」コマンドで取得したファイルはどこに格納されるのでしょうか?
(全フォルダ検索しましたが指定したファイル名はありませんでした)
With Inet1
.URL = "https://aa/aa/bb.lzh"
.UserName = "12345"
.Password = "12345"
.Execute , "GET"
Do While .StillExecuting = True
DoEvents
Loop
End With
0239デフォルトの名無しさん
NGNGそれって自動的にファイルになるのか?
じゃないと保存先のパスとファイル名が設定できないとおかしいと思われ。
0240デフォルトの名無しさん
NGNGそれだけぢゃダメ
Inet1のStateChangedイベントでStateが12になったらGetChunkする。
で、GetChunkしたバイナリ文字列をファイルに書き出していく。
コード書きたいけど面倒+ちょっとうろ覚えw
ぐぐればいくらでもサンプル出てくるけど?
0241238
NGNGありがとうございます。
GetChunk の方法なんですが、
ヘルプにあったサンプルで、
ファイルをオープンしていましたが、
どこのファイルをオープンすればいいんでしょうか?
(ソースの txOperation の部分)
よろしくお願いします
Private Sub Inet1_StateChanged(ByVal State As Integer)
Dim vtData As Variant ' Data 変数
Select Case State
' ... ほかの条件のコードは省略されています。
Case icResponseCompleted ' 12
' 出力先のファイルを開きます。
Open txtOperation For Binary Access _ ←???
Write As #intFile
' 最初のデータを読み取ります。注意: バイナリ ファイルを読み取る
' 場合はバイト (Byte) 配列 (icByteArray) を指定します。
vtData = Inet1.GetChunk(1024, icString)
以下 略
0242デフォルトの名無しさん
NGNGどうするんですか?
0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNGどこのファイルって、
お前が保存したいそのファイルだよ!
>httpプロトコルでファイルをダウンロードしようとしていますが
そのダウンロード先だよ!
0245デフォルトの名無しさん
NGNGやっぱ.NETとか言ってるだけあってWeb型のアプリの開発は得意なのか?
ん〜全部データはもってるんだがインスコが面倒でなぁ。
0246デフォルトの名無しさん
NGNGVBの仕事そのものがあんまりないので、
旧VBもVB.NETも趣味でやってるよ。
0247デフォルトの名無しさん
NGNG.net の環境が入ったWindowsが出る頃を勉強のメドにしてる人も多そう。
現状、VB6 アプリを.net に移行するって話は、まだ殆ど聞かないね。
Webは全く知らんけど。
0248デフォルトの名無しさん
NGNGPublic Sub Draw()
i=i+1
k=k+1
kekka(i)=k
Text1.text=Text1.text & Kekka(i)
End Sub
とやって、
Private Sub Command1_Click()
Draw
End Sub
とやったのですが、テキストボックスには11111年かなりません。12345となるはずですが・・
0249デフォルトの名無しさん
NGNG>やっぱ.NETとか言ってるだけあってWeb型のアプリの開発は得意なのか?
ぼちぼち。
>ん〜全部データはもってるんだがインスコが面倒でなぁ。
犯罪者の方でしか?
0250デフォルトの名無しさん
NGNGそういうのって、場所にもよるべさ。>量
0251デフォルトの名無しさん
NGNG君、日本語やばいぞ。
Procedure内で宣言した変数ってのは基本的に、Procedure を抜けると、内容は消えるのよ。
嫌なら、Dim の代わりにStatic って書きな。
値が型の上限を越えないように注意ね。
0252デフォルトの名無しさん
NGNGへぇVB6よりはそっち系の機能充実ってとこ?
ちなみに犯罪者じゃねぇっ。学校側で買ったのを拝借しただけで。
■ このスレッドは過去ログ倉庫に格納されています