¿Cómo recoger el valor de una variable pública?

Tengo el siguiente código:

Funciona perfecto insertando lo en un modulo .

Public Function Dire() as String
Dire= "c:\USERS\w\........
End Function
Para mostrar el valor de la variable pongo
=Dire()

Hasta ahí todo bien. Mi pregunta es..

¿Cómo puedo cambiar el valor de la variable Diré desde un textbox de un formulario y que la almacene (aunque cierre el access) hasta que yo la cambie en el textbox?

Respuesta
2

Pedro, tus razones tendrás y no las discuto, pero teniendo la propiedad Filedialog, creo que estás trabajando de más. Por ejemplo, en el editor de VB, pulsa Herramientas-Referencias y activa la casilla Microsoft Office XX. X ( lo de xx es por la versión del Office). Luego en el formulario pega la funcion

Public Function buscaruta() As String
Dim fDialog As Office.FileDialog
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
With fDialog
.AllowMultiSelect = False
.ButtonName = "Seleccionar"
.Title = "Seleccionar la ruta"
.InitialFileName = Application.CurrentProject.Path
.InitialView = msoFileDialogViewDetails
.Filters.Clear
.Filters.Add "All Files", "*.*"
If .Show = True Then
buscaruta = .SelectedItems(1)
Else
MsgBox "Ha pulsado el botón <Cancelar>."
End If
End With
End Function

Y luego, en donde quieras, por ejemplo, en el evento Al recibir el enfoque del cuadro de texto Ruta pones

Me.Ruta.Value = buscaruta

Así, cuando pongas el cursor en ese cuadro se abre un "explorador" para que localices el archivo que quieras. Una vez que aceptes, en ese cuadro te guarda la ruta, y con ella ya haces lo que quieras, o bien con cualquier instrucción o bien con Application. FollowHyperlink Ruta

Hola icue gracias.

Lo que quiero hacer al completo es lo siguiente:

Quiero hacer como en muchos programas en los cuales mediante configuraciones se puede cambiar la carpeta donde busca los archivos. En esos programas en configurar te muestran en un textbox la ruta actual de la CARPETA y un botón para cambiarla mediante filedialog como tu explicas. 

En mi caso tu código no me valdría porque la base de datos la guardaré en un  formato que no hará falta tener office instalado para abrirlo. 

No sé si lo he entendido, pero... Supongamos que tengo un cuadro de texto donde muestra el nombre del archivo que me interesa en ese registro, sería el cuadro de texto Ruta

Defino la función

Public Function yoquese() As String
yoquese = "C:\users\......\documents\borrar\" & "" & Me.Ruta
End Function

En el evento Después de actualizar del cuadro de texto Ruta pongo

Texto11=yoquese

Si ahora cambio el nombre y pulso Enter

Hola icue eso es casi lo que busco. 

Creo que no me entiendes porque ne equivoqué  al hacer la pregunta en el enunciado de este foro.( este access me tiene loco jjjjjj )

Aver así.  Lo que quiero es cambiar en la función el valor de la variable "yoquese" por el siguiente:

C:\documents\imagenes (solo la dirección de la carpeta imagenes).

Pero quiero cambiarlo desde un textbox llamado ruta que se encuentra en un formulario llamado configuraciones.

Supongo que será esto, si yo tengo una tabla

En el formulario, le añado un cuadro de texto Texto11. La función la defino como

yoquese = "C:\users\....\documents\" & "" & Me.Texto11

Entonces escribo algo en el cuadro de texto Texto11

Y pulso Enter

. Cierro el formulario y cuando lo vuelvo a abrir

En el cuadro de texto escribo otra cosa y pulso Enter

En el evento Después de actualizar del cuadro de Texto11 le he puesto

ruta=yoquese

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas