火曜日, 10月 30, 2007
[VB2005]「Option Strict On では、遅延バインディングを使用できません。」エラー
▼質問
「Option Strict On では、遅延バインディングを使用できません。」のエラーが発生する。
▼回答
問題1
Private Sub TrnPictureBox_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox.Click
Dim x as Double
x = sender.MousePosition.X()
End Sub
対応1
x = PointToClient(MousePosition).X
問題2
Dim obj As Object
obj = OraDataBase.CreateDynaset(strSql, 0)
Debug.Print obj.Fields("FIELDS_NAME").Value
対応2
下記の参照を追加する。
参照名:Oracle InProc Server 5.0 Type Libray
Imports OracleInProcServer
Dim obj As OracleInProcServer.OraDynaset
obj = CType(CType(OraDatabase, OracleInProcServer.OraDatabase).CreateDynaset(strSql, 0), OraDynaset)
Debug.Print DirectCast(DirectCast(obj.Fields, OracleInProcServer.OraFields)("FIELDS_NAME"), OracleInProcServer.OraField).Value)
「Option Strict On では、遅延バインディングを使用できません。」のエラーが発生する。
▼回答
問題1
Private Sub TrnPictureBox_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox.Click
Dim x as Double
x = sender.MousePosition.X()
End Sub
対応1
x = PointToClient(MousePosition).X
問題2
Dim obj As Object
obj = OraDataBase.CreateDynaset(strSql, 0)
Debug.Print obj.Fields("FIELDS_NAME").Value
対応2
下記の参照を追加する。
参照名:Oracle InProc Server 5.0 Type Libray
Imports OracleInProcServer
Dim obj As OracleInProcServer.OraDynaset
obj = CType(CType(OraDatabase, OracleInProcServer.OraDatabase).CreateDynaset(strSql, 0), OraDynaset)
Debug.Print DirectCast(DirectCast(obj.Fields, OracleInProcServer.OraFields)("FIELDS_NAME"), OracleInProcServer.OraField).Value)
水曜日, 10月 24, 2007
[HTML]INPUTタグのdisabled
▼質問
INPUTタグでdisabledを指定しても有効にならないのはどうしてかな?
▼回答
スタイルシート(CSSファイル)などでcursorにpointerを指定していないか確認してみてくれ!
これをしているとdisabledを指定しても有効にならないんだ。
cursorのpointerをautoにしてみてくれ!!
どうだったかな?
これでも駄目でした(T_T)
FORMタグが悪さしているようです?!
諦めて他の方法にすることにしました。。。。
と、思ったら気がつきました。
下記の関数をフォームロードで処理をしていました。(T.T)
function buttonDisabled( flag ) {
var loop ;
with ( document.form1 ) {
for ( loop = 0 ; loop < elements.length ; loop++ ) {
if ( elements[loop].type == "button" ) {
elements[loop].disabled = flag;
}
}
}
}
これは、FORMタグで囲まれたボタンのみをパラメータフラグの内容でdisabledを
制御している関数で、これが悪さしていたようです。(涙)
■参考サイト
cursor CSS辞典
http://www.seo-equation.com/html/css/cursor
INPUTタグでdisabledを指定しても有効にならないのはどうしてかな?
▼回答
スタイルシート(CSSファイル)などでcursorにpointerを指定していないか確認してみてくれ!
これをしているとdisabledを指定しても有効にならないんだ。
cursorのpointerをautoにしてみてくれ!!
どうだったかな?
これでも駄目でした(T_T)
FORMタグが悪さしているようです?!
諦めて他の方法にすることにしました。。。。
と、思ったら気がつきました。
下記の関数をフォームロードで処理をしていました。(T.T)
function buttonDisabled( flag ) {
var loop ;
with ( document.form1 ) {
for ( loop = 0 ; loop < elements.length ; loop++ ) {
if ( elements[loop].type == "button" ) {
elements[loop].disabled = flag;
}
}
}
}
これは、FORMタグで囲まれたボタンのみをパラメータフラグの内容でdisabledを
制御している関数で、これが悪さしていたようです。(涙)
■参考サイト
cursor CSS辞典
http://www.seo-equation.com/html/css/cursor
金曜日, 10月 12, 2007
[VB2005]数値入力制限
▼質問
テキストボックスで数値だけを入力できるようにしたいんだ。どうすればいい?
▼回答
KeyPressイベントで下記の関数を呼べばできるよ。
Public Sub KeyNumericOnly(ByRef e As System.Windows.Forms.KeyPressEventArgs)
'数値キーをチェックする.
If (Not e.KeyChar Like "[0-9]") Then e.KeyChar = ""
End Sub
これだけでは駄目なのね(?.?)
これだとバックスペースが使えなくなるのね。
だからこの関数を呼ぶ前に次のコードを記述するのね。
If (Asc(e.KeyChar) = System.Windows.Forms.Keys.Back) Then Exit Sub
他にも、プロパティのMaxLengthを指定しないと入力桁数の制限ができないのね。
これで、OKかな!?
テキストボックスで数値だけを入力できるようにしたいんだ。どうすればいい?
▼回答
KeyPressイベントで下記の関数を呼べばできるよ。
Public Sub KeyNumericOnly(ByRef e As System.Windows.Forms.KeyPressEventArgs)
'数値キーをチェックする.
If (Not e.KeyChar Like "[0-9]") Then e.KeyChar = ""
End Sub
これだけでは駄目なのね(?.?)
これだとバックスペースが使えなくなるのね。
だからこの関数を呼ぶ前に次のコードを記述するのね。
If (Asc(e.KeyChar) = System.Windows.Forms.Keys.Back) Then Exit Sub
他にも、プロパティのMaxLengthを指定しないと入力桁数の制限ができないのね。
これで、OKかな!?
木曜日, 10月 11, 2007
[Access]オラクルODBCドライバ
▼質問
ODBCの設定でOracle(オラクル)に接続しようとすると下記のエラーで接続できないんだ。
接続できませんでした。SQLState=IM004
[Microsoft][ODBC Driver Manager] SQL_HANDLE_ENVでのドライバの SQLAllocHandle は失敗しました。
どうしてなんだ?
▼回答
ODP.NETをインストールしたことはないかい?
それをインストールするとODBCに接続できなくなることがあるんだ。
原因は、Oracle Homeの優先順位が変わるからなんだ。
対策方法の手順は下記の通りだ。
1.「Oracle - OraDb10g_home1」→「Oracle Installation Products」→「Universal Installer」を
起動する。
2.「インストールされた製品(P)...」をクリックする。→「インベントリ」ダイアログが表示される。
3.「環境(E)」タブをクリックする。
4.「ODACHome1」より「OraClient10g_home1」の順位が上位になるように「↑」「↓」ボタンで
変更する。
5.「適用(A)」→「閉じる(C)」ボタンの順にボタンをクリックして終了。
■参考サイト
yukotan hour: 6月 2007
http://yukotan.blogspot.com/2007_06_01_archive.html
ODBCの設定でOracle(オラクル)に接続しようとすると下記のエラーで接続できないんだ。
接続できませんでした。SQLState=IM004
[Microsoft][ODBC Driver Manager] SQL_HANDLE_ENVでのドライバの SQLAllocHandle は失敗しました。
どうしてなんだ?
▼回答
ODP.NETをインストールしたことはないかい?
それをインストールするとODBCに接続できなくなることがあるんだ。
原因は、Oracle Homeの優先順位が変わるからなんだ。
対策方法の手順は下記の通りだ。
1.「Oracle - OraDb10g_home1」→「Oracle Installation Products」→「Universal Installer」を
起動する。
2.「インストールされた製品(P)...」をクリックする。→「インベントリ」ダイアログが表示される。
3.「環境(E)」タブをクリックする。
4.「ODACHome1」より「OraClient10g_home1」の順位が上位になるように「↑」「↓」ボタンで
変更する。
5.「適用(A)」→「閉じる(C)」ボタンの順にボタンをクリックして終了。
■参考サイト
yukotan hour: 6月 2007
http://yukotan.blogspot.com/2007_06_01_archive.html
日曜日, 10月 07, 2007
[VBA]R1C1形式とA1形式
▼質問
R1C1形式をを英文字のA1形式に変換するにはどうしたらいいの?
▼回答
アクティブセルのR1C1形式・A1形式を取得するサンプルを教えておくよ。
Dim strRowCol As String
Dim strTXlA1 As String
Dim strTXlR1C1 As String
Dim strFXlA1 As String
Dim strFXlR1C1 As String
'1:1
strRowCol = Excel.ActiveCell.Row & ":" & Excel.ActiveCell.Column
'$A$1
strTXlA1 = Excel.ActiveCell.Address(True, True, Excel.XlReferenceStyle.xlA1)
'R1C1
strTXlR1C1 = Excel.ActiveCell.Address(True, True, Excel.XlReferenceStyle.xlR1C1)
'A1
strFXlA1 = Excel.ActiveCell.Address(False, False, Excel.XlReferenceStyle.xlA1)
'R[1]C[1]
strFXlR1C1 = Excel.ActiveCell.Address(False, False, Excel.XlReferenceStyle.xlR1C1)
'A$1
Debug.Print Excel.ActiveCell.Address(True, False, Excel.XlReferenceStyle.xlA1)
'R1C[1]
Debug.Print Excel.ActiveCell.Address(True, False, Excel.XlReferenceStyle.xlR1C1)
'$A1
Debug.Print Excel.ActiveCell.Address(False, True, Excel.XlReferenceStyle.xlA1)
'R[1]C1
Debug.Print Excel.ActiveCell.Address(False, True, Excel.XlReferenceStyle.xlR1C1)
R1C1形式をを英文字のA1形式に変換するにはどうしたらいいの?
▼回答
アクティブセルのR1C1形式・A1形式を取得するサンプルを教えておくよ。
Dim strRowCol As String
Dim strTXlA1 As String
Dim strTXlR1C1 As String
Dim strFXlA1 As String
Dim strFXlR1C1 As String
'1:1
strRowCol = Excel.ActiveCell.Row & ":" & Excel.ActiveCell.Column
'$A$1
strTXlA1 = Excel.ActiveCell.Address(True, True, Excel.XlReferenceStyle.xlA1)
'R1C1
strTXlR1C1 = Excel.ActiveCell.Address(True, True, Excel.XlReferenceStyle.xlR1C1)
'A1
strFXlA1 = Excel.ActiveCell.Address(False, False, Excel.XlReferenceStyle.xlA1)
'R[1]C[1]
strFXlR1C1 = Excel.ActiveCell.Address(False, False, Excel.XlReferenceStyle.xlR1C1)
'A$1
Debug.Print Excel.ActiveCell.Address(True, False, Excel.XlReferenceStyle.xlA1)
'R1C[1]
Debug.Print Excel.ActiveCell.Address(True, False, Excel.XlReferenceStyle.xlR1C1)
'$A1
Debug.Print Excel.ActiveCell.Address(False, True, Excel.XlReferenceStyle.xlA1)
'R[1]C1
Debug.Print Excel.ActiveCell.Address(False, True, Excel.XlReferenceStyle.xlR1C1)