[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 07/26 10:23 / Filesize : 199 KB / Number-of Response : 675
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

VB.NET質問スレ(Part30)



1 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 10:00:19 ]
前スレ

VB.NET質問スレ(Part29)
pc12.2ch.net/test/read.cgi/tech/1235206416/l50

テンプレは>>2

151 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 17:58:49 ]
>>149
MIDIを使用する(VB.Net)
homepage1.nifty.com/MADIA/vb/vb_bbs/200411/200411_04110004.html

152 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 18:14:57 ]
>>151 じゃダメだわ、スマソ

153 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 18:19:37 ]
ReportViewerコントロール用のレポートファイル( .rdlc )のデザイナでの作成方法について色々解説してあるページとか参考書ってないでしょうか。

レポートウィザードで作れるピボットテーブルをベースに色々と追加したい要素があるんですが、どうやりゃ良いのかいまいちわからない。
一応、やりたいことは今年度のピボットテーブルに前年度の合計とか、前年度比とかの行とか列を追加することです。

154 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 22:14:15 ]
MIDIってどうやって音出せばいいのか知らんかったけど、これ面白いね。
勉強になるわぁ。

155 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 22:59:08 ]
>>149
MIDIプログラミング
eternalwindows.jp/winmm/midi/midi01.html
Windows MIDI プログラム入門
ourworld.compuserve.com/homepages/Satsuki_Kojima/winprog.htm
MIDIを鳴らす
www13.plala.or.jp/kymats/study/MULTIMEDIA/midiOutShortMsg.html
詳説MIDI規格
www.pluto.dti.ne.jp/~daiki/Midi/Midi.html
自作楽器「MIDIテルミン」の製作:CodeZine:
codezine.jp/article/detail/172
MIDI音源の利用
www2.pf-x.net/~shink/api_midi.html
VB.NET でMIDIOUTをOPENするには?
hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200308/03080039.txt
16進数、8進数、2進数の文字列を整数に変換する
dobon.net/vb/dotnet/programing/converthex.html


156 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 23:44:12 ]
コールバック関数による出力デバイスの状態監視
maglog.jp/midi/Article.html&type=1&subtype=194372&page=1
MSDN midiOutOpen
msdn.microsoft.com/ja-jp/library/cc410558.aspx

デバイスは送られたデータの再生が終わるとコールバック関数にMM_WOM_DONEメッセージ(WOM_DONE)を送ります。


157 名前:デフォルトの名無しさん [2009/06/14(日) 16:50:16 ]
ちょっと質問です
text1、text2、text3というチェックボックスがあったとして、

For i = 1 To 3
If text[i].Checked = False Then
MsgBox("エラー:text" & i)
End If
Next

という風にしたいのですがtext1の1を動的に変えたい場合はどうすればいいのでしょうか?


158 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 16:55:46 ]
配列に入れとけ

159 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 19:48:26 ]
2002や2003じゃ駄目だがControlsを使うという手もあるかな



160 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 09:24:22 ]
VB.NETでマルチコア対応のコードって書けます?

161 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 13:56:30 ]
スレッド使えるだろ

162 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 14:36:14 ]
意味分かってないと思われ

163 名前:デフォルトの名無しさん [2009/06/16(火) 12:21:22 ]
SQLを実行して、そのデータの表示方法を変えて出力したいのですが、どうすれば良いかわかりません。

164 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 12:29:34 ]
0から全部説明しろってか。
せめて SQLDataAdapter や DataSet の使い方くらい入門書で勉強しなさい。

165 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 20:09:41 ]
>>163
そのまま何回やっても勝手に表示方法が変わったりはしません。
どうすれば良いかと言うと、表示方法を変えるプログラムを作るしかないでしょう。

>>164
たぶんこのレベルの話かと

166 名前:デフォルトの名無しさん [2009/06/16(火) 22:45:40 ]
皆さんにお聴きしたいのですが、よろしいでしょうか。
今、VC6.0とVB2005でイベント処理を書こうとしています。
以下の通り書いているのですが、VB側では一向にハンドルが返って来ず
0のままです。

何かおかしい所は有りますでしょうか。是非お知恵をお貸しください。。。

VC6.0でイベント作成

