Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

De Acces a Excel

Estas en el tema de De Acces a Excel en el foro de Visual Basic clásico en Foros del Web. Hola aver si me podriais ayudar... Tengo un formulario en Access con dos cuadro de texto nombre y apellido y un boton buscar...Lo q quiero ...
  #1 (permalink)  
Antiguo 11/12/2008, 06:05
 
Fecha de Ingreso: agosto-2008
Mensajes: 73
Antigüedad: 15 años, 8 meses
Puntos: 0
De Acces a Excel

Hola aver si me podriais ayudar... Tengo un formulario en Access con dos cuadro de texto nombre y apellido y un boton buscar...Lo q quiero es q al darle al boton buscar me busque el nombre y apellido puesto en los cuadro de texto, en hojas de calculo Excel que se encuentran en una carpeta... no se ni si es posible..
Muxas gracias y un saludo
  #2 (permalink)  
Antiguo 12/12/2008, 03:23
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 2 meses
Puntos: 37
Respuesta: De Acces a Excel

Cita:
Iniciado por erDanielillo Ver Mensaje
Hola aver si me podriais ayudar... Tengo un formulario en Access con dos cuadro de texto nombre y apellido y un boton buscar...Lo q quiero es q al darle al boton buscar me busque el nombre y apellido puesto en los cuadro de texto, en hojas de calculo Excel que se encuentran en una carpeta... no se ni si es posible..
Muxas gracias y un saludo
Hola, un libro Excel, mediante ADO, lo puedes tratar como una base de datos y las hojas como tablas.

En este ejemplo seleccionamos nombre y apellidos y mostramos los datos en un DataGrid (La hoja excel no se muestra).

Código:
Private Sub cmdBuscar_Click()
Dim con As New ADODB.Connection
Dim rst As New ADODB.Recordset
con.Open "Provider=Microsoft.jet.OLEDB.4.0;Data Source=" & _
        App.Path & "\Libro1.xls;Extended Properties='Excel 8.0;HDR=Yes'"
con.CursorLocation = adUseClient
rst.Open "Select * From [Hoja1$] Where Nombre = '" & Text1 & "' AND Apellidos = '" & Text3 & "'", con
If rst.RecordCount = 0 Then
    MsgBox "No existe."
    Exit Sub
End If
Set DataGrid1.DataSource = rst
End Sub
Sustituye, si procede, lo marcado en rojo.

Nota: HDR=Yes indica que la hoja tiene encabezado (primera fila de datos, que sería el nombre de los campos). Si la hoja no tiene encabezado (HDR=No), los nombres de los campos serían F1, F2, F3.... con lo cual en la búsqueda:
Where F1 = '" & Text1 & "' And F2 =.....

  #3 (permalink)  
Antiguo 12/12/2008, 04:30
 
Fecha de Ingreso: agosto-2008
Mensajes: 73
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: De Acces a Excel

Hola, gracias x contestar... Lo estao provando y me da error en el App.path no se xq despues en la ruta tendre q poner c:\ no?¿
Aparte tbien quiero q se me muestre las hojas de excel q contegan el nomobre y apellido introducido en el cuadro de texto para asi poder mandarlo...
Muxas gracias y saludos!!
  #4 (permalink)  
Antiguo 12/12/2008, 04:39
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 2 meses
Puntos: 37
Respuesta: De Acces a Excel

Cita:
Iniciado por erDanielillo Ver Mensaje
Hola, gracias x contestar... Lo estao provando y me da error en el App.path no se xq despues en la ruta tendre q poner c:\ no?¿
Aparte tbien quiero q se me muestre las hojas de excel q contegan el nomobre y apellido introducido en el cuadro de texto para asi poder mandarlo...
Muxas gracias y saludos!!
Hola, App.Path devuelve la ruta donde se encuenta la aplicación. Si el Libro Excel no se encuentra en la misma ruta, sustituye:

Data Source=c:\DirectorioDondeEsteelArchivo\Libro1.xls. ....

  #5 (permalink)  
Antiguo 12/12/2008, 05:00
 
Fecha de Ingreso: agosto-2008
Mensajes: 73
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: De Acces a Excel

con.Open "Provider=Microsoft.jet.OLEDB.4.0;Data Source= C:\prueba.xls"
Esto es lo que e puesto y sigue sin salir :S:S
  #6 (permalink)  
