Q1:「接続ボタン」を押すとエラーメッセージがこのように出てしまいます。
Q1-1:
アプリケーション開発チュートリアルの「エクセル連携導入チュートリアル」を練習しております。
このアプリケーションを動作確認し「接続ボタン」を押すとエラーメッセージがこのように出てしまいます。
"データベースのアクセス中にエラーが発生しました「データベースアクセス」(Exception:[Microsoft][ODBC Excel Driver}パラメータが少なすぎます。1を指定してくださ
い。)"
エラー箇所を探すには何を確認すればよいでしょうか?
A1-1:
「パラメータが少なすぎます」というメッセージですがまず、第一の可能性として、サンプルのエクセル表の項目名と接続ボタン押下時のSQL文の項目名が一致していないことが考えられます。
エクセル連携導入チュートリアルLesson.2のStep.3「エクセルのデータ一覧をSQL のselect コマンドを使って読み込む」の接続操作を確認して頂き、
---------------------------------
■接続元:ボタンコンポーネント
■接続先:データベースアクセスコンポーネント
■起動メソッド:
イベント番号を指定してSQL文を実行する(String,int)
<引数0>
説明:SQL文
取得方法:メソッド戻り値
コンポーネント:ラベル(KEY:エクセルデータ取得)
メソッド/値:ラベルのテキスト文字列を取得する
<引数1>
説明:イベント番号
取得方法:固定値
メソッド/値:1
--------------------------------と設定されていること
また上記<引数0>に指定されている[ラベル(KEY:エクセルデータ取得)]の「属性情報」の「Text」欄に
「select 氏名,派遣先,開始日,終了日,伝票番号 from "plan$"」
と正しく書いてあるかご確認ください。
エクセル表の項目名も念のためご確認ください。
Q1-2:
「パラメータが少なすぎます」というメッセージが出てしまう件ですが、確認致しましたがそれでも同じエラーメッセージが出てしまいます。次はどのあたりを確認すれば良いでしょうか?
A1-2:
よろしければ、途中までお作りになったアプリケーションをメールでお送り頂けないでしょうか。「パラメータが少なすぎます」というエラーが出ても、エラーログには詳細が現れないため、できればこちらで実行して確認させていただきたく存じます。
差支えなければ、どうかアプリケーションを添付ファイルでお送り下さい。
Q1-3:
大変お世話になっております。見ていただけば単純なミスだと思います(行を設定するべきところを列に設定したり)。 お手数おかけいたしますが宜しくお願いいたします。
A1-3:
アプリケーションお送り頂き有難うございました。エラーの原因は[ラベル(ID:9)]コンポーネントのTEXT欄の記述:
「select 氏名,派遣先,開始日,終了日,伝票番号 from "plan$"」中の「,」が「、」となっているためでした。
Q1-4:
ありがとうございました。おかげさまで、動作確認し”接続ボタン”は正常に動作して接続できました。それで、切断ボタンを押しても切断できないのですが…(切断ボタンを押すと”派遣一覧”は消えると思いますが)今度は何がいけないのでしょうか?申し訳ありませんが宜しくお願いいたします。
A1-4:
「エクセル連携導入チュートリアル」52P「Step8 アプリケーション終了時の処理」として、「エクセルファイルからの切断」と「各テーブルおよびガントチャートのデータクリア」の2つの処理を行っています。
つまり、「切断」と「テーブルのクリア」は一度には為されず、別々に処理の記述をする必要があります。
「エクセル連携導入チュートリアル」ではデータはSQL文で呼び出された後、テーブルデータとして一旦[テーブル]コンポーネントに設定されています。テーブル表として見えているものは、エクセルの表データそのものではありません。
エクセルの表自体を操作したり、見ている訳ではないので、切断しても[テーブル]コンポーネントのデータはそのまま残ります。もし、ビルダー上で変更したデータをエクセル表に反映させたい時は、SQL文等を使って更新を行うことになります。
この「エクセル連携導入」のアプリケーションではデータベースに接続して、SQL文の実行は一度だけなので、切断してもあまり変化は感じられませんが、例えば接続した後さらにもう一つSQL文を実行するようなアプリケーションでは、接続後にすぐ切断した場合、2回目のSQL文実行時にエラーとなります。
切断ボタンを押した時にテーブルデータをクリアしたい場合には、「アプリケーション終了時の処理」を「切断」ボタンにも接続します。