HANDLE hEvent;
hEvent = CreateEvent(NULL, TRUE, FALSE, "EVENT000");


VB2005でイベントオープン

宣言

<DllImport("kernel32.dll")> _
Public Function OpenEvent(ByVal dwDesiredAcess As UInt32, _
ByVal bInheritHandle As Boolean, ByVal lpName As String) As IntPtr
End Function

呼出

Dim pt As IntPtr
pt = OpenEvent(0, False, "EVENT000")



167 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 23:53:21 ]
どこにPInvoke使う必要がある。


168 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 01:11:12 ]
LastError くらい確認しろよ

169 名前:166 [2009/06/17(水) 01:51:36 ]
Daclareでやってみても結果は同じでした…。

LastErrorの値は、確認してみます。中途半端ですみません。


これに限らず、VB2005でAPIを使用する時に文字列を渡すと動作がおかしくなる傾向があるんですよね…。

うまく文字列が渡っていないのか、あるいは文字列を渡す時(Daclare等)の設定の他に、プロジェクト単位での設定等が必要になるのでしょうか?

結局、全てのAPIはVB2005で使用可能と考えて良いのでしょうか?

真剣に悩んでおります。。。
もう少しご教授ください。お願いします。



170 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 01:53:28 ]
つーかなー。A か W かも明示的に指定してないし、マーシャリングも指定してないし、
適当に呼んどいて何言ってんだか、って感じだな。

171 名前:162 [2009/06/17(水) 02:18:35 ]
Aliasですよね?
AもWも明示して試してみたのですが結果は同じでした…。

Marcialの指定は初耳です。どういう形で指定すれば良いのでしょうか?


分かる方から見れば、適当なだけかも知れませんが、不勉強なのは承知の上です。

すみません。教えて頂けますでしょうか。。。

172 名前:デフォルトの名無しさん [2009/06/17(水) 09:20:45 ]
VB2008を独習するのに、おすすめの書籍を教えてください

これまでVB6.0のフォームとモジュールだけでやってきて、
クラスとかオブジェクト指向とかはネットで読んで
「なんとなくこんなもんだろうか」程度の認識です

173 名前:デフォルトの名無しさん [2009/06/17(水) 09:29:36 ]
オブジェクト指向きっちり勉強したいならjavaでもやれば?
VBやC#の本ってその辺の概念はスルーまたはあらかじめ理解してる前提で書かれてるのが多い

174 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 09:33:25 ]
>>166
>pt = OpenEvent(0, False, "EVENT000")
なんでアクセス権に 0 (アクセス権なし) してんだコレ。
Private Const EVENT_ALL_ACCESS As Integer = &H1F0003
pt = OpenEvent(EVENT_ALL_ACCESS, False, "EVENT000")

>>167
EventWaitHandle.OpenExisting 使うところだろうけど
まあ、どうしてもやってみたかったんだろう。

>>170
この場合は無指定で問題ない。

175 名前:166 [2009/06/17(水) 11:08:28 ]
174さんの言う通り、アクセス権を設定したら取得出来ました。
本当にありがとうございました!

>Private Const EVENT_ALL_ACCESS As Integer = &H1F0003

こういうEnumの設定はどこで確認すればよいのでしょうか?
MSDN等、どこかに資料があるのでしょうか?


176 名前:デフォルトの名無しさん [2009/06/17(水) 11:15:48 ]
win32apiのC言語のヘッダファイル

177 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 11:16:23 ]
>>4の「初心者から中級者のためのVB」のリンクきれてますよ

178 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 11:25:53 ]
>>175
Enum じゃないし。
つか、API 呼び出しするのに API の仕様も確認しないとか…

>MSDN等、どこかに資料があるのでしょうか?
何を指定すればいいのかは勿論 MSDN ライブラリ等。
ただ、記号定数が実際にどういう値なのかは
ヘッダを覗くしかない。
(探すときは Visual Studio のファイル検索を使うと楽)

…ていうかね、>>174 でも書いたけど
>>167 の言う通り、API 呼び出し使う意味がないんだったら
Dim ev as EventWaitHandle = EventWaitHandle.OpenExisting("EVENT000")
とした方がいいと思うんだが。

179 名前:166 [2009/06/17(水) 13:37:01 ]
なるほど、そういう事ですね。
もうすこし調査してみます。

本当にありがとうございました。名無しに戻ります。
それでは。



180 名前:172 [2009/06/18(木) 09:27:49 ]
>>173
今現在、VB2008を学習しなくてはならない事情がありまして
何かカリスマとかバイブル的な書籍、というのは無いものでしょうか

特に学習しなくても、VB6.0の頃とほぼ同じ作り方ができてしまいますが、
それを払拭して、VB2008ならこう構成した方がよい、こう書くべき、
というセオリーみたいなところを勉強したいです

181 名前:デフォルトの名無しさん [2009/06/18(木) 09:43:07 ]
じゃC#勉強すればいいじゃん
自動的にVBも使えるようになるよ
VBの本である限りVB的なやり方というのはどうしても出てくる
VB2008というか.NET的に1番良いのは「C#と同じように使うこと」

182 名前:デフォルトの名無しさん [2009/06/18(木) 15:08:21 ]
VB.NET2005を使ってADOとかADOXを使いMDBファイルを作成するPGをwebにアップされている
サンプルを見つつ書いてみたのですが、どうしてもエラーが取れません。

' 他のフィールドの定義
With cat.Tables(strTable).Columns
  .Append("商品コード", adWChar, 10)
End With

のadWCharでエラーになります。この型を認識させるにはどこをいじればいいのでしょうか?

183 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 17:34:51 ]
GUI(フォーム)をVB、コードをC++で書くことができると知ったのですが、
(ttp://pc12.2ch.net/test/read.cgi/tech/1099112351/1)
方法があれば開設しているサイトなど、教えてください
また複数の言語を混ぜてプログラムを作ることをなんというのでしょうか?

184 名前:デフォルトの名無しさん [2009/06/18(木) 19:23:24 ]
IE では、「アクティブ コンテンツ」を制限する機能がありました。
「セキュリティ保護のため、このコンピュータにアクセスする可能性
のあるスクリプトやActiveXコントロールを実行しないよう、IEで制限
されています。オプションを表示するには、ここをクリックしてください」
という情報バーが出てくるものです。

この警告機能と、ダイアログを表示してユーザーが選択してから表示する
という機能を、WebBrowserにおいても導入するためにはどういった処理を
すれば良いでしょう?何か参照推奨のサイト等お教えください。よろしく
お願いします。

185 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 22:20:05 ]
>>183
C++/CLIでアセンブリ作って参照に追加するだけ
と言えば簡単そうに聞こえるけど、C++と.NET両方の知識がないと厳しい。

186 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 22:34:15 ]
>>185
ありがとうございます
C++/CLIでCILを作るのですね・・ややこしい><

187 名前:デフォルトの名無しさん [2009/06/19(金) 01:45:26 ]
昔のC++のコードを利用したいとかでなければまずメリットはないね
ものすごい科学技術計算でもするなら別だけどw

188 名前:デフォルトの名無しさん [2009/06/19(金) 03:46:53 ]
javaとか、昔の Basicって、1つの命令の後に、区切り文字
(";" や ";")を書けば、同じ行に続けて次の命令を記述できたよね。

VBって、それがないから、1行に一つの命令しか書けないでしょ?
1行に1つの命令しか書けないって、よく考えたら
ものすごく使い勝手悪い言語じゃない?


189 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 04:03:27 ]
あるから問題ない



190 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 04:40:56 ]
>>188

: で区切ればいいだろ

191 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 10:01:01 ]
>>150-152
>>154-156
大変遅くなりました!レスありがとうございます。
どれも参考になるものばかりで、本当にありがとうございました!
頑張って作成したいと思います!!

192 名前:デフォルトの名無しさん [2009/06/19(金) 10:02:21 ]
( ゚∀゚)アハハ八八ノヽノヽノヽノ \ / \/ \

193 名前:149 mailto:sage [2009/06/19(金) 10:02:42 ]
↑↑149です。
連レスすみませんでした。


194 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 13:00:12 ]
現在VB2008 expressでWindowsフォームアプリケーションの多言語化について勉強しています。

C#による多言語対応アプリケーション開発のコツ
codezine.jp/article/detail/3288
を参考に、デザイナ、resxファイルを利用して多言語化を行うことができました。

