ODBC - Recordset ADODB y Access 2010

 
Vista:
sin imagen de perfil

Recordset ADODB y Access 2010

Publicado por Martín (2 intervenciones) el 16/06/2016 19:56:40
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:
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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder