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

classic Classic list List threaded Threaded
3 messages Options
福永ケンセイ 福永ケンセイ
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

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

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

Dim sSql As String
1)この部分は配列の設定だと思います
        Dim oDraw As Object
        Dim oForm As Object
        Dim oResult As Object
        Dim sValue As String
        Dim oTextbox2 As Object

2)この部分はフォームの読み込みの設定だと思います
        oDraw=ThisComponent.getDrawPage()
        oForm=oDraw.getForms().getByName("form")

3)この部分はbasicでSQl文の設定でIDと同じtexxbox1の値の読み込みだと思います

        sSql ="select ""商品名"" from ""t_test"" where ""ID"" =  '" &
oForm.getByName("textbox1").text & "';"

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

5)この部分はループ文だと思いますが よくわかりません
下記a~bの構文の意味が分かりません
      a).next()
      B)oResult.getString(1)

' msgbox(sSql)

        While oResult.next()
        sValue = oResult.getString(1)
        Wend

6)この部分はtextboox2の値を変数に入れていると思いますが?
' msgbox( sValue)
        oTextbox2 = oForm.getByName( "textbox2" )
        oTextbox2.Text = sValue


エラーが発生したのは 4)の部分で
BASICランタイムエラー 変数の未定義が発生しました
よろしくお願いします。

--
Unsubscribe instructions: E-mail to [hidden email]
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
Takeshi Abe Takeshi Abe
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

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

福永さん

On Wed, 5 Apr 2017 21:12:54 +0900, 福永ケンセイ <[hidden email]> 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 [hidden email]
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

志義ゼミ 志義ゼミ
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

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, 福永ケンセイ <[hidden email]> 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 [hidden email]
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

Loading...