none
データベースから読込んだ数字をInteger型にしたい RRS feed

  • 質問

  •  

    VB2008 Express Edition  Access2007を使っています。

     

     データベースの テーブル(main)からDateTimePickerを使って日時を選択して、ID(s)を出し、

    s を Integer型にして グラフを作る時に  For  ? to ? の?の部分に入れたいと思い  

    試しにMsgBoxに数字が出るか確認をしたのですが、エラーが出てしまいます。

     

    Form1に Button1、DateTimePicker を配置して

    データベース内容は、この様な場合

    main

    ID   日付     個数
    1  2008/11/01   300
    2  2008/11/02   400

     

     

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

     

    Dim Cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C: t.mdb")

    Dim s As OleDbCommand = Cn.CreateCommand

    Dim Table As New DataTable

    Dim time As String

     

    time = DateTimePicker1.Value.Date.ToShortDateString

     

    s.CommandText = "SELECT  ID FROM main where  日時= #" & time & " #"

     

    Dim i AS Integer

     i=s.ToString  ←ここで エラー

    MsgBox(i)

     

    エラー内容は、String "System.Data.OleDb.OleDbCommand" から型 'Integer' への変換は無効ですと出ます。

     

    VB始めて 1ヶ月くらいで どこをどうすれば良いのか解らない状態です。

    なにとぞ ご教授お願いします。

    2008年11月8日 7:43

回答

  • 別のスレッド「DateTimePickerを2つ使いデータベースから、選んだ範囲のID
    を呼び出して、そこから各IDにある、データを使いたい」の続きですよね?

     

    それを知らない人は、何故質問のようなことをするのか理解困難です。関連を書
    いておくようお願いします。

     

    で、回答ですが、s は OleDbCommand のオブジェクトですから、それには選んだ
    ID 情報は入っておらず、どのようにしても取得できません。

     

    SELECT クエリで抽出された ID のデータは Table の中にありますので、そこか
    ら取得するのです。

    2008年11月8日 9:34