Access のデータを VCのコンボボックスに表示 – 固定ページ 2 – プログラミング – Home

Access のデータを VCのコンボ...
 
通知
すべてクリア

[解決済] Access のデータを VCのコンボボックスに表示

固定ページ 2 / 2

Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

> hWnd = ( HWND* )GetDlgItem(IDC_COMBO2);
> AD.ComboSet(TableName, hWnd);

CComboBox *pCombo = ( CComboBox* )this->GetDlgItem( IDC_COMBO2 );
AD.ComboSet(TableName, pCombo);

>bool CAdoOperation::ComboSet(const CString TableName, HWND* hWnd)
bool CAdoOperation::ComboSet( const CString TableName, CComboBox* pCombo )

>   pField = pFields->Item[ 0L ];
だと、社員番号ですが?

>   pCombo = (CComboBox *)GetDlgItem(*hWnd, IDC_COMBO2);
削除

>if ( m_pConnect ) m_pConnect.Release();
ここでReleaseするのは不味い気もする。
(Openでm_pConnectをCreateInstanceしているので。)

というか、もう最初のコードは全てやめてしまったほうがいい気がしますが。
(中途半端に私のやつと混ぜてもうまいこと組み合わせれないでしょう)


返信引用
こまったちゃん
 こまったちゃん
(@こまったちゃん)
ゲスト
結合: 18年前
投稿: 39
Topic starter  

アドバイスありがとうございます。

int a = pCombo->AddString(value);
でvalueには 田中 と入って 戻り値のエラー確認(CB_ERRとCB_ERRSPACE)
をしても正常に終了しているのですが、コンボボックスには表示されないです。

もうちょっとがんばりたいのでよろしくお願い致します。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

> コンボボックスには表示されないです。
とは?
コンボボックスのリストに追加するのですよね?
コンボボックスのテキストに表示させたいのでしょうか?(その場合どの値を入れるの?)


返信引用
こまったちゃん
 こまったちゃん
(@こまったちゃん)
ゲスト
結合: 18年前
投稿: 39
Topic starter  

コンボボックスのリストに表示です。

もしかして、私の伝え方が悪いせいで多大な迷惑をかけてるかも
と思い、環境をもう一度書きます。

■動作環境      :WindowsXP
■開発環境      :Visual C++6.0(ダイアログベース)
■コンボボックス作成方法:ダイアログで作成(作成後は何もいじっていない)
■開発環境 :Visual C++6.0
■データベース :Access2000(ADO接続)

私の
> コンボボックスには表示されないです。
発言は画面イメージのようにコンボボックスに表示されないという事です。

画面イメージ
ダイアログ名 :社員
コンボボックス:社員名(田中・佐藤・井上)と表示
※画面は田中を選択している時の例 

|----------------------------|
|社員名 |
|----------------------------|
| |
| 社員 |
| |----------------| |
| |田中 | |
| |----------------| |
| |田中      | |
| |佐藤 | |
| |井上 | |
| |________________| |
|____________________________|

色々ご迷惑をかけてしまい申し訳ありません。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

>valueには 田中 と入って
はどのように確認されましたか?デバッガ?


返信引用
こまったちゃん
 こまったちゃん
(@こまったちゃん)
ゲスト
結合: 18年前
投稿: 39
Topic starter  

VC++6.0でF10を押下してステップ実行をして値の確認をしました。

_bstr_t value( pField->Value.bstrVal );
このステップを過ぎると

シンボル名   値
value      {田中 (1)}
となっています。

pCombo->AddString(value);
の value をクイックウオッチで確認しても{田中 (1)}となっています。

コンボボックスのリストには何も表示されないので下記の画面状況の状態です。

画面状況

|----------------------------|
|社員名 |
|----------------------------|
| |
| 社員 |
| |----------------| |
| |  ▼| |
| |----------------| |
|          |
|          |
|          |
|          |
|____________________________|


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

▼を押しても出ないですか?
もしかして、リソースでリストの幅を小さくしすぎているとか。

ためしに、今までのコード関係なく、InitDialogに

CComboBox* pCombo = ( CComboBox* )this->GetDlgItem( IDC_COMBO2 );
pCombo->AddString( _T( TEST ) );

として、表示されるか確認してみてください。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

あ、ひょっとしたら、コンボボックスのタイプの違いなのかも。

一般的にコンボボックスといえば「ドロップダウン」になるのですが、
> 2006/09/14(木) 12:57:22
のような表示をしたいというならば、「標準」にしないとだめです。

この設定は、リソースエディタで、コンボボックスを選択し、右クリックからプロパテ
ィを選択して、スタイルタブのタイプで変更できます。


返信引用
こまったちゃん
 こまったちゃん
(@こまったちゃん)
ゲスト
結合: 18年前
投稿: 39
Topic starter  

BOOL CAppointmentDlg::OnInitDialog()
{
// TODO: 特別な初期化を行う時はこの場所に追加してください。

CComboBox* pCombo = ( CComboBox* )this->GetDlgItem( IDC_COMBO2 );
pCombo->AddString( _T( TEST ) );
return TRUE; // TRUE を返すとコントロールに設定したフォーカスは失われません。
}

で試しましたがやはり表示されません。

コンボボックスの幅ですが、ダイアログで作成しているので幅はデフォルトのまま
です。
絵の描き方が下手で済みません。
コンボボックスのスタイルのタイプはドロップダウン リストでやります。

コンボボックスのプロパティは何もいじっていません。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

再度
>▼を押しても出ないですか?

CComboBox* pCombo = ( CComboBox* )this->GetDlgItem( IDC_COMBO2 );
pCombo->AddString( _T( TEST ) );
pCombo->SetCurSel( 0 );

とすると、テキストボックスに TEST という文字は設定されますか?


返信引用
こまったちゃん
 こまったちゃん
(@こまったちゃん)
ゲスト
結合: 18年前
投稿: 39
Topic starter  

>CComboBox* pCombo = ( CComboBox* )this->GetDlgItem( IDC_COMBO2 );
> pCombo->AddString( _T( TEST ) );
> pCombo->SetCurSel( 0 );

>とすると、テキストボックスに TEST という文字は設定されますか?

設定されました。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

>もしかして、リソースでリストの幅を小さくしすぎているとか。
これ間違えました。高さのことです。

リソースエディタ上で、コンボボックスを選択して▼部分をクリックする
(最初から▼部分をクリックしても同じ)と
ドロップダウンリストの部分を含めた大きさを設定できます。
その大きさが、コンボボックスのテキストボックスの大きさと同じになっていないです
か?

□::::::::□::::::::□
::┌─────┬─┐::
::│     │▼│::
::└─────┴─┘::
□         □
::         ::
::         ::
::         ::
□::::::::■::::::::□

上のように表示される大きさ。


返信引用
こまったちゃん
 こまったちゃん
(@こまったちゃん)
ゲスト
結合: 18年前
投稿: 39
Topic starter  

Blueさんありがとうございます。

2006/09/14(木) 15:02:42 のアドバイスでコンボボックスの表示が
できました。

まだ聞きたい事があるのですが
お題の『Access のデータを VCのコンボボックスに表示』の件は解決したので
解決マークをつけます。ありがとうございます。
またよろしくお願い致します。


返信引用
固定ページ 2 / 2

返信する

投稿者名

投稿者メールアドレス

タイトル *

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