none
VB2005からAccess2000へアクセスするプログラミング RRS feed

  • 質問

  • 古いバージョンのVBでは、

        Dim MyDatabase As Database
        Dim SQL As String
        Dim rstTopSeller As Recordset

    Dim SQL As String

        Set MyDatabase = OpenDatabase("XXXXX.mdb")
        SQL = "SELECT * FROM [TBL名] " & "ORDER BY [フィールド名1],[フィールド名2] DESC"
        Set rstTopSeller = MyDatabase.OpenRecordset(SQL)
        rstTopSeller.MoveLast
        rstTopSeller.MoveFirst
        If rstTopSeller.RecordCount > 0 Then
            Do
                If rstTopSeller.EOF Then Exit Do
          
                rstTopSeller.MoveNext
            Loop
        Else
            'レコードがゼロ件。
        End If
        rstTopSeller.Close

    VB2005では、どのようなプログラミングをするのですか?

    わかりやすく、何方かおしえてください。ナヤメルOL21才

    2006年9月19日 6:59

すべての返信

  •         Dim com As System.Data.OleDb.OleDbCommand
            com = New System.Data.OleDb.OleDbCommand
            com.Connection = OleDbConnection1
            Dim dr As System.Data.OleDb.OleDbDataReader
            OleDbConnection1.Open()
            com.CommandText = "SELECT * FROM [TBL名] " & "ORDER BY [フィールド名1],[フィールド名2] DESC"
            com.Connection = OleDbConnection1
            dr = com.ExecuteReader
            If dr.HasRows = False Then
                'レコードがゼロ件。
            End If
            While (dr.Read = True)
                'メソッド dim val as string = dr("フィールド名1")

         'debug.writeline(val) 等
            End While
            OleDbConnection1.Close()

            OleDbConnection1は先に作っておいてください

     

    2006年9月19日 13:44
  • 回答ありがとうございました。

    ツールボックスに  "DataSet"  はあるのですが  "DataConnector"  と  "DataNavigator"  が表示してありません。

    どのようにすれば、表示してくるのでしょうか?おしえてください。

     

    2006年9月20日 1:57
  •  VB2005初心者 さんからの引用

    回答ありがとうございました。

    ツールボックスに  "DataSet"  はあるのですが  "DataConnector"  と  "DataNavigator"  が表示してありません。

    どのようにすれば、表示してくるのでしょうか?おしえてください。

     

    ツール

    ツールボックスアイテムの選択

    .NET Frameworkコンポーネントの中から選択しチェックをつけてください。

    >"DataConnector" →OledbConection

    >"DataNavigator"→BindingNabigatorのことかな?

     

    2006年9月20日 10:24
  • ありがとうございます。いいぐあいにできました。

    また、質問なんですが 本当にすいません。

     TextBox.SelStart = 0
     TextBox.SelLength = Len(TextBox.Text)
     TextBox.SetFocus()

    上記のプログラミングはVB2005では、どうやるのですか?

    おしえてください。

     

     

    2006年9月21日 1:00
  •  VB2003から始めたので あまり自信はないですが

            TextBox1.SelectionStart = 0
            TextBox1.SelectionLength = Len(TextBox1.Text)
            TextBox1.Focus()

    これのことかな?

     

    2006年9月21日 1:19
  • 本当にありがとうございました。助かりました。

    また、何卒よろしくお願いいたします。

     

    2006年9月21日 1:40
  •  かずboo さんからの引用

            Dim com As System.Data.OleDb.OleDbCommand
            com = New System.Data.OleDb.OleDbCommand
            com.Connection = OleDbConnection1
            Dim dr As System.Data.OleDb.OleDbDataReader
            OleDbConnection1.Open()
            com.CommandText = "SELECT * FROM [TBL名] " & "ORDER BY [フィールド名1],[フィールド名2] DESC"
            com.Connection = OleDbConnection1
            dr = com.ExecuteReader
            If dr.HasRows = False Then
                'レコードがゼロ件。
            End If
            While (dr.Read = True)
                'メソッド dim val as string = dr("フィールド名1")

         'debug.writeline(val) 等
            End While
            OleDbConnection1.Close()

            OleDbConnection1は先に作っておいてください

     

    2006年9月27日 6:40
  • セレクトされたレコードの最初、最後にセットするには、どうしたらいいですか?

    レコード件数はどうしたらわかるのですか?

    同じ OleDbConnection1 を複数回使用しています。

    それと、プロパティに INDEX がないのですが、TextBox1.Text(0) のようにできないのですかね?

    宜しくお願いいたします。質問のしかたがブサイクですいません。

     

    2006年9月27日 6:51
  •  VB2005初心者 さんからの引用

    セレクトされたレコードの最初、最後にセットするには、どうしたらいいですか? 

    最初のデータや最後のデータを取得するには という事ですか?

     

    ADO.NETのほうが良いかも

            Dim ad As New OleDb.OleDbDataAdapter
            Dim com As New OleDb.OleDbCommand
            ad.SelectCommand = com
            com.Connection = OleDbConnection1
            com.CommandText =
    "SELECT * FROM [TBL名] " & "ORDER BY [フィールド名1],[フィールド名2] DESC"

            Dim ds As New DataSet
            ad.Fill(ds, "dat")
            OleDbConnection1.Close()
            Dim tb As DataTable = ds.Tables("dat")
            Dim cou As Integer = tb.Rows.Count 'これがデータ数
            If cou <= 0 Then
                'レコードがゼロ件。
            End If

            For Each r As DataRow In tb.Rows
                'Dim val As String = r("フィールド名1") 'メソッド
                'Debug.WriteLine(val)
            Next
            Me.BindingContext(tb).Position = Me.BindingContext(tb).Count - 1 '最後のデータにセット
            MsgBox(tb.Rows(Me.BindingContext(tb).Count - 1)("フィールド名1")) '最後のデータ取得
            Me.BindingContext(tb).Position = 0 '最初のデータにセット
            MsgBox(tb.Rows(0)("フィールド名1"))
    '最初のデータ取得

            'OleDbConnection1は先に作っておいてください()

     

    2006年9月28日 7:03