[ja-users] Re: [ja-users] BaseでエクセルのVLOOKUPのような機能をフォームで使いたい エラーが発生(続)
福永様。 大変重要なことを書き忘れていました。 私が作ったテーブル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] Re: [ja-users] BaseでエクセルのVLOOKUPのような機能をフォームで使いたい エラーが発生(続)
福永様 念の為に、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
[ja-users] Re: [ja-users] BaseでエクセルのVLOOKUPのような機能をフォームで使いたい
福永様。 一応、Vlookupっぽいものができましたので報告させていただきます。 ただ、エラー処理などはしていませんので、あしからず。 1.動作環境 Ubuntu16.04 32bit LibreOffice5.3.1.2 HSQLDB(埋め込み) 2.概要 テキストボックス1に「001」と入力するとテキストボックス2に「リンゴ」がひょうじされる。 そのためのマクロを作成します。 テキストボックス1の値を検索値としてsqlを発行し、取得したレコードをwhile文で取り出し、それをテキストボックス2にセットする。 3.手順 (1)データベース作成 適当にbaseでつくります。ファイル名はtestでもなんでもよいです。 (2)テーブル作成 テーブル名 t_test ID商品名 単価 001 リンゴ 200 002 みかん 100 プライマリーキーはIDにしておきます。 (3)フォーム作成 フォーム名はf_textとし、実際に作成されるフォーム名をformとして区別します。 ※ここが肝です。フォームの名前が2種類あるように見えますが、f_testはフォームの入れ物のようなもので最初に作成されるものです。実際にフォームをデザインするとそのときに実体ができます。それがform(フォームと表示されている)です。デザインウィザード内のコンパスのアイコンをクリックすると配置されているテキストボックス等を含むフォームなどの名前が表示されます。カタカナでフォームとなっているのをformに書き換えておきます。これがフォームの実体です。 テキストボックス1(名前はtextbox1)とテキストボックス2(名前はtextbox2)としてformに配置します。(ラベルは見分けるために適当に作ってください。) 一応保存。(まめに保存しておきましょう。) (4)マクロ作成 ① f_testを右クリック>編集 から開きます。上のメニューバーの ツール>マクロ>マクロの管理>LibreOffice Basic をクリックします。 ② 左枠内のマクロの記録先にtestというデータベースがあります。クリックするとstandardが見えます。それをクリックして、右側の「新規作成」をクリックします。Module1と表示されます。この名前は適当にわかりやすく変更してもよいです。mod_testとしてみました。 ③ このmod_testが開くので、そこに、下記のマクロをコピペしてください。 REM * BASIC * Option Explicit Sub set_value Dim sSql As String Dim oDraw As Object Dim oForm As Object Dim oResult As Object Dim sValue As String Dim oTextbox2 As Object oDraw=ThisComponent.getDrawPage() oForm=oDraw.getForms().getByName("form") sSql ="select ""商品名"" from ""t_test"" where ""ID"" = '" & oForm.getByName("textbox1").text & "';" oResult = ThisDataBaseDocument.DataSource.getconnection("","").createstatement.executequery(sSql) ' msgbox(sSql) While oResult.next() sValue = oResult.getString(1) Wend ' msgbox( sValue) oTextbox2 = oForm.getByName( "textbox2" ) oTextbox2.Text = sValue End Sub ④ このマクロを保存します。もし、保存ボタンがグレーアウトしているばあいは、base本体を上書き保存してください。そうするとマクロの保存ボタンも有効になります。 ⑤ form上のtextbox1をダブルクリックして「イベント」タブをクリックします。「フォーカスを失った時」の右にある「…」ボタンをクリックし、割当の下の「マクロ」ボタンをクリックします。先ほどコピペしたマクロが表示されます。set_valueを選択し、「OK」をクリックします。 ※ test>mod_test>set_valueとたどります。 ⑥ 念の為にベースを上書き保存します。 ⑦ f_testをダブルクリックで開いて、 textbox1に「001」を入力しエンターキーを押してフォーカスをtextbox1から外します。textbox2に「リンゴ」と表示されれば成功です。 失敗する場合は、何らかのメッセージがでます。 がんばってみてください。 以上 On 2017年04月01日 20:25, 福永ケンセイ wrote: よろしくお願いします。 下記のようにテーブル名「果物コード表」を作成 県コード 県名 1 メロン 2 バナナ テキストボックスに果物コード 「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] Re: [ja-users] BaseでエクセルのVLOOKUPのような機能をフォームで使いたい
福永様 もうひとつ、 http://calibreblo.blogspot.jp/2011/07/blog-post.html On 2017年04月01日 20:25, 福永ケンセイ wrote: よろしくお願いします。 下記のようにテーブル名「果物コード表」を作成 県コード 県名 1 メロン 2 バナナ テキストボックスに果物コード 「1」を入力すると隣のボックスに「メロン」と出るようにしたい。 どなたかわかる方がいれば教えていただきませんか。 = 志義ゼミナール・志義どっとPC 代表 堀 正和 -- 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のような機能をフォームで使いたい
福永様 JA福岡さんがbaseのマニュアルを公開されています。 リストボックスやコンボボックスの項目が参考になるかも。 http://www.ja-fukuoka.or.jp/pdf/libre/Libreoffice_BASE_practice.pdf#search=%27base+%E3%82%B3%E3%83%B3%E3%83%9C%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%27 私もやってみようと思いますが、その前に、情報のみお知らせしておきます。 On 2017年04月01日 20:25, 福永ケンセイ wrote: よろしくお願いします。 下記のようにテーブル名「果物コード表」を作成 県コード 県名 1 メロン 2 バナナ テキストボックスに果物コード 「1」を入力すると隣のボックスに「メロン」と出るようにしたい。 どなたかわかる方がいれば教えていただきませんか。 == 志義ゼミナール・志義どっとPC 代表 堀 正和 -- 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のような機能をフォームで使いたい
vlookupを使います。 A4に1と入れるとしてB4はこんな感じ A B 1 県コード 県名 2 1 メロン 3 2 バナナ 4 1 =vlookup(A4,A2:B3,2) 樋口 On 2017/04/01 20:25, 福永ケンセイ wrote: よろしくお願いします。 下記のようにテーブル名「果物コード表」を作成 県コード 県名 1 メロン 2 バナナ テキストボックスに果物コード 「1」を入力すると隣のボックスに「メロン」と出るようにしたい。 どなたかわかる方がいれば教えていただきませんか。 -- 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