Jump to content

AlexanderS

Moderators
  • Content Count

    1,285
  • Joined

  • Last visited

  • Days Won

    52

Everything posted by AlexanderS

  1. A simple vista creo que el error esta en que abres 2 veces la conexión. La segunda te da el error ya que la conexión ya estaba abierta e intentas volver a abrirla. Saludos
  2. Hola @pepe1970, cuando programas dentro de un formulario se entiende que "Textbox33" es un control dentro de este formulario. Pero como en tu caso estás tratando de hacer una referencia a un "Textbox33" dentro de un módulo que está fuera del formulario, por lo que función "Query1" trata al "Textbox33" como una variable no declarada. Siempre es aconsejable que manejes las instrucciones que hacen referencia a controles de formulario dentro del mismo formulario, si aún así por alguna razón tienes que tenerlo en un módulo aparte debes colocar el nombre del formulario antes del nombre del control: Userfrom1.TextBox33 = "" Saludos
  3. @Juan Pelfort, si sientes que el tono usado por un usuario hacia ti fue inapropiado puedes reportar el mensaje para que los moderadores podamos revisar el caso. También puedes usar el mensajero personal del foro si necesitas comunicarte con alguien, claro siempre manteniendo el respeto. Saludos.
  4. @pepe1970 es muy difícil poder darte una respuesta adecuada con tan poca información, por lo que voy a tratar de explicarte de forma general como son los pasos a seguir para conectar excel a un SQL Server y traer datos a un textbox en un formulario. Lo primero que debemos hacer es conectarnos al servidor SQL, para esto debemos abrir la coneccion mediante el siguiente código: *Debes copiar el código entero dentro de un módulo Public miConexion As New ADODB.Connection Public rs As New ADODB.Recordset Sub Conecta() Dim ConnectionString As String, BD As String On Error GoTo salir BD = "NOMBRE DE LA BASE DE DATOS" '<<<<<<<< Coloca el nombre de la base de datos de SQL 'En "Data Source=" debe ir la dirección IP del servidor SQL ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Initial Catalog=" & BD & ";Data Source=10.10.0.130" If miConexion.State = 1 Then miConexion.Close Set cnn = New ADODB.Connection miConexion.Open ConnectionString miConexion.CommandTimeout = 900 Exit Sub salir: MsgBox err.Description & vbCrLf & vbCrLf & "Imposible conectar con la Base de Datos" & vbCrLf & _ "Detalles de la conexón:" & vbCrLf & ConnectionString, vbExclamation, "Error de Conexión" End Sub Debes modificar el nombre de la base de datos "BD" , la ruta de tu base "Data Source" e ingresar el Usuario y contraseña para conectarse a la BD Con esto abres una conección al servidor SQL, ahora imaginando que tienes un formulario creado con 2 textbox, siendo el textbox1 el que utilizaras para buscar y el textbox2 donde obtendras el resultado, podemos utilizar el siguiente ejemplo: *En mi ejemplo usare una hipotética tabla llamada "Clientes" donde tendré un campo numérico llamado "DNI" con los DNI de los clientes y otro llamado "Nombre" con los nombres de los clientes. Private Sub CommandButton1_Click() Dim SQL As String Call Conecta '<<<< Abrimos la conección al SQL Set rs = New ADODB.Recordset SQL = "SELECT [Nombre] FROM Clientes where [DNI] = " & CDbl(TextBox1) '<<< Cadena SQL rs.Open SQL, miConexion, 3, 3, adCmdText '<<<< Se realiza la consulta al servidor SQL If rs.EOF = False Then '<<< Comprobamos que la consulta nos traiga resultados Me.TextBox2 = rs.Fields("Nombre") '<<< Pasamos los resultados al Textbox End If End Sub Como verás necesitarás al menos un mínimo conocimiento de las cadenas de consulta en SQL, por lo que te recomiendo buscar sobre el tema. Esto es un muy resumido ejemplo de como realizar la conexión al SQL y realizar una pequeña consulta, espero al menos te de una idea de lo que debes buscar de ahora en adelante. Saludos.
  5. Hola @pepe1970, debes ser mas especifico con tu consulta, adjuntar con archivo de ejemplo con el progreso que tengas e indicar de una forma más exacta donde está el problema. Saludos.
  6. Hola @hernanmrx, te dejo un ejemplo de una formula valida en DAX. Comentas, saludos. Ejemplo DAX.xlsx
  7. @fredy122, para que podamos entenderte mejor y poder ayudarte debes adjuntar un archivo de excel de ejemplo, preferiblemente con algún progreso que tengas. De mi parte te comparto este pequeño código que debes copiar al módulo del libro "ThisWorkbook", cuando selecciones un rango de celdas con números te devolverá algunos resultados. Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) On Error GoTo salir Resul = "Max: " & Application.WorksheetFunction.Max(Target) & Chr(10) Resul = Resul & "Min: " & Application.WorksheetFunction.Min(Target) & Chr(10) Resul = Resul & "Media: " & Application.WorksheetFunction.Median(Target) & Chr(10) Resul = Resul & "Cuenta: " & Application.WorksheetFunction.Count(Target) & Chr(10) Resul = Resul & "Suma: " & Application.WorksheetFunction.Sum(Target) & Chr(10) MsgBox Resul salir: End Sub La idea es que lo uses como guía para que prepares tu archivo, en este caso muestra la información en un msgbox pero lo puedes adaptar para un formulario. Saludos.
  8. Debes de estar escribiendo mal la ruta de la BD, no afecta que el archivo este en en la red siempre y cuando tengas permisos para acceder a ella. Lo que suelo hacer para no equivocarme al escribir la ruta es usar esta opción del explorador de archivos Saludos.
  9. Este error se da cuando en la tabla de access hay columnas que no existen o tienen un nombre distinto en la hoja de excel, debes revisar que todos los campos están dentro de los 2 archivos y que se llamen igual tomando en cuenta mayúsculas y minúsculas. Los archivos que compartiste, el libro de excel no tienen ninguna hoja relacionada a la tabla de access, no se si fue un error al subir el archivo o no te entendí algo. Te tejo el ejemplo de como debería funcionar el código que te compartí, debes ejecutar la macro "Actualiza_Cttos" en la hoja "Datos a Exportar" Saludos. Prueba cttos.zip
  10. Hola @xveganx, para tener un mayor entendimiento sobre las consultas siempre se solicita un archivo de ejemplo, en tu caso la tabla de access y el excel, con datos ficticios es suficiente ya que lo se requiere es ver la estructura de tus archivos. Te dejo un pequeño código que hace lo que quieres, siempre y cuando lo sepas adaptar a tu archivo. Sub Exp_ACCESS() Set cn = CreateObject("ADODB.Connection") dbPath = "C:\Users\Usuario\Documents\Database1.accdb" '>>> RUTA de la BD Tabla = "Tabla1" ' >>> Nombre de la tabla de Access dbWb = Application.ActiveWorkbook.FullName dbWs = Application.ActiveSheet.Name scn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbPath dsh = "[" & Application.ActiveSheet.Name & "$]" cn.Open scn ssql = "Delete * From " & Tabla cn.Execute ssql ssql = "INSERT INTO " & Tabla & " ([CONTRATO], [CONTRATO SAP], [FECHA], [PROVEEDOR], [SUCURSAL], [DESCRIPCION], [MONEDA]) " ssql = ssql & "SELECT [CONTRATO], [CONTRATO SAP], [FECHA], [PROVEEDOR], [SUCURSAL], [DESCRIPCION], [MONEDA]" & _ " FROM [Excel 8.0;HDR=YES;DATABASE=" & dbWb & "]." & dsh cn.Execute ssql MsgBox "Listo !!", vbInformation End Sub Saludos.
  11. Lo siento pero no tengo idea, y no puedo hacer mas pruebas dadas las limitaciones de mi cuenta de instagram. Tendrás que leer la documentación del conector, tal vez hay un paso que nos saltamos.
  12. 1.Esto solo funciona en una cuenta empresarial de Instagram. https://vilmanunez.com/guia-activar-perfil-de-empresa-instagram/ 2.La cuenta de instagram debe estar vinculada a la de facebook. https://vilmanunez.com/como-enlazar-tu-perfil-de-instagram-con-tu-pagina-de-fans-en-facebook/ 3.Debes descargar el conector https://drive.google.com/uc?export=download&id=11koYwbUjwJNoO4SIj7n7n91xH9b0sPTn. 4.Crear una carpeta en Documentos llamada Power BI Desktop y dentro de esta una llamada Custom Connectors después guardar el archivo descargado dentro de esta carpeta. 5.Abrir Power BI, probablemente te salga un mensaje con una advertencia acerca del conector no certificado, debes ir a Opciones->Seguridad y en Exenciones de Datos marcar la segunda opción y reiniciar Power BI. 6.Abrir Power BI ir a Archivo->Obtener Datos->Mas... en Otras encontraras el conector a Instagram. 7.Te pedirá iniciar sesion en Facebook y darle permiso a la aplicación a acceder a tus datos. 8.Listo deberías ver algo así: Esto fueron los pasos que yo seguí, aparte de esto no puedo decirte mas ya que mi cuenta al inicio no era empresarial por lo que no tengo estadísticas . Saludos.
  13. Imagino que en el archivo donde lo probaste tienes filas en blanco antes del primer salto de linea, creo que ese es el error. No es necesario solo estoy contando 40 lineas de lo contrario simplemente no hace nada. Le indico en esta linea Range("A1", Range("A1").End(xlDown)).SpecialCells(xlCellTypeVisible) que apartir de la celda A1 se vaya a la ultima celda con datos, por eso si tienes alguna celda vacía por ejemplo en la fila 12 hasta ahí llega ciclo for. Prueba ahora con esta modificación, no es necesario indicar la cantidad de filas ya que encontrara la ultima fila de la columna A con datos, esto es conveniente si tus datos van a crecer aun mas. Sub insertar_filas() Dim x#, celda As Range Application.ActiveSheet.ResetAllPageBreaks For Each celda In Range("A1", Range("A" & Cells.Rows.Count).End(xlUp)).SpecialCells(xlCellTypeVisible) x = x + 1 If x = 40 Then x = 0 ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(celda.Row + 1) End If Next End Sub De igual manera y por aquello puedes usar esta linea también For Each celda In Range("A1:A10000").SpecialCells(xlCellTypeVisible) Saludos.
  14. A mi me funciona sin problema, prueba el adjunto. Demo.xlsm
  15. @jik, basado en tu ejemplo, con esta modificación debería funcionar sin importar donde o cuantas celdas ocultas tengas. Sub insertar_filas() Dim x#, celda As Range Application.ActiveSheet.ResetAllPageBreaks For Each celda In Range("A1", Range("A1").End(xlDown)).SpecialCells(xlCellTypeVisible) x = x + 1 If x = 40 Then x = 0 ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(celda.Row + 1) End If Next End Sub Comentas, saludos.
  16. Si planeas utilizar Power BI, puedes intentar utilizar un custom data connector, estos como indica su nombre son conectores personalizados no oficiales de microsoft. No lo he probado por lo que no se si funciona o si se adapta a tu caso, solo sirve (por el momento) con power bi la versión gratis o de pago. Te dejo el link para descargar el complemento https://new.scitylana.com/connectors Y el enlace al repositorio de GitHub donde puedes encontrar las instrucciones https://github.com/mbilling/PBIConnectors Saludos.
  17. @jik, prueba así. Sub insertar_filas() For i = 40 To 1000 Step 40 ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Range("A" & i + 1) Next End Sub El archivo es por normas del foro, puedes armar un pequeño ejemplo con solo datos ficticios, tómalo en cuenta para futuras consultas. Saludos.
  18. Hola @jik, para que te podamos ayudar adecuadamente debes explicar mejor tu problema y adjuntar un archivo excel de ejemplo con lo que esperas de resultado. Te dejo una idea para que puedas adaptarlo a tu archivo. Sub insertar_filas() For i = 1 To 10000 Step 4 Cells(i, 1).EntireRow.Insert Shift:=xlDown Next End Sub saludos.
  19. Creo que mas bien te complicarías mas con PQ, Power Query lo utilizo como una forma de dar formato a mis datos para después con el uso de tablas dinámicas extraer la información y crear mis reportes. Por lo tanto, si tus datos ya tienen el formato ideal y puedes sacar la información directamente de ellos con una tabla dinámica, no veo ventaja de tratarlos en PQ. Saludos.
  20. Prueba el adjunto, agregue las validaciones. La fecha para no desordenar lo que ya tenias la agregue al final Comenta si esto resuelve tu consulta. Saludos. Variables.xlsm
  21. Que tal @Carlos1986, adjunto una solución. Saludos. Variables.xlsm
  22. Hola, con una tabla dinámica tal vez? Comentas. Saludos Prueba Utilidades.xlsx
  23. No se porque pensé que los Checkbox estaban en la hoja directamente, debería funcionar así entonces: Sub lbl_aceptar_Click() Dim ct As Control For Each ct In Me.Controls If TypeOf ct Is MSForms.CheckBox Then If ct.Value = True Then ActiveCell = ct.Caption End If Next End Sub Saludos
×
×
  • Create New...

Important Information

Privacy Policy