Antiguo 12/12/2008, 05:28
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 2 meses
Puntos: 37
Respuesta: De Acces a Excel

Cita:
Iniciado por erDanielillo Ver Mensaje
con.Open "Provider=Microsoft.jet.OLEDB.4.0;Data Source= C:\prueba.xls"
Esto es lo que e puesto y sigue sin salir :S:S
Y no dá ningún error?

'prueba.xls' está en la unidad c: (sin directorio)?

Puedes poner la cadena de conexión completa?

  #7 (permalink)  
Antiguo 12/12/2008, 05:37
 
Fecha de Ingreso: agosto-2008
Mensajes: 73
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: De Acces a Excel

Private Sub Comando3_Click()
Dim DataGrid

Dim con As New ADODB.Connection
Dim rst As New ADODB.Recordset
con.Open "Provider=Microsoft.jet.OLEDB.4.0;Data Source= C:\prueba.xls"
con.CursorLocation = adUseClient
rst.Open "Select * From [Hoja1$] Where Nombre = '" & Text1 & "' AND Apellidos = '" & Text3 & "'", con
If rst.RecordCount = 0 Then
MsgBox "No existe."
Exit Sub
End If
Set DataGrid.DataSource = rst
End Sub

Esto es todo lo q tengo en el commando3.
El archivo prueba.xls esta en la unidad c:\ sin carpetas ni nada
  #8 (permalink)  
Antiguo 12/12/2008, 05:37
 
Fecha de Ingreso: agosto-2008
Mensajes: 73
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: De Acces a Excel

El error q me da es q no encuentra el archivo... Luego Datagrid1 tbien me daba error Muxas gracias
  #9 (permalink)  
Antiguo 12/12/2008, 06:01
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 2 meses
Puntos: 37
Respuesta: De Acces a Excel

Cita:
Iniciado por erDanielillo Ver Mensaje
El error q me da es q no encuentra el archivo... Luego Datagrid1 tbien me daba error Muxas gracias
Me parece que el error que te dá no es que no encuentre el archivo, sino que no lo reconoce.

Pon la cadena de conexión entera, como te puse anteriormente:

con.Open "Provider=Microsoft.jet.OLEDB.4.0;Data Source=c:\Prueba.xls;Extended Properties='Excel 8.0;HDR=Yes'"

  #10 (permalink)  
Antiguo 18/12/2008, 03:09
 
Fecha de Ingreso: agosto-2008
Mensajes: 73
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: De Acces a Excel

Perdon por la tardanza, estaoy liao, bien aora me sale el siguiente error:" No se han especificado valores para algunos de los parametros requeridos" Y me señala a la fila de &text1 y &text3
Muxas gracias
  #11 (permalink)  
Antiguo 18/12/2008, 04:27
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 2 meses
Puntos: 37
Respuesta: De Acces a Excel

Cita:
Iniciado por erDanielillo Ver Mensaje
Perdon por la tardanza, estaoy liao, bien aora me sale el siguiente error:" No se han especificado valores para algunos de los parametros requeridos" Y me señala a la fila de &text1 y &text3
Muxas gracias
A ver, unas preguntas:
- ¿La hoja Excel tiene encabezado?
- ¿En alguna celda de la primera fila (la 1), tiene escrito "Nombre" y "Apellidos"?
- ¿El nombre a buscar, se escrtibe en un control TextBox que se llama Text1 (propiedad Name del control)?
- Igual para Apellidos, ¿existe el control Text3?

  #12 (permalink)  
Antiguo 18/12/2008, 06:32
 
Fecha de Ingreso: agosto-2008
Mensajes: 73
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: De Acces a Excel

Bien muxas gracias x todo aora me falla el ultimo paso el Datagrid.Datasource Sinceramente no se para q sirve ni lo q significa

Saludos y gracias
  #13 (permalink)  
Antiguo 19/12/2008, 03:13
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 2 meses
Puntos: 37
Respuesta: De Acces a Excel

Cita:
Iniciado por erDanielillo Ver Mensaje
Bien muxas gracias x todo aora me falla el ultimo paso el Datagrid.Datasource Sinceramente no se para q sirve ni lo q significa

Saludos y gracias
El DataGrid es un control para mostrar los registros de un objeto recordset en filas y columnas (lo que también se conoce como tipo 'rejilla').

Creo que en cosas tan elementales como ésta, deberías leer la ayuda que proporciona Visual Basic.

Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:35.