Jump to content

marcosab

Members
  • Content Count

    35
  • Joined

  • Last visited

Posts posted by marcosab

  1. Buenas

    Estoy intentando crear un macro para generar un reporte entre periodos que están en las celdas " D5 " y  " F5 " de una tabla de Access, pero no logro que funcione. acudo a ustedes para que me ayuden a definir cual sera el error.

    Formato de la fecha en Access "29/07/2020 10:48:51" 

    Application.ScreenUpdating = True
    
    NumId = (Format(Worksheets("usuarioF1").Range("D5").Value, "DD-MMM-YYYY") & "# ")
    NumIh = (Format(Worksheets("usuarioF1").Range("F5").Value, "DD-MMM-YYYY") & "# ")
    Set Cnn = New ADODB.Connection
    With Cnn
    
        .Provider = "Microsoft.ACE.OLEDB.12.0"
        .ConnectionString = "\01.Datos\Registro.accdb"
        .Open
    
    End With
    
    Set Rs = New ADODB.Recordset
    
    Sql = "SELECT nombre, cedula, riesgo, Nombre_Patrono, fecha1 FROM f_adeudos WHERE fecha => '" & NumId & "' and fecha => '" & NumIh & "' ORDER BY fecha1"
    
    Rs.Open Sql, Cnn
    
    Sheets("reporte").Select
    Range("B7:E100").ClearContents
    Range("B7").CopyFromRecordset Rs
    Rs.Close

     

    Muchas gracias por toda la ayuda.

  2. Un saludos a los miembros del grupo

    Requiero que me ayuden con el siguiente Macro. Cuando se ejecuta debe buscar en la base de datos "Registro.accdb" y devolver los datos que coinciden las columna estado con ingreso y la columna nombre con "Carlos" 

    He intentado con el siguiente macro pero me da error

     

    Application.ScreenUpdating = True
    NumId = "ingreso"
    NomId = "Carlos"
    Set Cnn = New ADODB.Connection
    With Cnn
        .Provider = "Microsoft.ACE.OLEDB.12.0"
        .ConnectionString = "Data Source=" & ThisWorkbook.Path & "\Datos\Registro.accdb"
        .Open
    End With
    Set Rs = New ADODB.Recordset
    
    Sql = "SELECT cedula, nombre, fecha1, Fecha2, origen, carpeta FROM requeri WHERE correo = '" & NumDd & "' AND WHERE correo = '" & NomDd & "' ORDER BY fecha1"
    
    Rs.Open Sql, Cnn

     

  3. Gracias por la ayuda.

    Seguramente algo tengo que estar haciendo mal.

    Lo puse de la siguiente forma y me da error con depurador al parecer es en esta parte del código "    .Open Sql, Cnn, , , adCmdText"

    Sub crear()
    
    Application.ScreenUpdating = False
    If Trim([C9]) = "" Then
       MsgBox "*** Cédula en blanco ***", vbCritical, "Alerta"
       Exit Sub
    End If
    If Trim([E9]) = "" Then
       MsgBox "*** Riesgo en blanco ***", vbCritical, "Alerta"
       Exit Sub
    End If
    If Trim([C11]) = "" Then
       MsgBox "*** Nombre en blanco ***", vbCritical, "Alerta"
       Exit Sub
    
    End If
    
    
    
    Set Cnn = New ADODB.Connection
    
    With Cnn
        .Provider = "Microsoft.ACE.OLEDB.12.0"
        .ConnectionString = "Data Source=" & ThisWorkbook.Path & "\Datos\01.Adeudos.accdb"
        .Open
    End With
    
    Set Rs = New ADODB.Recordset
    
    Sql = "Select [Num Id] From pen Where [Num Id] =" & Worksheets("Registro").Range("C9").Value
    
    With Rs
        .CursorLocation = adUseClient
        .CursorType = adOpenKeyset
        .LockType = adLockOptimistic
        .Open Sql, Cnn, , , adCmdText
    End With
    
    If Rs.RecordCount >= 1 Then
        MsgBox "Ya existe el ID, modifique"
        Exit Sub
    End If
        
    Sql = "INSERT INTO pen ([Num Id], Nombre, Riesgo, [Monto Caso], Moroso, [Nun_Patrono], [Nom_Patrono]) "
        Sql = Sql & "VALUES ('" & Worksheets("Registro").Range("C9").Value & "', " & _
                            "'" & Worksheets("Registro").Range("C11").Value & "', " & _
                            "'" & Worksheets("Registro").Range("E9").Value & "', " & _
                            "'" & Worksheets("Registro").Range("G9").Value & "', " & _
                            "'" & Worksheets("Registro").Range("G11").Value & "', " & _
                            "'" & Worksheets("Registro").Range("C13").Value & "', " & _
                            "'" & Worksheets("Registro").Range("E13").Value & "' )"
    
    With Rs
        .CursorLocation = adUseClient
        .CursorType = adOpenKeyset
        .LockType = adLockOptimistic
        .Open Sql, Cnn, , , adCmdText
    End With
    
        MsgBox "Datos actualizados con Exito!!!", vbInformation, "SACI"
        A_ingesarDatos = True
    
    
    
    End Sub

    Saludos

  4. Buenas tardes

    Gracias por el consejo así lo aplicare para casos futuros.

    Este el código que tengo para crear el registro de Excel a ACCESS y funciona bien para crear el registro.

    Sub crear()
    
    Application.ScreenUpdating = False
    If Trim([C9]) = "" Then
       MsgBox "*** Cédula en blanco ***", vbCritical, "Alerta"
       Exit Sub
    End If
    If Trim([E9]) = "" Then
       MsgBox "*** Riesgo en blanco ***", vbCritical, "Alerta"
       Exit Sub
    End If
    If Trim([C11]) = "" Then
       MsgBox "*** Nombre en blanco ***", vbCritical, "Alerta"
       Exit Sub
    End If
    Set Rs = New ADODB.Recordset
    Set cn = New ADODB.Connection
    cn.Open Conexion
        Sql = "INSERT INTO pen ([Num Id], Nombre, Riesgo, [Monto Caso], Moroso, [Nun_Patrono], [Nom_Patrono]) "
        Sql = Sql & "VALUES ('" & Worksheets("Registro").Range("C9").Value & "', " & _
                            "'" & Worksheets("Registro").Range("C11").Value & "', " & _
                            "'" & Worksheets("Registro").Range("E9").Value & "', " & _
                            "'" & Worksheets("Registro").Range("G9").Value & "', " & _
                            "'" & Worksheets("Registro").Range("G11").Value & "', " & _
                            "'" & Worksheets("Registro").Range("C13").Value & "', " & _
                            "'" & Worksheets("Registro").Range("E13").Value & "' )"
    cn.Execute (Sql)
    cn.Close
    Set cn = Nothing
        MsgBox "Datos actualizados con Exito!!!", vbInformation, "SACI"
        A_ingesarDatos = True
    
    End Sub

    En que lugar puedo agregar las lineas recomendadas para que valide si existen los datos antes de que los cree.  

    Saludos cordiales.

     

  5.  

    Un nuevo aporte para finalizar el proyecto


    Tengo el archivo funcionando cuando el usuario requiere solo una hoja activa. cuando se requiere que mas hojas estén activas no funciona. Ejemplo el user marco pass 123 debería tener activas las hojas "Registro, Registro1, Registro2". Con el codigo actual solo funciona la hoja "Registro"

    Ademas un favor extra que dependiendo el usuario que inicie sección ponga el Nombre de la columna "Nombre" en ("01.Adeudos" tabla "usuarios") del archivo en ACCESS y lo pegue en la hoja "Principal" celda C7 del archivo de EXCEL.

    en el siguiente enlace esta un ejemplo del proyecto.

    https://mega.nz/file/YRpRXZTL#Uynlq0oW77Eo0VbME26yYkKc1g7jXXu9w1AwfbFlRp0

    De nuevo muchas gracias por toda la ayuda en el proyecto.

    Saludos

  6. Muchas gracias 

    Estaba revisando la información y requiero de la ayuda en lo siguiente:


    1 Requiero que esa información la tome de la base de datos "01.Adeudos" tabla "usuarios". Además que que dependiendo las hojas activas sean visualizadas o ocultas. solo el administrador debe tener acceso a todas las hojas. Esto funciona solo si hay solo si el usuario activa una hoja pero si se requiere que estén activas mas de una hoja no funciona. ejemplo el user marco pass 123 debería tener activas las hojas "Registro, Registro1, Registro2". como esta ahorita solo visualiza la hoja "Registro"

    Ademas un favor extra que dependiendo el usuario que inicie sección detecte el Nombre de la columna "Nombre" en ("01.Adeudos" tabla "usuarios") y lo pegue en la hoja "Principal" celda C7.

     

    De nuevo muchas gracias por toda la ayuda en el proyecto.

    Saludos

  7. Muchas gracias por el aporte

     

    He estado trabajando en el registro

    tengo este codigo para agregar datos pero no logro que me los agregue favor ayuda para detectar el problema

     

     

    Function ingesarDatos_01() As Boolean
        Dim sSQL As String
        Dim sSQLIngreso_01 As String
        Dim nResultado As Long
        Dim nFila As Double
        Dim rCelda As Range
        Dim sTexto As String
        
        ingesarDatos_01 = False
        '--------------------------------------------------------------------------------
        'obtenemos la ultima fila con datos
        '--------------------------------------------------------------------------------
        
        '--------------------------------------------------------------------------------
        'Creamos el String de Ingreso de datos
        '--------------------------------------------------------------------------------
        sSQL = "INSERT INTO 02_morosos (Cedula, Carpeta, Funcionario_1, Fecha_1, Numero_Patrono, Nombre_Patrono) "
        sSQL = sSQL & "VALUES ('" & Worksheets("Registro_01").Range("C9").Value & "', "
        sSQL = sSQL & Worksheets("Registro_01").Range("J2").Value & ", "
        sSQL = sSQL & Worksheets("Registro_01").Range("C6").Value & ", "
        sSQL = sSQL & "#" & Format(Worksheets("Registro_01").Range("F6").Value) & "#, "
        sSQL = sSQL & Worksheets("Registro_01").Range("C13").Value & ", "
        sSQL = sSQL & Worksheets("Registro_01").Range("E13").Value & ", "
    
        '--------------------------------------------------------------------------------
        'realizamos el ingreso de los datos para cada linea
        'si todo salio OK, nResultado sera 0
        '--------------------------------------------------------------------------------
    
            If nResultado <> 0 Then
                MsgBox "Problemas al ingresar el registro", vbCritical, "SACI"
                Exit Function
            End If
    
        MsgBox "Datos actualizados con Exito!!!", vbInformation, "SACI"
        ingesarDatos_01 = True
    End Function

     

  8. Buenos dias

     

    Muchas gracias por su respuesta, disculpa si enfoque mal la pregunta fue que tenia la duda de que se pudiera hacer eso desde excel, gracias por aclarar y tener certeza de que si es posible.

    Es un proyecto grande resolviendo esas consultas me parece puedo completar hacer de mi parte el resto del proyecto.

    Gracias por sus aportes.

    Saludos  

  9. Buenos días 

    Primero que todo debo dar gracias por toda la ayuda de los miembros del foro.

    Estoy iniciando con un sistema para registrar información de un proceso con macros en EXCEL que utiliza información de ACCESS, el sistema se debe utilizar por varias personas.

     

    Tengo las siguientes dudas que acudo a ustedes para resolverlas.

    Usuario admin

    Contraseña 123

    1 Logre que detecte usuario y contraseña de una hoja de Excel. requiero que esa información la tome de la base de datos "01.Adeudos" tabla "usuarios". Además que que dependiendo las horjas activas sean visualizadas o ocultas. solo el administrador debe tener acceso a todas las hojas.

    2 En la hoja "Registro" debe consultar a la base de datos "01.Adeudos" tabla "pen" y completar datos. despues el usuario debe completar datos y permitir actualizar los datos en la base de datos "01.Adeudos" tabla "usuarios".

     

    https://mega.nz/file/MB5HyTib#5TMCNyAY50kXBSkCSe29piGkEYL9hoxhVtUzUzfu3Xk

     

     

    Saludos,

  10. Muchas Gracias Rolano

    Realiza bien la conexión muy amable por su ayuda.

    Para explicar con mas detalles extras.

    1) Debe realice una buscada en la base de datos de access antes de guardar, con el propósito de que no existan todos los datos que se van a guardar, esto con el propósito de que no se duplique  la fila en Access.

    2) Debe validar si hay datos de "B9:F32" y guardar todas las que contengan valores.

    Les dejo un nuevo archivo con algunos datos extras para almacenar.

    Muchas gracias por su ayuda es un excelente grupo de ayuda para los que no somos muy expertos.

    Saludos,

    Datos_new.rar

  11. Saludos a los miembros del grupo.

    Requiero de la siguiente información. 

    Tengo una tabla que se creo inicialmente con periodos de ---- hasta. ahora requiero convertir esa tabla con formulas o macros para que me muestre una lista de meses que hay en el periodo.

    Ejemplo

    Contar Cédula Nombre Patrono Desde Hasta
    1 586680940 íaAlice INCO 09/1983 06/1986

     

    La necesidad es que me devuelva todos los mes de setiembre 1983 a junio 1986 fila por fila

    Contar Cédula Nombre Patrono Mes  
      586680940 íaAlice INCO 09/1983  
      586680940 íaAlice INCO 10/1986  

    Así sucesivamente hasta llegar a junio 1986. eso lo debo hacer con todos los casos de la tabla que adjunto.

    Espero que alguno de ustedes tenga alguna solución posible. y muchas gracias por la ayuda que puedan brindar.

     

    Tabla Periodos a Meses.xlsx

×
×
  • Create New...

Important Information

Privacy Policy