
Recordset ADODB y Access 2010
Publicado por Martín (2 intervenciones) el 16/06/2016 19:23:17
Buenas:
Soy nuevo en el foro y les quiero consultar a cerca de un problema, lleno un recordset ADO para usarlo como origen de datos de un MSHFlexGrid en vb.net, el echo es que, lo cargo sin problemas, tengo una sub rutina para esto. Tengo un botón que agrega un registro a una tabla que forma parte de la consulta que llena el Recordset, cuando quiero refrescar los datos, es decir volver cargar el recordset, para presentar los datos actualizados con el nuevo registro en el MSHFlexGrid, me trae el mismo resultado que antes del agregado, lo mismo me pasa cuando elimino. Como debería forzar la consulta para que me traiga los datos correctos? les paso mi codigo y desde ya les agradezco. Saludos.
Rutina de actualización del grid:
Soy nuevo en el foro y les quiero consultar a cerca de un problema, lleno un recordset ADO para usarlo como origen de datos de un MSHFlexGrid en vb.net, el echo es que, lo cargo sin problemas, tengo una sub rutina para esto. Tengo un botón que agrega un registro a una tabla que forma parte de la consulta que llena el Recordset, cuando quiero refrescar los datos, es decir volver cargar el recordset, para presentar los datos actualizados con el nuevo registro en el MSHFlexGrid, me trae el mismo resultado que antes del agregado, lo mismo me pasa cuando elimino. Como debería forzar la consulta para que me traiga los datos correctos? les paso mi codigo y desde ya les agradezco. Saludos.
Rutina de actualización del grid:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Public Sub ActGrid(ByVal NroRem As Integer)
My.Forms.frmNuevaRemesa.AxMSHFlexGrid21.ClearStructure()
Dim con As New ADODB.Connection
Dim rsRem As New ADODB.Recordset
Dim comando As New ADODB.Command
Dim tConn As String
Dim DirApp As String
DirApp = My.Application.Info.DirectoryPath & "\Remesas.accdb"
con.ConnectionString = "Provider=MSDataShape;data Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " & DirApp
con.Provider = "MSDataShape"
tConn = "SHAPE {SELECT tCompCod, tCompRemesa, tCompPCta, PCDescripcion, PRazSoc, tCompCodProv, tCompDesc, tCompObs, FORMAT(tCompImp, '$###,##0.00') AS ImpC, tRemNroText FROM ConsComp WHERE tCompRemesa = " & NroRem & "}" & _
"AS consulta APPEND ({SELECT tDetCodComp, tDetCentroCosto as CCosto, FORMAT(tDetImporte, '$###,##0.00') as Importe FROM tDetalle} as Detalle RELATE tCompCod TO tDetCodComp) as Detalle"
comando.CommandText = tConn
con.CursorLocation = ADODB.CursorLocationEnum.adUseClient
con.Open()
comando.ActiveConnection = con
rsRem = comando.Execute()
If Not (rsRem.EOF Or rsRem.BOF) Then
With My.Forms.frmNuevaRemesa.AxMSHFlexGrid21
.DataSource = rsRem
.set_ColWidth(0, 200)
.set_ColWidth(1, 0)
.set_TextMatrix(0, 3, "Cta. Cont.")
.set_TextMatrix(0, 4, "Concepto")
.set_TextMatrix(0, 5, "Proveedor")
.set_TextMatrix(0, 6, "Cod. Prov.")
.set_TextMatrix(0, 7, "Comprobante")
.set_TextMatrix(0, 8, "Destalle del gasto")
.set_TextMatrix(0, 9, "Imp. Comp.")
.set_ColWidth(2, 0)
.set_ColWidth(3, 800)
.set_ColWidth(4, 2500)
.set_ColWidth(5, 2500)
.set_ColWidth(6, 800)
.set_ColWidth(7, 1200)
.set_ColWidth(8, 2500)
.set_ColWidth(9, 1300)
.set_ColWidth(10, 0)
.set_ColWidth(0, 1, 0)
.set_ColWidth(1, 1, 900)
.set_ColWidth(2, 1, 900)
.SetColumnInBandInfo(1, 1, "CCosto", "C.Costo", False, 1, 3)
.set_ColAlignmentBand(1, 2, colAlignment:=7)
.set_ColAlignment(9, colAlignment:=7)
End With
End If
comando = Nothing
rsRem.Close()
rsRem = Nothing
con.Close()
End Sub
Valora esta pregunta


0