Rellenar datos en un control.
Hola amigo:
Tengo un problema que no consigo explicame y es el siguiente:
Tengo un formulario en access con dos botones de acción que hacen cosas parecidas, el caso es que en umbos botones, cambio el contenido de un control para que me diga en cada momento en que punto del código me encuentro, lo extraño es que con el código del botón 1 funciona correctamente, mientras que el código del control 2 asigna el valor al control pero no muestra más que el último valor asignado cuando acaba todo el proceso.
Lo hago con la propiedad caption del control y no consigo que me funcione bien.
Te adjunto el código de ambos botones a ver si ves algo, el contro en concreto se llama "Estado". EL CÓDIGO FUNCIONA PERFECTAMENTE, sólo tengo el problema del control estado por lo que aunque te mando todo el código fíjate sólo en lo que puede estar pasando para que el formulario no refresque la información del control. ¿Lo extraño es que si lo hago en modo depuración funciona correctamente tod. Misterios de microsoft?
Gracias por estar ahí y un saludo desde España.
Botón 1 funciona:
Private Sub asignar_tareas_Click()
'*****************************************************************************************************
'* Recuperamos los datos del servidor *
'*****************************************************************************************************
Me.Estado.Caption = "Buscando datos"
Dim bd As Database 'definimos la variable de base de datos
Set bd = CurrentDb 'Asignamos la base de datos a la variable
Dim registrosRS As Recordset
Dim InsertarStr As String
InsertarStr = ("SELECT * FROM [Buscar Facturas Pendientes de inventariar] order by 1 ")
Set registrosRS = bd.OpenRecordset(InsertarStr)
With registrosRS
If registrosRS.RecordCount = 0 Then
Me.Estado.Caption = "No hay Facturas a tratar"
Exit Sub
End If
End With
DoCmd.OpenQuery "Facturas Pendientes de inventariar", acNormal, acEdit
Me.Estado.Caption = registrosRS.RecordCount & " Facturas a tratar"
'*****************************************************************************************************
'* Asignamos las tareas *
'*****************************************************************************************************
Me.Estado.Caption = "Asignando Tareas"
Dim FacturasRs As Recordset 'Creamos el contenedor de las facturas
Dim FacturasStr As String
FacturasStr = ("select [contable],[TERCERO] ,[Fecha de asignación] from [Facturas pasadas a inventariar]where [contable]= '0' order by 2")
Dim ContFRAS As Integer 'creamos un contador de facturas
Dim contablesRs As Recordset 'Creamos el contenedor de contables
Dim contablesStr As String
contablesStr = ("select [contable] from [contables] order by 1") 'Ordenamos por que si no no cuenta bien mas abajo
Set FacturasRs = bd.OpenRecordset(FacturasStr) 'abrimos los datos de facturas
Set contablesRs = bd.OpenRecordset(contablesStr) 'abrimos los datos de contables
With contablesRs
NumContablesStr = contablesRs.RecordCount
contableStr = contablesRs!contable
With FacturasRs 'Utilizamos el contenedor de facturas
x = Int(FacturasRs.RecordCount / NumContablesStr) 'Asignamos al contador x el número de facturas que
'va a acontavilizar cada uno
While Not FacturasRs.EOF
FacturasRs.Edit
FacturasRs!contable = contableStr
'FacturasRs![Fecha de asignación] = Date
FacturasRs.Update
FacturasRs.MoveNext
x = x - 1
ContFRAS = ContFRAS + 1
If x = 0 Then 'Al finalizar la asignación a un usuario, cambiamos de usuario y si no es el
'final del fichero de usuarios restablecemos el valor x y volvemos a asignar
'facturas
With contablesRs
contablesRs.MoveNext
If Not contablesRs.EOF Then
...
Tengo un problema que no consigo explicame y es el siguiente:
Tengo un formulario en access con dos botones de acción que hacen cosas parecidas, el caso es que en umbos botones, cambio el contenido de un control para que me diga en cada momento en que punto del código me encuentro, lo extraño es que con el código del botón 1 funciona correctamente, mientras que el código del control 2 asigna el valor al control pero no muestra más que el último valor asignado cuando acaba todo el proceso.
Lo hago con la propiedad caption del control y no consigo que me funcione bien.
Te adjunto el código de ambos botones a ver si ves algo, el contro en concreto se llama "Estado". EL CÓDIGO FUNCIONA PERFECTAMENTE, sólo tengo el problema del control estado por lo que aunque te mando todo el código fíjate sólo en lo que puede estar pasando para que el formulario no refresque la información del control. ¿Lo extraño es que si lo hago en modo depuración funciona correctamente tod. Misterios de microsoft?
Gracias por estar ahí y un saludo desde España.
Botón 1 funciona:
Private Sub asignar_tareas_Click()
'*****************************************************************************************************
'* Recuperamos los datos del servidor *
'*****************************************************************************************************
Me.Estado.Caption = "Buscando datos"
Dim bd As Database 'definimos la variable de base de datos
Set bd = CurrentDb 'Asignamos la base de datos a la variable
Dim registrosRS As Recordset
Dim InsertarStr As String
InsertarStr = ("SELECT * FROM [Buscar Facturas Pendientes de inventariar] order by 1 ")
Set registrosRS = bd.OpenRecordset(InsertarStr)
With registrosRS
If registrosRS.RecordCount = 0 Then
Me.Estado.Caption = "No hay Facturas a tratar"
Exit Sub
End If
End With
DoCmd.OpenQuery "Facturas Pendientes de inventariar", acNormal, acEdit
Me.Estado.Caption = registrosRS.RecordCount & " Facturas a tratar"
'*****************************************************************************************************
'* Asignamos las tareas *
'*****************************************************************************************************
Me.Estado.Caption = "Asignando Tareas"
Dim FacturasRs As Recordset 'Creamos el contenedor de las facturas
Dim FacturasStr As String
FacturasStr = ("select [contable],[TERCERO] ,[Fecha de asignación] from [Facturas pasadas a inventariar]where [contable]= '0' order by 2")
Dim ContFRAS As Integer 'creamos un contador de facturas
Dim contablesRs As Recordset 'Creamos el contenedor de contables
Dim contablesStr As String
contablesStr = ("select [contable] from [contables] order by 1") 'Ordenamos por que si no no cuenta bien mas abajo
Set FacturasRs = bd.OpenRecordset(FacturasStr) 'abrimos los datos de facturas
Set contablesRs = bd.OpenRecordset(contablesStr) 'abrimos los datos de contables
With contablesRs
NumContablesStr = contablesRs.RecordCount
contableStr = contablesRs!contable
With FacturasRs 'Utilizamos el contenedor de facturas
x = Int(FacturasRs.RecordCount / NumContablesStr) 'Asignamos al contador x el número de facturas que
'va a acontavilizar cada uno
While Not FacturasRs.EOF
FacturasRs.Edit
FacturasRs!contable = contableStr
'FacturasRs![Fecha de asignación] = Date
FacturasRs.Update
FacturasRs.MoveNext
x = x - 1
ContFRAS = ContFRAS + 1
If x = 0 Then 'Al finalizar la asignación a un usuario, cambiamos de usuario y si no es el
'final del fichero de usuarios restablecemos el valor x y volvemos a asignar
'facturas
With contablesRs
contablesRs.MoveNext
If Not contablesRs.EOF Then
...
1 Respuesta
Respuesta de Roberto Alvarado
1