データベースのレコードの追加 – プログラミング – Home

データベースのレコードの追加
 
通知
すべてクリア

データベースのレコードの追加


天草 銀
 天草 銀
(@天草 銀)
ゲスト
結合: 23年前
投稿: 36
Topic starter  

お助け願いますm(_ _)m

windows2000
VC++6.0
MFC
ダイアログベース

売上伝票というデータベースがあります
それは伝票番号・得意先・商品名・数量・単価・金額・担当者コード・売上年月日という構成の
ものです

ダイアログ画面からこのデータベースに追加登録ができずに悩んでいます

現状はこうです
ダイアログ画面に上から

伝票番号エディットボックス  ID:IDC_EDIT1
タイプ:CString
メンバ:m_input1

得意先名コンボボックス ID:IDC_COMBO1
タイプ:CString
メンバ:m_combo1

商品名コンボボックス ID:IDC_COMBO2
タイプ:CString
メンバ:m_combo2

数量エディットボックス ID:IDC_EDIT2
タイプ:CString
メンバ:m_input2

単価エディットボックス ID:IDC_EDIT3
タイプ:CString
メンバ:m_input3

金額エディットボックス ID:IDC_EDIT4
タイプ:CString
メンバ:m_input4

担当者名コンボボックス ID:IDC_COMBO3
タイプ:CString
メンバ:m_combo3

ボタン1コ

そしてメニューバーのプロジェクト→プロジェクトへ追加→コンポーネントおよびコントロール
で以下の2つを追加しました
Microsoft ADO Data Control 6.0 (SP4) (OLEDB)
Microsoft DataGrid Control 6.0 (SP4) (OLEDB)

それぞれをダイアログ画面に貼り付けます

設定は以下の通りです
ADOの方は
ID:IDC_ADODC5
タイプ:CAdodc
メンバ:m_adodc5

DataGridの方は
ID:IDC_DATAGRID5
タイプ:CDataGrid
メンバ:m_grid5
プロパティの全ページでDataSourceをID:IDC_ADODC5にします

ボタンを押したタイミングでデータベースへ追加登録ができません

ソースは以下の通りです

