Imports System.Data.OleDb
Public Class FTestDB
Dim MiConexion As New OleDbConnection
Dim MiDatos As New DataSet
Dim NombreTablaEnDB As String
Private Sub FGestionStock_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
CargarLaTabla()
End Sub
Private Sub CargarLaTabla()
'Dim NombreDBCompleto As String = "D:\Tmp\TestAccesDBSQLExpress\MonStock2003.mdb" ' MiExistencia
'MiConexion.ConnectionString = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=" & NombreDBCompleto & ";" ' Exécuter en x86
Dim NombreDBCompleto As String = "D:\Tmp\TestAccesDBSQLExpress\MonStock2013.accdb" ' MiExistencia
MiConexion.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & NombreDBCompleto & ";" ' Exécuter en x64
Dim UnaTabla As New DataTable
Dim Consulta As String
NombreTablaEnDB = "TProduit" ' este es LaTablaQueMeGusta, TProductos
Consulta = "SELECT * FROM " & NombreTablaEnDB
Dim MiAdapter As New OleDbDataAdapter(Consulta, MiConexion)
MiAdapter.Fill(UnaTabla)
UnaTabla.TableName = NombreTablaEnDB
MiDatos.Tables.Add(UnaTabla)
'DGVTest es un DataGridView
DGVTest.DataSource = UnaTabla ' Para ejemplo, todos campos
'CBTest es un ComboBox
CBTest.DataSource = UnaTabla
CBTest.DisplayMember = "Article" ' este esElNombredelCampoQueMeGustaAqui, articulo
' *** Para introducción automática
CBTest.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest
CBTest.AutoCompleteSource = AutoCompleteSource.CustomSource
Dim DatosParaAutoCompleteSource As New AutoCompleteStringCollection()
For I As Integer = 0 To UnaTabla.Rows.Count - 1
DatosParaAutoCompleteSource.Add(UnaTabla.Rows(I).Item("Article"))
Next I
CBTest.AutoCompleteCustomSource = DatosParaAutoCompleteSource
' ***
'LBTest es un ListBox
LBTest.DataSource = UnaTabla
LBTest.DisplayMember = "Article" ' este es ElNombredelCampoQueMeGustaAqui, articulo
'TBTest es un TextBox
TBTest.DataBindings.Add("Text", UnaTabla, "Stock") ' este es ElNombredelCampoQueMeGustaAqui, este es la cuantidad de articulos
MiAdapter.Dispose()
MiConexion.Close()
MiConexion.Dispose()
End Sub
' El bloque de gestión de lectura. Un solo procedimiente evento responde a 4 fuentes de Click : BPrimero, BAnterior, BSiguiente y BUltimo
Private Sub LecturaCircular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BUltimo.Click, BAnterior.Click, BSiguiente.Click, BPrimero.Click
' No es necesario intentar un movimiento si el DataSet no contiene ninguna tabla.
If MiDatos.Tables.Count > 0 Then
' El BindingContext pertenece a un contenedor, el formulario en este caso.
With Me.BindingContext(MiDatos.Tables(NombreTablaEnDB))
' Modificacion de la propiedad Position segun el boton seleccionado.
Select Case sender.Name
Case "BPrimero"
.Position = 0
Case "BAnterior"
If .Position = 0 Then
.Position = .Count - 1 ' Lectura circular (como un reloj pero al revés)
Else
.Position -= 1
End If
Case "BSiguiente"
If .Position = .Count - 1 Then
.Position = 0 ' Lectura circular (como un reloj)
Else
.Position += 1
End If
Case "BUltimo"
.Position = .Count - 1
End Select
End With
End If
End Sub
End Class