[ja-users] Re: [ja-users] BaseでエクセルのVLOOKUPのような機能をフォームで使いたい エラーが発生(続)

2017-04-07 スレッド表示 志義ゼミ

福永様。

大変重要なことを書き忘れていました。
私が作ったテーブルt_testのデータの型はすべてvarcharです。

data type で、NumberFormatExceptionの数値に対する例外が発生していることから
IDは整数値ではなくString型として認識されてるようです。

もし、可能であれば、テーブルのIDの方をvarcharに変えて再度実行してみてはどうでしょうか。

以上

On 2017年04月07日 20:56, 福永ケンセイ wrote:

結果
1: Wrong data type: java.lang.NumberFormatException: For input string: "1
"




--
/
志義どっとPC
(志義ゼミナール)
堀 正和
〒838-0141
福岡県小郡市小郡630-62
TEL/FAX:0942-73-1710
直通(堀):090-8379-6113
/


--
Unsubscribe instructions: E-mail to users+unsubscr...@ja.libreoffice.org
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/ja/users/
All messages sent to this list will be publicly archived and cannot be deleted


[ja-users] BaseでエクセルのVLOOKUPのような機能をフォームで使いたい エラーが発生(続)

2017-04-07 スレッド表示 福永ケンセイ
回答ありがとうございます。
エラーが発生してしまいます。
どなたか教えていただきたいのですが。


以下の手順でテーブル、フォームを作成しました

テーブルですが
フィールド名 フィールドタイプ
ID 整数[INTEGER]
商品名 テキスト[VARCHSR]
単価 整数[INTEGER]
上記で設定しました。

フォームは
1)デザイン表示でフォームを作成を選択
2)テキストボックスを選択し二か所にテキストボックスを設置
3)右クリック フォームの属性から名前を「form」に変更
4)右クリック 属性テキストボックス 全般の名前をtextbox1~2に変更
4)右クリック 属性テキストボックス イベントからフォーカスを失った時を選択し「マクロ」クリックしてマクロ表示
上記の手順で作成しました

メールをいただいて以下実行してみました。

msgbox "sSql = "& sSql
を
ThisDataBaseDocument.DataSource.getconnection("","").createstatement.executequery(sSql)
の前に置いて、Baseからform上のtextbox1に1などIDを入れてEnterを押してみてください。

A)
以下実行してみました。

 sSql ="select ""商品名"" from ""t_test"" where ""ID"" =  '" &
oForm.getByName("textbox1").text & "';"
 msgbox(sSql) <ここに追加
oResult =
ThisDataBaseDocument.DataSource.getconnection("","").createstatement.executequery(sSql)

B)
結果
以下のような表示が出ました
select "商品名" from "t_test" where "ID" =  '1';

C)
このSQL文を
マイマクロ&ダイアログが開いた状態
データーフォームのtextbox1に「1」が入った状態で
フォームを選択し下記SQLを実行しました。

select "商品名" from "t_test" where "ID" =  '1';

結果
1: Wrong data type: java.lang.NumberFormatException: For input string: "1
"
上記結果となりうまくいきませんでした。
バージョンはバージョン: 5.2.6.2です
データーベースエンジンは埋め込みHSQLです

-- 
Unsubscribe instructions: E-mail to users+unsubscr...@ja.libreoffice.org
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/ja/users/
All messages sent to this list will be publicly archived and cannot be deleted


[ja-users] Re: [ja-users] BaseでエクセルのVLOOKUPのような機能をフォームで使いたい エラーが発生(続)

2017-04-05 スレッド表示 志義ゼミ

福永様

念の為に、sSqlを表示してみましょう。
msgbox "sSql = "& sSql
を
ThisDataBaseDocument.DataSource.getconnection("","").createstatement.executequery(sSql)
の前に置いて、Baseからform上のtextbox1に001などIDを入れてEnterを押してみ 
てください。


表示されたsSql文内の項目名(フィールド名)などは正常でしょうか。

また、そのsql文をコピーして、ツール>sqlから発行してみてください。
001に対応する値が取得されますか。

正常にsqlが発行され、値が取得されていれば、確かに
ThisDataBaseDocument.DataSource.getconnection("","").createstatement.executequery(sSql)
の直前までは正常だと考えられますね。

そうなると、
ThisDataBaseDocument.DataSource.getconnection("","").createstatement.executequery(sSql)
に問題がありそうです。
Takeshi Abe様のアドバイス通りcreatestatementの直後に"()"が必要かもしれま 
せん。


私が確認したところ、"()"の有無に関係なく動作しております。

参考になれば、幸いです。以上。

On 2017年04月05日 21:39, Takeshi Abe wrote:

福永さん

On Wed, 5 Apr 2017 21:12:54 +0900, 福永ケンセイ  wrote:

 プログラムでエラーが発生しました。
どなたかわかる方教えてください

(snip)

4)この部分はSQL文の結果を変数に代入していると思います
oResult =
ThisDataBaseDocument.DataSource.getconnection("","").createstatement.executequery(sSql)

ThisDataBaseDocument.DataSource.getconnection("","").createstatement().executequery(sSql)
のように、createStatementの後に"()"がいるのではないかと思います。

-- Takeshi Abe


--
/
志義どっとPC
(志義ゼミナール)
堀 正和
〒838-0141
福岡県小郡市小郡630-62
TEL/FAX:0942-73-1710
直通(堀):090-8379-6113
/


--
Unsubscribe instructions: E-mail to users+unsubscr...@ja.libreoffice.org
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/ja/users/
All messages sent to this list will be publicly archived and cannot be deleted



Re: [ja-users] BaseでエクセルのVLOOKUPのような機能をフォームで使いたい エラーが発生(続)

2017-04-05 スレッド表示 Takeshi Abe
福永さん

On Wed, 5 Apr 2017 21:12:54 +0900, 福永ケンセイ  wrote:
>  プログラムでエラーが発生しました。
> どなたかわかる方教えてください
(snip)
> 4)この部分はSQL文の結果を変数に代入していると思います
> oResult =
> ThisDataBaseDocument.DataSource.getconnection("","").createstatement.executequery(sSql)
ThisDataBaseDocument.DataSource.getconnection("","").createstatement().executequery(sSql)
のように、createStatementの後に"()"がいるのではないかと思います。

-- Takeshi Abe

-- 
Unsubscribe instructions: E-mail to users+unsubscr...@ja.libreoffice.org
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/ja/users/
All messages sent to this list will be publicly archived and cannot be deleted