Aquí podría ser tu PUBLICIDAD


Encuentre todos los usos de una consulta en una aplicación de acceso

votos
2

Hice una aplicación Access 2003 independiente con un montón de formularios que están comenzando a ponerse ingobernables. Estoy tratando de limpiarlo un poco y me gustaría hacer cosas como buscar todos los usos de una consulta para poder hacer algunas actualizaciones globales. Puedo usar ctrl-f para encontrar usos de una consulta en el código, pero mi pregunta es: ¿hay una manera fácil de buscar en toda la aplicación para encontrar dónde se utilizan las consultas en la ventana de propiedades del control, como cuando están directamente vinculados a un control ?

Sería bueno convertir programáticamente todas las propiedades de todos los formularios en archivos de texto.

Publicado el 12/03/2009 a las 21:54
fuente por usuario Dave
En otros idiomas...        العربية       

6 respuestas

votos
3

Haga clic con el botón derecho en la consulta en la ventana de la base de datos y seleccione "Dependencias del objeto" Esto le proporcionará la lista de formularios que lo albergan como una subforma.

Esto solo funciona si tiene activada la información de autocorrección del nombre de la pista, que es la predeterminada. Yo personalmente apago esto ya que hincha el DB.

Respondida el 12/03/2009 a las 10:35
fuente por usuario DJ.


Aquí podría ser tu PUBLICIDAD


votos
1

Al igual que DJ escribe: este es el camino a seguir. Funciona bastante bien, detecta todas las consultas, incluso las que se utilizan en cuadros combinados, etc. Aunque no creo que encuentre consultas que se utilizan en el código.

Y si cambia una consulta (el nombre por ejemplo) todas las referencias a esta consulta también se actualizarán.

Respondida el 13/03/2009 a las 09:49
fuente por usuario Birger

votos
0

Sé que esto es un poco viejo, pero parecía un desafío interesante. Si pega esto en un módulo y lo ejecuta, producirá un archivo de texto con RecordSource para cada formulario y RowSource para cada ComboBox o ListBox con RowSourceType de "Tabla / Consulta". Si recuerdo correctamente, debería obtener todas las propiedades donde podría usarse una consulta. Si no recuerdo correctamente, puede modificar el código para tomar los otros o cambiar el formato de la salida.

Si desea volcar todas las propiedades de todos los formularios, puede hacer un para cada ciclo en la colección de propiedades del formulario y escribirlo en un archivo. El problema es que los formularios tienen ciertas propiedades, como PrtMip y PrtDevName, que son estructuras y, por lo tanto, rompen los métodos de escritura o escritura, por lo que si intentaras escribirlas en un archivo, primero tendrías que hacer un manejo especial. . Además, creo que la propiedad del marcador también puede ser problemática.

Sub ListProperties()
    Dim frm As Object
    Dim ctl As Control

    Dim fs As Object
    Dim file As Object

    Set fs = CreateObject("Scripting.FileSystemObject")
    Set file = fs.CreateTextFile("C:\FormProps.txt", True)

    For Each frm In CurrentProject.AllForms
        DoCmd.OpenForm frm.Name, acNormal, , , , acHidden
    Next frm

    For Each frm In Forms
        file.writeline (frm.Name)
        file.writeline (String(Len(frm.Name), "-"))
        file.writeline "RecordSource" & Chr(9) & frm.Properties("RecordSource")

        For Each ctl In frm.Controls
            With ctl
                Select Case .ControlType
                    Case acComboBox, acListBox
                        .SetFocus
                        If .RowSourceType Like "Table/Query" Then
                            file.writeline Chr(9) & .Name & Chr(9) & "RowSource" & Chr(9) & .RowSource
                        End If
                End Select
            End With
        Next ctl

        file.writeline
    Next frm

    For Each frm In Forms
        DoCmd.Close acForm, frm.Name
    Next frm

End Sub
Respondida el 06/06/2009 a las 07:00
fuente por usuario Carlos Nunes-Ueno

votos
0

Como usuario de Access a largo plazo que se gana la vida con él, no recomiendo Name Autocorrección. Para este tipo de cosas utilizo una utilidad de búsqueda y reemplazo. He sido propietario desde hace mucho tiempo del Speed ​​Ferret de Black Moshannon , pero ha sido bastante problemático desde el lanzamiento de A2003, ya que no es compatible nativamente con versiones más recientes. Otra alternativa que realmente no he usado pero que otros recomiendan es Buscar y reemplazar de Rick Fisher .

Respondida el 14/03/2009 a las 11:52
fuente por usuario David-W-Fenton

votos
0

Los formularios se pueden guardar en archivos de texto usando SaveAsText:

Sub FormToText()
Dim frm
For Each frm In CurrentProject.AllForms
    Application.SaveAsText acForm, frm.Name, "c:\docs\" & frm.Name & ".txt"
Next
End Sub

Puede obtener una gran cantidad de información de las tablas del sistema MsysObjects y MsysQueries.

Respondida el 12/03/2009 a las 10:14
fuente por usuario Fionnuala

votos
-1

No hay nada integrado, pero debería poder obtener la funcionalidad escribiendo algún código que recorra la colección CurrentProject.AllForms para recorrer todos los formularios. Para cada formulario, verifique las propiedades que puedan tener la consulta en ellos y haga una lista.

Respondida el 12/03/2009 a las 10:07
fuente por usuario Chris Hynes