nestor | |
| 2007-10-26 16:10 - Respuestas: 37 - Tema nº: 2478159
Características: Windows XP Profesional, No es necesario.
Hola ebolo....
Entonces es lo siguiente:
En mi menu principal hay una opcion que hace el llamado (un hipervinvulo) a un archivo de excel en el cual hay unos datos (en una hoja de calculo llamada fotocopias.xls) que necesito mostrar en un informe diseñado en access... como hago esto ?
No necesariamente debe estar abierto, pero seria lo mejor para ver el cambio inmediatamente
Espero me haya hecho entender.... Gacias
| |
|
|
ebolo | |
|
Re: Combinar Access y Excel - 2007-10-26 18:44 - Respuesta 2
Hola nestor, vamos primero a plantear soluciones y luego veremos como hacerlas.
Creo que la mejor opción es crearte una tabla en la bd de access, con el/los campos que necesites de la hoja de excel.
Luego se puede hacer una ó 2 cosas:
- una necesariamente según pienso, que es desde la hoja de excel se te actualicen los campos de la bd, cada vez que las celdas en cuestión se modifiquen.
- otra, ya no tan necesaria es tener la posibilidad desde el formulario, ó si quieres a la hora de lanzar el informe, dentro del mismo informe, ver el último valor de la celda de excel y guardarlo en el campo de la bd.
qué piensas que es mejor, ó se te ocurre alguna otra forma.
saludos.
| |
|
|
nestor | |
|
Re: Combinar Access y Excel - 2007-10-29 17:46 - Respuesta 3
Hola ebolo...
Yo pienso que la primera opcion esta bien, porque solamente necesito es poder ver los valores que estan en las celdas cuando ejecute un informe por fecha es solo informativo y claro poder imprimirlo..
Como lo puedo hacer ? Gracias...
| |
|
|
ebolo | |
|
Re: Combinar Access y Excel - 2007-10-29 19:21 - Respuesta 4
Pues entonces create la tabla, y el/los campo/s en la bd.
Luego en la hoja de excel, tienes que entrar al editor de Visual Basic (alt+F11) y copiar lo siguiente.
Private Sub Worksheet_Change(ByVal Target As Range)
'Si la celda donde varías el dato a grabar en la bd, está en B2
If Target.Address = "$B$2" Then
MsgBox Target.Address & vbCrLf & Target.AddressLocal
Dim consulta As String
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.Oledb.4.0; Data Source=C:\rutabd\tubd.mdb"
'Si el campo está definido como texto hay que pasarle los valores entre comillas simples
'Esto te modificaría un dato del campo1 de la bd que ya existe.
consulta = "UPDATE tutabla SET tutabla.campo1 ='" & Target & "'"
'suponemos que en el campo2 está el identificador para filtrar la consulta.
'Este identificador deberías tenerlo también en la hoja de excel, por ejemplo en la columna 1(A)
'y suponemos que es numérico. Si fuera texto pasarlo entre comillas simples.
consulta = consulta & " where campo2=" & Cells(Target.Row, 1)
cn.Execute consulta, cn
cn.Close
Set cn = Nothing
End If
End Sub
Pon los datos buenos de la ruta de la bd, nombre de tabla, nombre del campo,....
SAludos.
| |
|
|
ebolo | |
|
Re: Combinar Access y Excel - 2007-10-29 19:23 - Respuesta 5
sobra la línea de msgbox, que la puedes eliminar.
| |
|
|
|