この作業を実際に行ってみて思ったのですが、
.netには、ある言語に翻訳したい!と思った人がアプリ公開者を通さずに翻訳 > 配布 ということが簡単にできる仕組みは準備されているのでしょうか。

実際に多言語対応したアプリを公開した場合、個人レベルだと、
規定の言語で公開(またはVerUP) > 各言語の翻訳者による翻訳 > 翻訳を反映
という流れになると思うのですが、

VerUP等でresxファイル内のデータが増えた場合(翻訳作業が必要な文字列などが増えた場合)、
各言語のresxを(アプリ公開者が)入手 > (アプリ公開者が)ビルド > dll作成 > 配布

という方法で翻訳を反映するのがやはり一般的なのでしょうか。

なければ自前で、実行時に動的にカルチャに応じたXMLを読み込み(あれば)反映、といったような処理で多言語化を実装しようと考えています。

195 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 13:10:11 ]
厳密名付けてなかったら翻訳者が勝手にresxをコンパイルしたdllでも読み込まれるな

196 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 15:39:40 ]
DB側の接続文字列に変更があったとき、
DataSetにConnectionStringを追加していくと
前のConnectionStringが残ってしまうのですが・・・。

これ以前のConnectionSringを編集したい、
または以前のを削除したい場合はどうしたらいいのでしょうか?

197 名前:196 mailto:sage [2009/06/19(金) 15:50:19 ]
app.configとSettings.settingsを手動で書き換えていいのかな・・・。

198 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 15:55:01 ]
OK

199 名前:196 mailto:sage [2009/06/19(金) 17:13:01 ]
バックアップ取ってやってみたら
app.configとSettings.settingsの書き換えだけで問題なかったようです。
とっとと自分で試せって話ですよね・・・w

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



200 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 09:57:22 ]
環境:VB.net2003

GUIプログラムで、Windowsフォームの中にコンソールのようなCUIなコントロールを表示させたいのですが、
(AllocConsoleみたいに別途コンソールを開くのではなく)
そういったコントロール(以前に入力(実行)した内容は変更できない)はありませんでしょうか?
(標準でなくてもサードパーティー製でもなんでもいいです)
もし無いのであればRichTextBoxあたりでなんとかしてみるつもりです。


201 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 10:39:06 ]
フォルダを複数選択するダイアログを作成したいと思っています。

こちらのページ
ttp://dobon.net/vb/dotnet/form/folderdialog.html
こコピペでフォルダを選択できるようにはなりました。

'FolderBrowserDialogクラスのインスタンスを作成
Dim fbd As New FolderBrowserDialog

'上部に表示する説明テキストを指定する
fbd.Description = "フォルダを指定してください。"
'ルートフォルダを指定する
'デフォルトでDesktop
fbd.RootFolder = Environment.SpecialFolder.Desktop
'最初に選択するフォルダを指定する
'RootFolder以下にあるフォルダである必要がある
fbd.SelectedPath = "C:\Windows"
'ユーザーが新しいフォルダを作成できるようにする
'デフォルトでTrue
fbd.ShowNewFolderButton = True

'ダイアログを表示する
If fbd.ShowDialog(Me) = DialogResult.OK Then
'選択されたフォルダを表示する
Console.WriteLine(fbd.SelectedPath)
End If

しかし、OpenFileDialogと異なりFolderBrowserDialogにはMultiselectプロパティがないようです。
どうすればフォルダを複数選択できるようになるのでしょうか?

202 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 10:55:49 ]
代案があるかどうかは知らんがSHBrowserForFolderじゃ仕様上複数選択はどうやっても不可能だな

203 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 11:06:55 ]
btmtz.mvps.org/vbexplorer/

204 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 11:42:47 ]
ありがとうございます。
USBメモリ・外部メール等禁止のため長いコードだと手打ちはしんどいので、FolderBrowserDialogでディレクトリを選択後checked listboxに
ディレクトリ一覧を表示、そこで複数にチェックを入れるという形にしようと思います。

205 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 03:15:14 ]
繰り返せばええがな

206 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 19:50:49 ]
一覧表示の親フォームから詳細編集の子ダイアログを開くようなDBアプリを作ってて
親のBindingSourceを子に渡して子の各フォームにバインドさせたいんだけど、
コードで直接書くんじゃなくてデザイナのプロパティで設定する方法ってないでしょうか?

