actualizar sql en datareport
Publicado por cristi (3 intervenciones) el 07/11/2007 10:07:58
hola, ya hice ésta pregunta ayer, pero no debía ecplicarme bien....
tengo un datareport y un dataenvironment. en el dataenvironment creo la conexión. luego tengo un objeto connection y una instrucción sql (un comando). tengo varias cajas de texto, y las enlazo al campo de la tabla que quiero.
Hasta aquí, genial, funciona muy bien.
el problema viene cuando desde el formulario, le digo al usuario que seleccione los datos de búsqueda. Me da una sql distinta, en funcion de lo que quiera. ya que es una sql anidada.
Ahora viene el problema. no me funciona el siguiente código, aunque no me da errores. me imprime el primer informe, con la primera consulta.
----------------------------------------
Dim cadena As String
Dim sql As String
Dim path As String
path = App.path & "\basededatos.mdb"
Set conex = New ADODB.Connection
Set record = New ADODB.Recordset
cadena = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path & ";Persist Security Info=False"
conex.ConnectionString = cadena
conex.Open cadena
DataReport3.Refresh
sql = TxtConsulta.Text
record.LockType = adLockOptimistic
record.CursorLocation = adUseClient
record.CursorType = adOpenDynamic
record.Open sql, conex
With DataReport3
Set .DataSource = Nothing
.DataMember = ""
'Set .DataSource = record.DataSource
Set DataReport3.DataSource = record
Dim i As Integer
For i = 1 To record.RecordCount - 1
.Sections("Sección1").Controls.Item("Texto1").DataMember = ""
.Sections("Sección1").Controls.Item("texto1").DataField = record.Fields("Razon_Social")
Next i
End With
DataReport3.Show
¿Qué hago mal? gracias.
tengo un datareport y un dataenvironment. en el dataenvironment creo la conexión. luego tengo un objeto connection y una instrucción sql (un comando). tengo varias cajas de texto, y las enlazo al campo de la tabla que quiero.
Hasta aquí, genial, funciona muy bien.
el problema viene cuando desde el formulario, le digo al usuario que seleccione los datos de búsqueda. Me da una sql distinta, en funcion de lo que quiera. ya que es una sql anidada.
Ahora viene el problema. no me funciona el siguiente código, aunque no me da errores. me imprime el primer informe, con la primera consulta.
----------------------------------------
Dim cadena As String
Dim sql As String
Dim path As String
path = App.path & "\basededatos.mdb"
Set conex = New ADODB.Connection
Set record = New ADODB.Recordset
cadena = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path & ";Persist Security Info=False"
conex.ConnectionString = cadena
conex.Open cadena
DataReport3.Refresh
sql = TxtConsulta.Text
record.LockType = adLockOptimistic
record.CursorLocation = adUseClient
record.CursorType = adOpenDynamic
record.Open sql, conex
With DataReport3
Set .DataSource = Nothing
.DataMember = ""
'Set .DataSource = record.DataSource
Set DataReport3.DataSource = record
Dim i As Integer
For i = 1 To record.RecordCount - 1
.Sections("Sección1").Controls.Item("Texto1").DataMember = ""
.Sections("Sección1").Controls.Item("texto1").DataField = record.Fields("Razon_Social")
Next i
End With
DataReport3.Show
¿Qué hago mal? gracias.
Valora esta pregunta


0