a ver si a alguien se le dan bien los recordsource
hola , paso a comentaros un problemilla que tengo que no se muy bien porque puede ser, se trata de un formulario que debe contener campos de varias tablas para consulta solo, he decidido hacer un pequeño formulario intermedio que pida algunos datos para filtrar lo que se presentará, lo tipico, fechas, tipos y cosas asi, la cuestion es que lo hago de la siguiente manera, hago una cadena sql (una consulta) concatenando las partes fijas con las partes cambiantes y despues simplemente abro el formulario en cuestion diciendole que el recordsource será esa cadena(la consulta), pero por alguna razon le dato que deberia de coger automaticamente del formulario intermedio, por ejemplo la fecha, me la vuele a preguntar al cargar el formulario como en un inbox , no se si alguien le habrá ocurrido alguna vez...os dejo el codigo para que le hecheis un vistazo a ver si veis el fallo que me voy a volver loco, y gracias.
Private Sub Comando3_Click()
Dim dbs As Database
Dim rst As Recordset
Dim SQL As String
Dim sql_fecha As String
Dim where As String
Dim stLinkCriteria As String
SQL = "SELECT Tabla_For_Con.ID_curso, Tabla_For_Con.NombreCurso, Tabla_For_Con.tipoevento, Tabla_For_Con.Solicitado,"
SQL = SQL + " Tabla_For_Con.Aprobado, Tabla_For_Con.Rechazado, Tabla_For_Con.Observaciones, Tabla_For_Con.Importe,"
SQL = SQL + " Tabla_For_Con.Costehoras, Tabla_For_Con.Subvencionado, Tabla_For_Con.SubvencionadoPor, Tabla_For_Con.OrganizaHospi,"
SQL = SQL + " Tabla_For_Con.OrganizaCuria, Tabla_For_Con.OrganizaOtros, tabla_solicitadopor.servicio, Tabla_fechas.Fecha_ini,"
SQL = SQL + " Tabla_fechas.Fecha_fin, Tabla_fechas.Fecha_Indefinida, Tabla_For_Con.anyo_curso"
SQL = SQL + " FROM (Tabla_For_Con INNER JOIN Tabla_fechas ON Tabla_For_Con.ID_curso = Tabla_fechas.ID_curso) INNER JOIN tabla_solicitadopor"
SQL = SQL + " ON Tabla_For_Con.ID_curso = tabla_solicitadopor.id_curso"
SQL = SQL + " WHERE ( "
If IsNull(Me.fechaorigen.Value) Then
MsgBox ("fecha introducida no valida")
Else
sql_fecha = "tabla_fechas.fechaini > CDate('" & Me.fechaorigen.Value & "') ) ORDER BY tabla_for_con.nombrecurso;"
End If
Select Case Me.Marco8
Case 1
where = sql_fecha
Case 2
where = " tabla_for_con.tipoevento = " & Me.tipoelegido & ") ORDER BY tabla_for_con.nombrecurso;"
End Select
SQL = SQL & where
MsgBox (SQL)
stDocName = "form_prueba"
MsgBox ("stdocname")
DoCmd.Close
MsgBox ("close")
DoCmd.OpenForm stDocName, , , stLinkCriteria
MsgBox ("stlinkcriteria")
Form_form_prueba.RecordSource = SQL
MsgBox ("record")
End Sub
|