2017-10-17 13 views
0

Existe-t-il un moyen pour imiter rapidement toutes les propriétés d'un formulaire dans une nouvelle forme sans copier directement l'objet (Ctrl-C & V, etc.)?Arrondir à propos de la copie de formulaire

Éditer: Vous cherchez à copier dans une base de données Access entièrement différente.

+0

Je voudrais simplement copier et coller le formulaire, puis supprimer tous les contrôles sur celui-ci (et le code VBA, le cas échéant). Andre

+0

Beaucoup de ces réponses sont bonnes, mais je suppose que j'aurais dû mentionner que je voulais copier un formulaire, d'une base de données d'accès à une autre entièrement différente. –

+0

Puis ** importer ** le formulaire, puis supprimez tout ce dont vous n'avez pas besoin. – Andre

Répondre

1

Ouvrez chaque formulaire en mode Création, définissez-les comme égaux à une variable d'objet, puis définissez les propriétés du formulaire source sur les propriétés du formulaire de destination. Utilisez un funciton comme celui-ci dans un module public:

Public Sub UpdateForm(SourceForm as string, DestinationForm as string) 
    dim frm1 as new form 
    dim frm2 as new form 

    set frm1 = forms(SourceForm) 
    set frm2 = forms(DestinationForm} 

    '* List the properties you want to copy here: 

    With form2 
     .RecordSource = frm1.RecordSource 
     .Caption = frm1.Caption 
     .DataEntry = frm1.DataEntry 
     '* And so on for each property 
    End With 

    docmd.save acform, DestinationForm 

End Sub 

Si ce n'est pas un projet unique, j'inclure un code pour vérifier et ouvrir les formes si elles ne sont pas déjà ouvert.

+0

Notez que les propriétés complexes, telles que le module de formulaires et les contrôles, ne sont pas copiées facilement –

+0

Vous ne souhaitez pas copier les contrôles tels que les zones de liste déroulante ou les boutons. Mais je cherche à copier des choses comme "Default View: Continuous", Hauteur, BG Color, et Record Source (Par un nom de table ou une instruction SQL) –

0

File > Options > Object Designers > Form/Report Design View > Form template.

Définir le modèle de formulaire au nom d'un formulaire existant et qui sera utilisé pour toutes les nouvelles formes.

0

Vous pouvez copier un objet de formulaire en utilisant VBA d'une manière légèrement plus simple que ce que suggère DataWriter.

Vous pouvez utiliser l'instruction suivante dans la fenêtre immédiate:

DoCmd.TransferDatabase acExport, "Microsoft Access", CurrentProject.FullName, acForm, "Form1", "Form1_Copy" 

"Form1" est le nom de la forme source et "Form1_Copy" est le nom de la forme de destination.

+0

Ceci est la meilleure façon de copier le formulaire dans la nouvelle base de données. S'il est intéressé par la copie des propriétés du formulaire sans importer le formulaire, il nécessitera toutefois une automatisation. – DataWriter

+0

@DataWriter vous pouvez l'utiliser pour copier un formulaire dans la même base de données. Il n'y a aucune raison que cela se limite à de nouvelles bases de données. Bien sûr, si vous voulez supprimer tous les contrôles de formulaire, c'est une petite opération supplémentaire. Il est souvent plus facile de tout copier et de supprimer ce dont vous n'avez pas besoin que de copier uniquement ce dont vous avez besoin. –