• Domingo 22 de Diciembre de 2024, 23:28

Autor Tema:  Obteniendo Datos Hipervinculo De Una Base De Datos  (Leído 1615 veces)

Lia_lm

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Obteniendo Datos Hipervinculo De Una Base De Datos
« en: Miércoles 3 de Marzo de 2004, 16:21 »
0
:hola:

Hola amigos, espero esten super bien !!!!

Les cuento que estoy diseñando una programa que me permita hacer links a otros archivos que en mi caso son pdf's, estoy utilizando como gestor de base de datos Access, ustedes saben que se puede declarar como tipo de un dato, hipervinculo verdad?, bueno, el problema es cuando jalo estos datos en visual basic, en una herramienta grilla (True DB grid), la cual te ofrece muchas facilidades, cuando jala los datos de la tabla no las muestra como hipervinculo lo que no me permite vincular a donde esta direcionada, vi algunos ejemplo incluso en esta pagina sobre como crear hipervinculos (esta en trucos)pero parece que solo funcionan con una direccion de internet o un e-mail y no con una direcion en la misma pc, hize varios cambios y no se puede.
Espere que alguien pueda compartir sus conocimientos, les agradeceria mucho porfa.

Lia  ;)

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Obteniendo Datos Hipervinculo De Una Base De Datos
« Respuesta #1 en: Jueves 4 de Marzo de 2004, 12:49 »
0
Hola Lia_lm.

Puedes utilizar la función ShellExecute del api para abrir el vínculo al que apunta el texto del grid... Abrirás el archivo con la aplicación que esté asociada con su extensión.

Suerte.

QliX=D!

  • Miembro MUY activo
  • ***
  • Mensajes: 214
    • Ver Perfil
Re: Obteniendo Datos Hipervinculo De Una Base De Datos
« Respuesta #2 en: Jueves 4 de Marzo de 2004, 14:28 »
0
Proba de usar un MSHFlexiGrid o Un MSFlexigrid que muestran los links como links creo...

slds.
QliX=D! - From the top of Tsunami

Lia_lm

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Obteniendo Datos Hipervinculo De Una Base De Datos
« Respuesta #3 en: Viernes 5 de Marzo de 2004, 16:01 »
0
Hola Brroz.... :)
Te cuento que mi base de datos es de productos en la que tengo un campo de que se llama catalogos que tiene como registros la direcion del catalogo de cada producto por ejemplo: c: \catalogos\fibra.pdf como veras de paso son archivos pdf, osea los links son dentro de mi disco duro.
Si, utilize el ShellExecute esta muy bueno, pero solo abre links Web o e-mails, porque hize la prueba con mis datos y nada, talvez hay que cambiar algun parametro y estoy viendo esto, de todas maneras agradeceria culaquier sugerencia.

Gracias
 
Lia

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Obteniendo Datos Hipervinculo De Una Base De Datos
« Respuesta #4 en: Martes 9 de Marzo de 2004, 09:05 »
0
Hola Lia.

Si al hacer doble click sobre un archivo se abre con la aplicación que tiene asociada mediante su extensión, este mismo archivo se debería abrir de igual forma utilizando ShellExecute:

Código: Text
  1.  
  2.  Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
  3. Private sub RunFile(Byval FilePathFileName as string)
  4.    ShellExecute 0&, "Open", FilePathFileName, "", "", 5&
  5. End Sub
  6.  
  7.  

Suerte.

Lia_lm

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Obteniendo Datos Hipervinculo De Una Base De Datos
« Respuesta #5 en: Martes 9 de Marzo de 2004, 16:26 »
0
Hola Brroz  :hola:

Que tal como estas? espero que super bien....
Te cuento que si me dio con el codigo que escribiste, gracias por la ayuda realmente me ayudo, ahora ya se emlazan a mis archivos.

Pero surgio un pequeño detalle, que crees?, como habia mencionado anteriormente, para obtermis datos de la base de datos uso la herramienta APEX TRUE DB GRID que es una grilla que te muestra todo en una tabla, (espero la conozcas) en la que para para enlazar a mis archivos tengo que identificar la columna (que en mi caso es la 6) en el evento click ya que este es el campo que tiene los registros con direciones que se viculan,como podras ver y recien despues del click hacer el enlace (simulando un poco lo que se hace en la web):

Private Sub tdbg_Click()
If tdbg.Col = 6 Then
      if tdbg.Columns(6).Text <> vbNullString Then
         RunFile (tdbg.Columns(6).Text)
       End If
End If
End Sub

El problema es que cuando hago click en la columna 6 en algun registro de esta columna (que es una direccion), no la toma en cuenta, sino al siguiente click y a si va tomando retrasado las direciones,  pero las muestra no se parece que al principio el no tuviera nada por eso se atrasa el puntero o el evento, no se sipuedas darme alguna sugerencia porfa.

Y otra vez gracias por la ayuda...
Lia :lol:

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Obteniendo Datos Hipervinculo De Una Base De Datos
« Respuesta #6 en: Martes 9 de Marzo de 2004, 16:41 »
0
Hola Lia.

No conozco el grid que utilizas, pero para intentar solucionar lo que te pasa, prueba alguna de estas cosas:

- Añade DoEvents antes de ejecutar la llamada a 'RunFile'.

- Cuando haces click sobre un control, lo eventos que se desencadenan son varios (normalmente MouseDown, Click y MouseUp)... Puede ser que el control que usas actualice el contenido de la columna en un evento que ocurre después de click, por lo que el contenido de la columna al desencadenarse el evento click no es el que tu esperas... Indentifica los eventos que te proporciona el control, pues tal vez tengas que controlar el 'click' sobre la celda de otra forma...

Suerte.