207 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 19:53:30 ]
s/子の各フォーム/子の各コントロール/

208 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 20:18:28 ]
VB.NETからエクセルのマクロを作成したり
データの入力制限を編集することは可能ですか?

指定したエクセルの列に値の重複を禁止する入力制限を追加して
DBの主キーのような設定を持たせたいのですが
入力制限の編集をVB.net上で行う方法が見つからないので

209 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 21:18:07 ]
マクロの記録で記録できるならできる。
記録できないのも、一部は可能。



210 名前:デフォルトの名無しさん [2009/06/23(火) 19:50:53 ]
VBAのマクロを生成できるから何でもできる

211 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 20:23:57 ]
調べてもマクロ呼び出ししか出てこないけど。
VB.net上で書いたソースをどの参照からマクロ登録することが出来るんだろう。
どなたかサンプルソースがあるところ教えてください

212 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 20:38:49 ]
>>211
officetanaka.net/excel/vba/vbe/06.htm

213 名前:デフォルトの名無しさん [2009/06/23(火) 22:44:41 ]
VB2005でftpクライアントの機能作ってます。
WebRequestMethods.Ftp でサーバにあるファイル名を取ってくるときに、
2バイト文字のファイル名だと化けてしまいます。
化けないで正しいファイル名を取得する方法はないでしょうか?

214 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 22:53:11 ]
FTPではマルチバイト文字は未定義なのよね
TcpClient or Socket使って自分でFTP喋るしかないんじゃないかなぁ
まあどっかにその辺の対応も含んだ野良FtpClientがあるかもしんないけど

215 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 02:26:15 ]
化けるって、どこでどう化けるんだ?

216 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 22:10:40 ]
テキストボックスのD&Dで
テキストのD&Dは
Private Sub TextBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragEnter
If e.Data.GetDataPresent(DataFormats.UnicodeText) Then
e.Effect = DragDropEffects.Copy
End Sub

で処理できるのですが、インターネットエクスプローラに表示されているWEBページの
リンクの文字をD&Dした際に、HTMLに設定されたURLを取得するにはどのように書いたら良いでしょうか?

217 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 22:52:44 ]
"UniformResourceLocator"でデータ取得
MemoryStreamにキャストしてそこからRead
Chr(0)を探してその直前までをEncoding.Default.GetString

218 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 22:54:22 ]
あ、Chr(0)じゃなくていいか、単に0探すだけで

219 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 00:14:36 ]
レスありがとございます。
その方法はアドレスバーのURLの左にあるアイコンをD&Dする方法ではないでしょうか?
HTMLのリンクになっているテキストはドラッグしても通行禁止のマークのままなのですが・・・



220 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 00:18:44 ]
普通にa要素のD&Dを取れる
IEとFxで確認した
あ、EffectはCopyだけじゃなくてLinkも入れないと駄目かも

221 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 00:20:03 ]
どぼんさんのHPにあるじゃないか
ttp://dobon.net/vb/dotnet/control/dropfromwebbrowser.html

222 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 00:20:17 ]
ありがとうございます。
DragDropEffects.Copy→DragDropEffects.Link
の変更で受け取れました。助かりました。


223 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 02:06:49 ]
OSを起動後に起動時の処理(スタートアップのプログラムの起動など)の一番最後に
(PCがアイドル状態になったら)自分のアプリを起動したいのですが、
OSが起動後にそのような状態になったというのはどのように調べたら良いでしょうか?
ちなみにWindowsXP-PROです。

224 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 14:03:50 ]
hint
wmic path Win32_Processor get LoadPercentage

225 名前:デフォルトの名無しさん [2009/06/25(木) 14:04:10 ]
すみません。自分の開発してるプログラムでつまずいてしまったので教えてください。
現在業務をスケジュール管理するプログラムを作っています。
業務を登録する画面では、1月〜12月、1日〜31日までのチェックボックスを
それぞれ作っています。
例えば1月〜12月と1日のチェックボックスをチェックすると、毎月1日の業務
として登録され、スケジュール表に毎月1日だけその業務が表示されるような
ものを作りたいと思ってます。
データベースはACCESSを使用しており、月と日のチェックボックスに対応する
項目としてはYes/No型で1月〜12月、1日〜31日まで全て作っています。

今つまずいている点は、日付を指定してDB上からその日付に該当する業務を取得
したいのですが日付によってチェックするフィールドの位置が違う為、
どのようにすればいいか悩んでいます。
例えば6月1日の業務を取得したい場合、DB上で6月フィールドにチェックがあるかどうか
の確認が必要になりますが、日付によって確認するフィールドを動的に変える方法を
教えてください。

1月1日の場合〜、1月2日の場合〜とコーディングしたら365日分つくらないと
いけないので(こんな案しか思いつかなかったorz)良い案があれば教えて下さい。

226 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 14:16:31 ]
DBのテーブルは与えられてるもの?自分でいじれるもの?

227 名前:225 [2009/06/25(木) 14:17:56 ]
連投すみません。
フィールド名を変数で定義出来れば多分出来るかなと思います。

1月の場合、変数に"1月"と代入しその変数=trueのレコードを取得とするような
クエリにぶちこめば動くようにしたいです。


228 名前:225 [2009/06/25(木) 14:20:31 ]
>>226
DBは自分でいじることが出来ます。
本当にド素人なんでどういったやり方がスマートなのかわかってないので
、こういうプログラムを作るときは普通こういった方法をする
と言ったアドバイスを頂けたらと思います。
よろしくお願いいたします。

229 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 14:23:31 ]
Accessを使ってるとフォームを作りやすいようなイメージでテーブルを
作ってしまうのだろうけどそこが誤りだろうな。
日付によって読みに行く場所が違うというのが異常だからそこを直すべき。



230 名前:225 [2009/06/25(木) 14:58:45 ]
>>229
つまり1月〜12月、1日〜31日のフィールドっていうのが異常って事ですよね?
むずかしいです・・・

231 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 16:24:00 ]
まず、フィールドってのがRDB上の属性(カラム)なのかGUI上のコントロールなのかよくわからない
可能ならとりあえず現状のスキーマとSQLクエリでも晒してくれ

232 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 16:30:58 ]
RDBの流儀でいえばこんな感じのスキーマになると予想

スケジュール表 [ 日付, 業務種別ID, 実業務ID ]
業務マスタ [ 業務種別ID, 業務名, 実業務テーブル名 ]
(実業務表) [ 実業務ID, 必要な情報・・・ ] ←業務ごとに作成


233 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 17:39:47 ]
>>225
プログラムで動的にSQLを生成して実行する
フィールド名も動的に変更できる

>>229
今回の要件なら、俺でも1−12月のフラグと1−31日のフラグもつかもしれない
まあ、ホントは後で書くスキーマのようにするのが正解だろうけど

>>232
登録するのは、業務の繰り返し頻度であって、業務のスケジュールそのものじゃないぞ
そのスキーマだと、日ごとスケジュールの生成って作業が必要だな
そして繰り返し頻度を変更した場合、今あるスケジュールを全部けして再生成
さらに何年先までのスケジュールを生成していいのか不明

俺の予想スキーマ

業務マスタ(業務ID,業務名,その他必要な内容)
業務頻度月(業務ID,業務実行月)
業務頻度日(業務ID,業務実行日)

指定月日の業務を知りたければ、この三つを業務IDでjoinして
業務頻度月.業務実行月=指定月日の月 and 業務頻度日.業務実行日=指定月日の日 を検索

まああれだ。DB設計の話は板違いだな

234 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 22:34:03 ]
DBも気になるけどチェックボックスが大量に並んでいる画面を想像してぞっとした
あ、チェックボックスのリストコントロールとかもあるか・・・

235 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 04:16:35 ]
大量って言っても、12個+31個だからなぁ

カレンダー系のマスタメンテとかで、31個のチェックボックスを
並べるのなんて結構やってるし

まあしかし、>225からここまで1回もvb.netって言葉が出てないじゃないかw


236 名前:デフォルトの名無しさん [2009/06/26(金) 13:36:39 ]

おい、出すなよ。

237 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 16:00:18 ]
DB的な使い方をしない前提なら、
スポットで1日分だけ読み込もうとせずに、
1年分くらい全部読み込んでおけってことになるね。

