質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.47%

  • VB.NET

    943questions

    Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

  • SQL Server

    605questions

    SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

  • VB

    309questions

    VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

VB データベース開発について

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 877

_LAGRANGE_

score 36

こんばんは。

日付、一言というカラムを持つテーブルを持つデータベースを作ったので、それをVBのフォームで表示させようとしています。


日付ラベル: [コンボボックス]

一言ラベル: [コンボボックス]

というふうにデザインしたのですが、

上のコンボボックスから日付を選択すると、その日付に対応する一言が自動で下のコンボボックスに表示できるようにしたいです。

今、同じテーブルの日付データと一言データからドラッグしてデータバインドをしていますが、うまく対応した表示になってくれません。

そもそもコンボボックスのデータバインドの4項目の意味がよくわからず、最初は対応した表示をしてくれるのですが何回も選択していると勝手に中身が書き換えられたりしてなおせませんでした。

質問は、データバインドの問題なのかソースの問題なのかということですが、

もしデータバインドの問題でしたら、

・データソース
・表示メンバー
・値メンバー
・選択された値
をどのようにいじればお互いに対応するデータが表示できるのか教えてください(o_ _)o))

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    2016/04/15 02:29

    こちらの質問が他のユーザから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

回答 2

checkベストアンサー

0

上のコンボボックスから日付を選択すると、その日付に対応する一言が自動で下のコンボボックスに表示できるようにしたいです

なにも難しく考えなくても、思っている通りコードを書けばいいです

上のコンボボックスから日付を選択すると

→上のコンボボックス(仮にComboBox日付とでもしましょう)から日付を選択すると=選択されている値が変わったら

Private Sub ComboBox日付_SelectedValueChanged(sender As Object, e As EventArgs) Handles ComboBox日付.SelectedValueChanged

  'やりたいことを書く

End Sub

その日付に対応する一言が自動で下のコンボボックスに表示

→その日付に対応する一言が自動で下のコンボボックス(仮にComboBox一言とでもしましょう)に表示

'ComboBox日付で選択された値(日付)を取る
Dim cb = DirectCast(sender, ComboBox)
Dim 日付 = cb.SelectedItem

'その値に対応する一言を取ってくる
'→日付を元にDBに値を問い合わせる

'問い合わせた結果(仮に一言とする)でComboBox一言の選択を変更する
Dim 一言 =  "踏み出せば、その一足が道となる。:アントニオ猪木"
ComboBox一言.SelectedText = 一言

ComboBox一言の選択を変更する時に

  • SelectedIndex
  • SelectedItem
  • SelectedText
  • SelectedValue

のどれを使うのか?はComboBox一言の選択肢をどう設定したのかによります
例えば

  • ComboBox日付とComboBox一言に同じものをバインドしてる

のなら、

  • 選択値を変えた方のSelectedIndexを他方のSelectedIndexに設定する

と対応した値が表示されるはずといった具合です
※バインドしているコレクションの中で互いに値が連携しているはずなので

あと聞かれていたのは

  • データソース:ComboBoxにバインドして表示させる値の塊(なんらかのコレクションオブジェクト)
  • 表示メンバー:DataSourceで指定されたコレクションのどの値を表示に使うか(String値:例えばバインドしたのがDBならカラム名)
  • 値メンバー:DataSourceで指定されたコレクションのどの値を選択値とするか(String値:例えばバインドしたのがDBならカラム名)
  • 選択された値:ComboBoxで選択された(選択する)ValueMemberに含まれる値

ということなので、やりたいことに合わせて設定してください

まずコントロール(ここではComboBoxですが)がどういう機能を持っていて、どう書けばどう動くのかを考えるようにした方がいいです

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/04/15 04:25

    ComboBox一言の選択を変更する時にと書きましたが、ComboBox日付の値を取る時も同じことです

    キャンセル

0

丸投げなので、以下を書いてみてください。

  • 作成したDBのスキーマ
  • 表示する部分のソース

ちなみにですが、もし僕ならば

id, datetime, comment

というスキーマ(DBの構造のことです) を作成し、datetime(日付)で検索します。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

関連した質問

同じタグがついた質問を見る

  • VB.NET

    943questions

    Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

  • SQL Server

    605questions

    SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

  • VB

    309questions

    VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。