Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: anmaroso en 12 de Octubre 2015, 16:39
-
Public Class FTRANSF_C
Dim vpf1 As Date
Dim strcnn As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\GESTION\GESTION.mdb"
Dim cnn As OleDb.OleDbConnection
' Dim orden As OleDb.OleDbCommand
Dim da As OleDb.OleDbDataAdapter
Dim ds As DataSet
Private Sub FTRANSF_C_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
vpf1 = FTRANSF.vpf
MsgBox(vpf1)
FTRANSF.Close()
End Sub
Private Sub vencimiento(ByVal vpf1 As Date)
cnn = New OleDb.OleDbConnection(strcnn)
OleDbSelectCommand1.CommandText = "SELECT TFACTURASR.VENCIMIENTO, " & _
"TPROVEEDORES.NOMBRE,TFACTURASR.IMPORTE,TFACTURASR.IMPORTET " & _
"TFACTURASR.FACTURANE,TFACTURASR.CONCEPTOP,TFCTURASR.FECHAE, " & _
"TFACTURASR.FACTURANR,TFACTURASR.FECHAP " & _
"FROM TFACTURASR INNER JOIN TPROVEEDORES ON " & _
"TPROVEEDORES.CLAVE = TFACTURASR.CPROVEEDOR " & _
"WHERE TFACTURASR.VENCIMIENTO =" & vpf1 & " " & _
"AND TFACTURASR.NOPAGAR = 0 AND TFACTURASR.PAGADA = FALSE " & _
"AND TPROVEEDORES.NOPAGAR = 0 AND TFACTURASR.FPAGO LIKE '" & 4 & "%'" & _
"ORDER BY TFACTURASR.VENCIMIENTO, TPROVEEDORES.NOMBRE"
ds = New DataSet
cnn.Open()
da = New OleDb.OleDbDataAdapter
OleDbSelectCommand1 = New OleDb.OleDbCommand
OleDbUpdateCommand1 = New OleDb.OleDbCommand
OleDbInsertCommand1 = New OleDb.OleDbCommand
OleDbDeleteCommand1 = New OleDb.OleDbCommand
da.SelectCommand = OleDbSelectCommand1
da.UpdateCommand = OleDbUpdateCommand1
da.InsertCommand = OleDbInsertCommand1
da.DeleteCommand = OleDbDeleteCommand1
OleDbSelectCommand1.Connection = OleDbConnection1
OleDbUpdateCommand1.Connection = OleDbConnection1
OleDbInsertCommand1.Connection = OleDbConnection1
OleDbDeleteCommand1.Connection = OleDbConnection1
da.Fill(ds, "TPROVEEDORES", "TFACTURASR")
DG1.DataSource = ds.Tables("TPROVEEDORES", "TFACTURASR")
DG1.Columns("VENCIMIENTO").HeaderText = "VENCIMIENTO"
DG1.Columns("NOMBRE").HeaderText = "NOMBRE"
DG1.Columns("IMPORTE").HeaderText = "IMPORTE"
DG1.Columns("IMPORTET").HeaderText = "IMPORTET"
DG1.Columns("FACTURANE").HeaderText = "FACTURANE"
DG1.Columns("CONCEPTOP").HeaderText = "CONCEPTOP"
DG1.Columns("FECHAE").HeaderText = "FECHAE"
DG1.Columns("FACTURANR").HeaderText = "FACTURANR"
DG1.Columns("FECHAP").HeaderText = "FECHAP"
DG1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
End Sub
Private Sub BS_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BS.Click
Me.Close()
End Sub
End Class
Buenas tardes.
Quisiera saber si el código precitado es correcto para pasar datos a un DataGridView, basado en una consulta con variable incluida.
El código está basado siguiendo las instrucciones de un libro y a parte de que no me funciona, creo que es excesivo... tiene que haber algo más conciso.
Muchas gracias y saludos.
-
Hola en principio trasladar el contenido de una tabla de una base de datos access a un datagridview de visual Basic no debería ser complicado.
El ejemplo para hacerlo sería este. Tenemos una tabla "items" en una base de datos de Access
Declaramos lo siguiente:
Imports System.Data.OleDb
Public Class Form1
'Cambiar "C:\Users\Jimmy\Documents\Merchandise.accdb" por la ruta donde se encuentre el archivo con la base de datos access
Dim connString As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\Jimmy\Documents\Merchandise.accdb"
Dim MyConn As OleDbConnection
Dim da As OleDbDataAdapter
Dim ds As DataSet
Dim tables As DataTableCollection
Dim source1 As New BindingSource
El código para un botón que haga que se muestre el contenido de la tabla en el datagridview:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MyConn = New OleDbConnection
MyConn.ConnectionString = connString
ds = New DataSet
tables = ds.Tables
da = New OleDbDataAdapter("Select * from [items]", MyConn) 'Cambiar items y poner el nombre de tabla que corresponda
da.Fill(ds, "items") 'Cambiar items y poner el nombre de tabla que corresponda
Dim view As New DataView(tables(0))
source1.DataSource = view
DataGridView1.DataSource = view
End Sub
Saludos
-
Buenas tardes.
Gracias por contestar, lo que me pasa es que es una consulta en la que el Where compara un campo de la tabla con una variable y aquí es donde me falla pues no sé donde poner la variable ya que no me muestra registros.
Gracias y saludos.
-
Hola, en este hilo hay ejemplos de consultas con where https://www.aprenderaprogramar.com/foros/index.php?topic=656 y quizás te puedan servir de referencia
Saludos
-
Muchas gracias Alex.
Lo voy a consultar.
-
Hola Alex.
Buenos días.
El enlace que pusiste no me funcionó porque era para SQLServer y yo uso el Access.
Después de buscar mucho, al fin, encontré la solución a la consulta. La pongo a continuación por si es de utilidad a alguien.
"WHERE (((TPROVEEDORES.NOPAGAR)=0) AND " & _
"((TFACTURASR.NOPAGAR)=0) AND " & _
"((TFACTURASR.FPAGO) Like '4%') AND " & _
"((TFACTURASR.VENCIMIENTO) = Datevalue('" & vpf1 & "'))) "
Con Datevalue('" & vpf1 & "') ya me funciona la consulta, vpf1 es una variable de tipo DateTime.
Ahora me surge otro problema con los formularios, que ya me pasó con el de MENU.
Si ejecuto la aplicación desde el formulario que contiene la consulta funciona bien, pero si la ejecuto desde el FINICIO>>>>MENU ya no funciona y no es por la consulta sino por el formulario.
La verdad es que ya no entiendo nada.