void CSubDlg::OnButton1()
{
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください

CString strWk;
strWk = ";

GetDlgItemText(IDC_EDIT1, m_input1);
GetDlgItemText(IDC_EDIT2, m_input2);
GetDlgItemText(IDC_EDIT3, m_input3);
GetDlgItemText(IDC_EDIT4, m_input4);
GetDlgItemText(IDC_EDIT5, m_input5);
GetDlgItemText(IDC_COMBO1, m_combo1);
GetDlgItemText(IDC_COMBO2, m_combo2);
GetDlgItemText(IDC_COMBO3, m_combo3);

strWk = insert into 売上伝票(伝票番号,得意先名,商品名,数量,単価,金額,担当
者コード,売上年月日) values(';
strWk = strWk + m_input1;
strWk = strWk + ',';
strWk = strWk + m_combo1;
strWk = strWk + ',';
strWk = strWk + m_combo2;
strWk = strWk + ',';
strWk = strWk + m_input2;
strWk = strWk + ',';
strWk = strWk + m_input3;
strWk = strWk + ',';
strWk = strWk + m_input4;
strWk = strWk + ',';
strWk = strWk + m_combo3;
strWk = strWk + ',';
strWk = strWk + m_input5;
strWk = strWk + ');

UpdateData(TRUE);
m_adodc5.SetRecordSource(strWk);
m_adodc5.Refresh();
}

これで実行し それぞれ値を入れてボタンを押すと

『オブジェクトが閉じている場合は操作は許可されません』

というメッセージが出てデータベースへの追加登録ができません

なぜですか?? ご指導の程お願いいたしますm(_ _)m


引用解決済
トピックタグ
wood
 wood
(@wood)
ゲスト
結合: 23年前
投稿: 895
 

ADOのデータベース接続文字列は必要なかったんですか


返信引用
天草 銀
 天草 銀
(@天草 銀)
ゲスト
結合: 23年前
投稿: 36
Topic starter  

おはようございます
woodさんからのメールを見て MSDNで見てみましたがいまいち意味が理解できなくて・・・

> strConn{データ接続を指定します。} の部分が抜けていませんか

このことですが実際にどんなことを入れていいのかわからなくて・・・


返信引用
wood
 wood
(@wood)
ゲスト
結合: 23年前
投稿: 895
 

データを追加するデータベースは何かわかっていますか
DSN名 UID PSW など
つまりエラーメッセージはデータベースとアプリケーションが接続できていない
ことを示しているのではないでしょうか?


返信引用
クリリン
 クリリン
(@クリリン)
ゲスト
結合: 23年前
投稿: 175
 

失礼な質問かもしれませんが、
ADOコントロールのプロパティの全般で、接続のソースなどの設定は行われていますでしょうか?
もしくは、設定にミスは無いでしょうか?

余談ですが、strWk = strWk + m_input1;→strWK += m_input1;

strWk = strWk + m_input1;
strWk = strWk + ',';...

strWk.Format(insert into 売上伝票(伝票番号,得意先名,商品名,数量,単価,金額,
担当者コード,売上年月日) values(
'%s','%s','%s','%s','%s','%s','%s','%s',
m_input1, m_combo1, m_input2, m_input3,
m_input4, m_combo3, m_input5);
こういった使い方ができますので、参考にしてください。


返信引用
天草 銀
 天草 銀
(@天草 銀)
ゲスト
結合: 23年前
投稿: 36
Topic starter  

ちょっとわからなかったので調べてみましたが・・・
DSN:データソース名
UID:ユーザーID
PSW:パスワード?
であってますか?

この情報ってどこからわかるんですか?


返信引用
天草 銀
 天草 銀
(@天草 銀)
ゲスト
結合: 23年前
投稿: 36
Topic starter  

クリリンさんへ

プロパティの設定
(全般)
ODBCデータソース名を使用する』
のところで
『販売管理データベース』
を指定しています

(レコードソース)
Select * from 得意先マスター

というふうに設定しています

何か間違いがあるでしょうか?


返信引用
りんご
 りんご
(@りんご)
ゲスト
結合: 23年前
投稿: 28
 

ODBCデータソース名を使用する場合、
『販売管理データベース』をユーザDSNに登録していますか?
もししてなけでば、管理ツール→データソース(ODBC)でデータソースの登録をしてみてください。

レコードソースは、
コマンドタイプに「2ーadCmdTable」を選択し、
テーブル名に希望のテーブルを指定してください。


返信引用
天草 銀
 天草 銀
(@天草 銀)
ゲスト
結合: 23年前
投稿: 36
Topic starter  

りんごさんへ

>ODBCデータソース名を使用する場合、
>『販売管理データベース』をユーザDSNに登録していますか?
>もししてなけでば、管理ツール→データソース(ODBC)でデータソースの登録をしてみてくだ
>さい。

管理ツールというのはどこにあるのでしょうか?

>レコードソースは、
>コマンドタイプに「2ーadCmdTable」を選択し、
>テーブル名に希望のテーブルを指定してください。

(レコードソース)
コマンドタイプ
2-adCmdTable

テーブル名またはストアドプロシージャ名
売上伝票

に設定しました


返信引用
天草 銀
 天草 銀
(@天草 銀)
ゲスト
結合: 23年前
投稿: 36
Topic starter  

あっ!
ODBCでの登録は行っていますm(_ _)m


返信引用
駄犬
 駄犬
(@駄犬)
ゲスト
結合: 23年前
投稿: 59
 

> 管理ツールというのはどこにあるのでしょうか?

コントロールパネル


返信引用
駄犬
 駄犬
(@駄犬)
ゲスト
結合: 23年前
投稿: 59
 

> あっ!
> ODBCでの登録は行っていますm(_ _)m
失礼、見逃してました。(^^;


返信引用
天草 銀
 天草 銀
(@天草 銀)
ゲスト
結合: 23年前
投稿: 36
Topic starter  

りんごさんからの修正をし実行したら

『[Microsoft][ODBC Microsoft Access Driver]FROM句の構文エラーです』

というエラーメッセージが出ました

どこがいけないのでしょうか?


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました