BaseでエクセルのVLOOKUPのような機能をフォームで使いたい

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

BaseでエクセルのVLOOKUPのような機能をフォームで使いたい

よろしくお願いします。

下記のようにテーブル名「果物コード表」を作成

県コード 県名
 1 メロン
 2 バナナ

テキストボックスに果物コード
「1」を入力すると隣のボックスに「メロン」と出るようにしたい。
どなたかわかる方がいれば教えていただきませんか。

--
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
Takaaki Higuchi-2 Takaaki Higuchi-2
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

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 [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のような機能をフォームで使いたい

In reply to this post by 福永ケンセイ
福永様
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 [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のような機能をフォームで使いたい

In reply to this post by 福永ケンセイ
福永様

もうひとつ、
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 [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のような機能をフォームで使いたい

In reply to this post by 福永ケンセイ
福永様。
一応、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 [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

訂正>[ja-users] BaseでエクセルのVLOOKUPのような機能をフォームで使いたい

In reply to this post by 福永ケンセイ
すみません、ミス発見。
f_textとなっている箇所はf_testです。
チェックが甘かった。すみませんでした。

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

> よろしくお願いします。
>
> 下記のようにテーブル名「果物コード表」を作成
>
> 県コード 県名
>  1 メロン
>  2 バナナ
>
> テキストボックスに果物コード
> 「1」を入力すると隣のボックスに「メロン」と出るようにしたい。
> どなたかわかる方がいれば教えていただきませんか。
>

--
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...