238 名前:デフォルトの名無しさん [2009/06/26(金) 18:18:29 ]
VB.NETでスレッドを扱いたいんです。
同時に20個ほどスレッドを起動させ終了を待ちたいのですが、
どうすればいいのでしょうか?
.joinでは無理ですよね?
よろしくお願いします。

239 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 18:21:09 ]
別にJoinでも問題ないと思うが



240 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 18:49:10 ]
そんなにスレッド起動させてどうすんの?
SNS巡回ツールでも作んの?


241 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 23:46:59 ]
大量のラベルコントロールを書き換えがしたくて
label1 label2 label3...のような感じで連番にして繰り返し処理で
一気に書き換えようと思うのですが思うようにできません
target = Cobj("label" & i) のような感じにしたのですが
エラーが出てとまってしまいます
どうしたらよいのでしょうか?

242 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 00:02:44 ]
>>241
label1 label2 label3...をListに入れる

243 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 00:03:16 ]
テンプレに入れたいぐらい良く出るな、この類の。

配列に入れとけ

244 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 00:13:42 ]
Controls()からLabelをさがせばいいんじゃない

For Each child As Control In Me.Controls
 If child.Text Like "Label*" Then
  child.Text = child.Text & "でんがな"
 End If
Next

245 名前:デフォルトの名無しさん [2009/06/27(土) 00:34:12 ]
正直、こんな命令があったんだとか
こんな使い方があったんだとか
他人のプログラムやサイトを見て知ることが多く
それを踏まえてみると自分の書いたコードがとても無駄だったみたいな経験があるんですが

みなさんはどうやって、こんな命令があるこんな使い方があるみたいなものを学んでるんですか?

246 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 00:36:46 ]
MSDNのサンプルを読破しようと思ったこともありました
挫折しました
というわけで他人のプログラムやサイトw

247 名前:238 mailto:sage [2009/06/27(土) 01:31:43 ]
>>238です
スレッドが終わるタイミングはまちまちです。
終わったスレッドから終わったあとの処理をしていきたいのです。
.joinだと制御が戻ってこないので困っています。

248 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 01:33:33 ]
コンストラクタ内のstatic変数ってそのクラスのオブジェクトすべてで共通じゃないの?
オブジェクトに通し番号をつけようと思って以下のように書いたんだが、毎回0になるのだが・・・

Public Class Form1
 Private Class Foo
  Public Sub New()
   Static Sequence As Integer = 0
   Sequence += 1
   (毎回0に初期化されてこの時点で1になる

249 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 02:16:37 ]
>>248
Static (Visual Basic)
ttp://msdn.microsoft.com/ja-jp/library/z2cty7t8(VS.80).aspx

>プロシージャが Shared でなければ、その Static 変数を含むローカル変数はインスタンス変数になります。
>そのインスタンス内の変数は、別のインスタンス内の同じ名前を持つ変数とは独立したものです。

各インスタンスで共有したかったらShared使ってこんな感じ

Private Class Foo
 Private Shared Sequence As Integer = 0
 Public Sub New()
  Sequence += 1
  Console.WriteLine(Sequence)
 End Sub
End Class



250 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 02:28:03 ]
>>249
thnx
staticなのにインスタンス別とは・・・

251 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 03:39:00 ]
>>247
やっぱ、スレッドが終わるとき自分で終了通知する、とかじゃないかね

Dim waitHandles(20) As AutoResetEvent

Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
  For i As Integer = 0 To waitHandles.Length - 1
    waitHandles(i) = New AutoResetEvent(False)
    Dim workThread As Thread = New Thread(AddressOf worker)
    workThread.Start(i)
  Next
  Dim manageThread As Thread = New Thread(AddressOf manager)
  manageThread.Start()
End Sub

Private Sub worker(ByVal obj As Object)
  Dim i As Integer = CInt(obj)
  Thread.Sleep(i * 100) '適当に仕事をする
  waitHandles(i).Set() 'スレッドが終わるときに終了通知
End Sub

Private Sub manager()
  Debug.Print("--------------")
  For count As Integer = 0 To waitHandles.Length - 1
    Dim i As Integer = WaitHandle.WaitAny(waitHandles) '終了通知を待つ
    Debug.Print("worker {0} done", i)
  Next
  Debug.Print("ALL done")
End Sub






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<199KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef