Jump to content


  • Posts

    • Hola  @GR77 Te dejo una consulta como punto de partida, pero de la manera en que están construidas las tablas, por el momento trae registros duplicados, pero te dejo las consultas para que puedas ir conociendo el lenguaje. Sigo atento y trabajando. Saludos. Sub DatoAccess() Dim cn, rs As Object, strFile, strCon, strSQL As String DateI = Sheets(1).Cells(1, 11).Value DateF = Sheets(1).Cells(2, 11).Value strFile = ThisWorkbook.Path & "\datos.mdb" 'strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile & ";" strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFile & ";" Set cn = CreateObject("ADODB.Connection") cn.Open strCon Set rs = CreateObject("ADODB.Recordset") strSQL = "SELECT DISTINCT T1.Id, T1.Clave, T1.FechaMov, T1.MontoEsperado, T3.MontoPagado  " & _          "FROM (Tabla1 T1 INNER JOIN Tabla3 T3 ON T1.Clave = T3.Clave)" ''strSQL = "SELECT T1.Id, T1.Clave, T1.FechaMov, T1.MontoEsperado, T3.MontoPagado " & _          "FROM (Tabla1 T1 INNER JOIN Tabla3 T3 ON T1.Clave = T3.Clave)"           ''strSQL = "SELECT T1.Id, T1.Clave, T1.FechaMov, T1.MontoEsperado, T3.MontoPagado, T2.MontoDescto " & _          "FROM (Tabla1 T1 INNER JOIN Tabla3 T3 ON T1.Clave = T3.Clave) " & _          "INNER JOIN Tabla2 T2 ON T1.Id = T2.Id " ''strSQL = "SELECT T1.Id, T1.Clave, T1.FechaMov, T1.MontoEsperado, T3.MontoPagado, T2.MontoDescto " & _          "FROM (Tabla1 T1 INNER JOIN Tabla3 T3 ON T1.Id = T3.Id) " & _          "INNER JOIN Tabla2 T2 ON T1.Id = T2.Id " & _          "WHERE T1.FechaMov BETWEEN DateI AND DateF" rs.Open strSQL, cn, 3, 3 Cells(2, 1).CopyFromRecordset rs 'Creamos encabezados For i = 0 To rs.Fields.Count - 1 titulo = rs.Fields(i).Name     Cells(1, i + 1) = titulo Next rs.Close cn.Close End Sub
    • El filtro funcionaría mejor así: Sub filtro() Range("A5").AutoFilter Field:=4, Criteria1:=Sheets("base").Range("c4").Value End Sub  
    • A veces con algún truquillo salimos del paso: Sub copiar_filtro() 'Copiamos también la fila 4 Set Rango = ActiveSheet.Range("$A$4:$D$11").SpecialCells(xlCellTypeVisible) If Rango.Rows.Count > 1 Then Rango.Copy End Sub o también: Sub copiar_filtro(): On Error GoTo SinDatos ActiveSheet.Range("$A$5:$D$11").SpecialCells(xlCellTypeVisible).Copy Exit Sub SinDatos: MsgBox "*** Sin datos***", vbInformation End Sub  
    • Te avanzo el login. Cuando pueda, reviso el registro. Adeudos.xlsm
    • Muy agradecido Entiendo que la respuesta a: Se puede usar asi?: wbLibroOrigen.Sheets("Hoja1").Cells(cont, 1).SpecialCells(12).Copy .Cells(ufila + 1, 1) es NO!! Aunque no sé cómo así me funcionó!! pero luego me da el error según lo comentado antes... Pero entonces siempre se requiere un espacio auxiliar Bien!! creo con esto está claro.. Quedo muy agradecido
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy