Difference between revisions of "FR/FAQ/Base/FAQ MS Access et Base"

From Apache OpenOffice Wiki
< FR‎ | FAQ‎ | Base
Jump to: navigation, search
(Deleted link to category 'Quality Assurance')
 
(19 intermediate revisions by 6 users not shown)
Line 11: Line 11:
 
== Est-ce que je peux utiliser les bases de données MS Access avec Base ? ==
 
== Est-ce que je peux utiliser les bases de données MS Access avec Base ? ==
  
Sous Windows : oui. Vous ne pouvez les ouvrir directement avec <code> Fichier|Ouvrir</code>, mais vous pouvez accéder aux données qu'elles contiennent. Pour cela, vous avez besoin d'un document Base qui contient les informations de connexion. Pour plus de détails, voir [[Connecting to Microsoft Access]].
+
Sous Windows : oui. Vous ne pouvez les ouvrir directement avec <code> Fichier|Ouvrir</code>, mais vous pouvez accéder aux données qu'elles contiennent. Pour cela, vous avez besoin d'un document Base qui contient les informations de connexion. Pour plus de détails, voir [[Fr.openoffice.org/FAQ/Base/Se connecter à une base Microsoft Access|Se connecter à une base Microsoft Access]].
  
 
Vous pouvez modifier les données dans les tables, et vous pouvez ajouter ou supprimer des enregistrements.
 
Vous pouvez modifier les données dans les tables, et vous pouvez ajouter ou supprimer des enregistrements.
Line 40: Line 40:
 
=== En utilisant un formulaire autonome pour lancer la base de données Base ===
 
=== En utilisant un formulaire autonome pour lancer la base de données Base ===
  
== Our Access databases uses "Workgroup Security" to control group/user permission to view/maintain data? ==
+
== Notre base MS Access utilise "Workgroup Security" pour gérer les  droits des groupes/utilisateurs à voir/modifier les données? ==
  
This question points out what is a fundamental difference between OOoBase and MS Access (MSA). In the case of MSA there is one and only one database engine in use - although you may link tables in MSA to external datasource - MS Jet is still the only database engine actually used by MSA.
+
Cette question met en évidence une différence fondamentale entre OOoBase et MS Access (MSA). Dans le cas de MSA, il y a un et un seul moteur de base de données - même s'il est possible de lier des tables dans MSA à des bases de données externes - MS Jet est finalement le seul moteur réellement utilisé par MSA.
  
In Base (OOoBase) this is not the case at all. The Base database document is simply a front end (client application) to a variety of database engines. In one of these forms it embeds a HSQLDB database into the ODB file itself, many people simply see this as the only Base database format. That is totally mistaken. In this instance of an embedded database there is no support for multiple users and of course no support for groups therefore. However, that is only one of the ways Base can be configured.
+
Dans Base (OOoBase) ce n'est pas du tout le cas. Le fichier base de données de Base est simplement un frontal (application client) de différents moteurs de bases de données. Sous l'une de ses formes, il incorpore une base HSQLDB à l'intérieur même du fichier ODB et beaucoup pensent qu'il s'agit là du seul format de base de données disponible. Ce qui est complètement faux. Pour poursuivre avec cet exemple de base incorporée, on ne bénéficie dans ce cas d'aucun support pour les accès concurrents (multi-utilisateurs) et donc par conséquent pas de support pour la notion de groupe. Mais ce n'est que l'une des façons de configurer Base.
  
You are free to use Base as the front end to a HSQLDB database in server mode. HSQLDB is a very small footprint, low administration database engine and in server mode has full support for users / groups. For larger numbers of users you could just as easily configure Base to work with MySQL, PostgreSQL, Firebird, Oracle, or MS SQL Server.
+
Vous pouvez librement utiliser Base comme frontal pour une base HSQLDB en mode serveur. HSQLDB est un moteur de base de données de très faible encombrement et dont l'administration est très allégée. En mode serveur, il fournit un support complet pour les notions d'utilisateurs et de groupes. Lorsqu'un grand nombre d'utilisateurs doit être géré vous pouvez tout aussi facilement configurer Base de manière à interfacer des bases comme MySQL, PostgreSQL, Firebird, Oracle, ou MS SQL Server.
  
There is another significant difference between MSA and Base regarding this then. In MSA you would deploy one MDB (or one of its variants ) file, then have each user in the workgroup see this file and open it.
+
Pour poursuivre sur ce thème, il a encore une autre différence entre MSA et Base. Sous MSA, vous déployez un fichier MDB (ou l'une de ses variantes) auquel accède chaque utilisateur du groupe. Avec Base, chaque utilisateur reçoit son propre fichier ODB et chacun se connecte au serveur des données partagées. De cette manière, chacun dispose de son propre espace pour ses requêtes et ses rapports, mais celà complique le déploiement des formulaires, requêtes et rapports communs.
 
 
In Base each user would have their own ODB file and each of these would be connected to the shared data server. In this way each user would have their own space for custom queries and reports - but it makes distribution of common forms, queries and reports more work.
 
  
 
== Un formulaire Base est-il différent d'un formulaire MSA ? ==
 
== Un formulaire Base est-il différent d'un formulaire MSA ? ==
Line 60: Line 58:
 
Dans Base, les formulaires virtuels sont appelés "sous-formulaires". Vous pouvez les gérer en ouvrant le formulaire en mode édition puis en cliquant sur le bouton "Navigateur de formulaire", dans la barre d'outils "Conception de formulaire".
 
Dans Base, les formulaires virtuels sont appelés "sous-formulaires". Vous pouvez les gérer en ouvrant le formulaire en mode édition puis en cliquant sur le bouton "Navigateur de formulaire", dans la barre d'outils "Conception de formulaire".
  
== Où sont les requêtes d'effacement ou de mise à jour ? ==
+
== Où sont les instructions INSERT, UPDATE , DELETE ? ==
Base ne supporte pas actuellement la construction de requêtes d'effacement, d'insertion ou de mise à jour dans le concepteur de requêtes.
+
Base ne supporte pas actuellement la construction d'instructions d'effacement, d'insertion ou de mise à jour dans le concepteur de requêtes.
  
 
=== Actions équivalentes ===  
 
=== Actions équivalentes ===  
==== ''Au moyen du Concepteur de requêtes'' ====
+
==== ''Au moyen de <code>Outils|SQL ...</code>'' ====
Vous pouvez réaliser les actions équivalentes dans l'interface à l'aide du concepteur ou à l'aide de commandes SQL.
+
Vous pouvez exécuter ces instructions dans l'interface graphique à l'aide de <code>Outils|SQL ...</code>.
 +
 
 +
La syntaxe supportée dépend du moteur de base de données auquel votre document Base est connecté. Consultez la documentation du moteur de base de données concerné.
  
 
==== ''Au moyen d'une macro'' ====
 
==== ''Au moyen d'une macro'' ====
  
== I want to filter my form based on the contents of a combobox? ==
+
== Je voudrais filtrer mon formulaire à partir du contenu d'une liste combinée ==
  
 
== Conversion de mes modules [[VBA]] en modules Base ==
 
== Conversion de mes modules [[VBA]] en modules Base ==
Line 78: Line 78:
  
 
Sous Access VBA, "me" possède les attributs de deux objets distincts dans OOoBasic :  
 
Sous Access VBA, "me" possède les attributs de deux objets distincts dans OOoBasic :  
TextDocument et DataForm.
+
TextDocument et DataForm. L'objet TextDocument est employé par exemple pour contrôler la taille de la fenêtre et son placement sur l'écran. DataForm, quant à lui, supporte les fonctions d'ensemble de résultats, comme First, Filter, InsertRow.
 
 
L'objet TextDocument est employé par exemple pour contrôler la taille de la fenêtre et son placement sur l'écran.
 
 
 
Tandis que DataForm supporte les fonctions d'ensemble de résultats, comme First, Filter, InsertRow.
 
  
 
En OOoBasic la pseudo variable thisComponent serait normalement de type TextDocument, alors que thisComponent.DrawPage.Forms(0) référencerait le premier DataForm possédé par TextDocument.
 
En OOoBasic la pseudo variable thisComponent serait normalement de type TextDocument, alors que thisComponent.DrawPage.Forms(0) référencerait le premier DataForm possédé par TextDocument.
  
Peut-être un équivalent plus proche est d'utiliser la hiérarchie des propriétaires de l'objet pour remonter au formulaire. Par exemple, si nous avons une simple table et un bouton, alors  nous ferions ceci dans la macro appelée par l'événement 'onClick' (ou, comme OOBase l'appelle, l'événement "Sur initialisation") : Création d'une macro dans une bibliothèque nommée onButtonClick(oEv as object)
+
Peut-être un équivalent plus proche est d'utiliser la hiérarchie des propriétaires de l'objet pour remonter au formulaire. Par exemple, si nous avons une simple table et un bouton, alors  nous ferions ceci dans la macro appelée par l'événement "onClick" (ou, comme OOBase l'appelle, l'événement "Sur initialisation") : Création d'une macro dans une bibliothèque nommée onButtonClick(oEv as object)
  
 
     sub onButtonClick( oEv as object )
 
     sub onButtonClick( oEv as object )
Line 101: Line 97:
 
        
 
        
 
       oDocument = thisComponent
 
       oDocument = thisComponent
       ' oDocument est mainyenany le textDocument affiché
+
       ' oDocument est maintenant le textDocument affiché
 
       ' dans la fenêtre à l'écran
 
       ' dans la fenêtre à l'écran
 
      
 
      
Line 128: Line 124:
 
   End Sub
 
   End Sub
  
Pour ce type de recherche mono-colonne, il nous est facile de créer notre propre équivalent de findfirst en OOoNasic :
+
Pour ce type de recherche mono-colonne, il nous est facile de créer notre propre équivalent de findfirst en OOoBasic :
  
 
  Sub Find_Combo_AfterUpdate( OEv as Object)
 
  Sub Find_Combo_AfterUpdate( OEv as Object)
Line 181: Line 177:
 
  end function
 
  end function
  
=== How do I set the filter for a sub-form only? ===
+
=== Comment positionner un filtre pour un sous-formulaire seulement ? ===
  
 
=== Existe-t-il un équivalent à DoCmd RunSQL ? ===
 
=== Existe-t-il un équivalent à DoCmd RunSQL ? ===
  
Oui, dans OOoBase, on utilise soit un objet Statement soit un objet PreparedStatement pour réaliser la même foncyionnalité. Dans OOoBase nous devrons également choisir d'utiliser execute ou executeUpdate.
+
Oui, dans OOoBase, on utilise soit un objet '''Statement''' soit un objet '''PreparedStatement''' pour réaliser la même fonctionnalité. Dans OOoBase nous devrons également choisir d'utiliser '''execute''' ou '''executeUpdate'''.
  
 
Par exemple ligne VBA
 
Par exemple ligne VBA
Line 205: Line 201:
 
   DoCmd RunSQL( "DELETE FROM tContacts WHERE Status = 'INACTIVE'" )
 
   DoCmd RunSQL( "DELETE FROM tContacts WHERE Status = 'INACTIVE'" )
  
nous pousserait à utiiser la méthode executeUpdate sur une instruction
+
nous pousserait à utiliser la méthode executeUpdate sur une instruction
  
 
   oStatement.executeUpdate( "DELETE FROM ""tContacts"" WHERE ""Status"" = 'INACTIVE'"  )
 
   oStatement.executeUpdate( "DELETE FROM ""tContacts"" WHERE ""Status"" = 'INACTIVE'"  )
  
La règle génétale étant :  
+
La règle générale étant :  
 
*si l'instruction SQL renvoie des enregistrements, alors utiliser execute or executeQuery.
 
*si l'instruction SQL renvoie des enregistrements, alors utiliser execute or executeQuery.
 
*si l'instruction SQL ne renvoie pas d'enregistrements, alors utiliser executeUpdate.
 
*si l'instruction SQL ne renvoie pas d'enregistrements, alors utiliser executeUpdate.
  
== If I use Lookup fields/columns in my  Access tables what can I do in Base? ==
+
== Si j'utilise des champs ou des colonnes de recherche dans mes tables Access, que puis-je faire sous Base ? ==
There are two parts to this answer, given that Base does not support Lookup column types in tables.
+
Cette réponse est en deux parties car Base ne supporte pas les colonnes de recherche dans les tables.
  
When a table is displayed in a custom form use of a bound listbox will give you the same functionality. An example of [[adding a listbox to a form]] and to a grid control on a form is at this page.
+
Lorsqu'une table est affichée dans un formulaire personnalisé, une boîte liste vous donne les mêmes fonctionnalités. Pour un exemple de l'ajout d'une boîte liste dans un formulaire et à contrôle grille sur un formulaire, voir [[cette page]].
  
In a table view ( double clicking on the table name ) there is no equivalent to this.
+
En vue table (en double cliquant le nom de la table), il n'existe pas d'équivalent.
  
==How do I use Domain Aggregate functions in Base?==
+
==Comment utiliser les fonction d'agrégat de domaine sous Base ?==
  
Domain Aggregate functions such as '''DCount''', '''DLookup''', '''DMax''' etc have no direct equivalent in Base. You will have to write or design queries to return these results using the appropriate SQL functions.
+
Les fonctions d'agrégat de domaine telles que '''DCount''', '''DLookup''', '''DMax''' etc. n'ont pas d'équivalent direct sous Base. Vous devez écrire des requêtes retournant ces résultats au moyen des fonction SQL appropriées.
  
 
==Comment puis-je utiliser des contrôles calculés dans mes formulaires et rapports ?==
 
==Comment puis-je utiliser des contrôles calculés dans mes formulaires et rapports ?==
Line 238: Line 234:
 
acknowledge of the author or the [http://wiki.services.openoffice.org/wiki/Project_Lead OOo QA Project Lead/Co-Leads].''
 
acknowledge of the author or the [http://wiki.services.openoffice.org/wiki/Project_Lead OOo QA Project Lead/Co-Leads].''
  
[[Category:Quality Assurance]]
 
 
[[Category:Database]]
 
[[Category:Database]]
 
[[Category:Base Documentation]]
 
[[Category:Base Documentation]]
 
[[Category:User FAQ]]
 
[[Category:User FAQ]]
 +
 +
[[Category: FR/Documentation/FAQ/Base]]

Latest revision as of 08:51, 30 March 2010

Questions fréquentes et réponses pour les utilisateurs migrant de Microsoft Access (MSA) vers OpenOffice.org Base.

Ce document est le fruit des efforts de la communauté des utilisateurs - participez à améliorer la base de connaissance si vous le pouvez.

Veuillez néanmoins essayer de proposer des questions et des réponses d'ordre général. Si une réponse concerne une fonctionnalité spécifique à une version de MSA, veuillez indiquer le numéro de version.

En particulier, ne faites un ajout au wiki que si vous proposez une réponse à la question que vous posez. ( Si vous pensez revenir rapidement avec la réponse, n'hésitez pas à inscrire la question d'abord, - mais revenez vite)

Si vous avez des questions particulières ou si vous cherchez de l'aide en général, vous pouvez vous diriger vers la liste de discussion des utilisateurs Francophones.

Est-ce que je peux utiliser les bases de données MS Access avec Base ?

Sous Windows : oui. Vous ne pouvez les ouvrir directement avec Fichier|Ouvrir, mais vous pouvez accéder aux données qu'elles contiennent. Pour cela, vous avez besoin d'un document Base qui contient les informations de connexion. Pour plus de détails, voir Se connecter à une base Microsoft Access.

Vous pouvez modifier les données dans les tables, et vous pouvez ajouter ou supprimer des enregistrements. Vous pouvez créer de nouvelles tables mais vous ne pouvez pas modifier la structure des tables existantes.

Les requêtes MS Access sont affichées comme des vues dans la zone des tables. Vous pouvez utiliser le résultat des requêtes mais vous n'avez pas accès aux définitions sous-jacentes, et vous ne pouvez pas les modifier.

Vous ne pouvez pas lire les formulaires et les rapports MS Access.

Est-ce que je peux lire ma base de données Base avec MS Access ?

Il est impossible d'utiliser le mécanisme de liaisons de tables de MS Access pour se connecter à une base de données Base.

Il est possible de mettre à jour des données dans une base de données MS Access depuis une base de données Base. À l'heure actuelle, cela impose que la base de données MS Access soit ouverte et verrouillée par le document Base.

Des données peuvent également être renvoyée vers une base de données MS Access en créant une table liée à un fichier CSV dans la base de données Base et en liant ce fichier à une table dans la base de données MS Access.

Puis-je créer une base de données MS Access (fichier mdb) avec Base?

Non. Base ne permet pas de créer de nouvelles bases MS Access ni de nouvelles tables, requêtes ou formulaires dans une base existante.

Puis-je créer un Menu Général dans Base?

Base n'offre pas pour le moment d'assistant pour créer un Menu Général. Il est possible néanmoins d'aboutir à un résultat similaire en utilisant l'une ou l'autres de ces deux techniques:

En ouvrant un formulaire par défaut par macro

En utilisant un formulaire autonome pour lancer la base de données Base

Notre base MS Access utilise "Workgroup Security" pour gérer les droits des groupes/utilisateurs à voir/modifier les données?

Cette question met en évidence une différence fondamentale entre OOoBase et MS Access (MSA). Dans le cas de MSA, il y a un et un seul moteur de base de données - même s'il est possible de lier des tables dans MSA à des bases de données externes - MS Jet est finalement le seul moteur réellement utilisé par MSA.

Dans Base (OOoBase) ce n'est pas du tout le cas. Le fichier base de données de Base est simplement un frontal (application client) de différents moteurs de bases de données. Sous l'une de ses formes, il incorpore une base HSQLDB à l'intérieur même du fichier ODB et beaucoup pensent qu'il s'agit là du seul format de base de données disponible. Ce qui est complètement faux. Pour poursuivre avec cet exemple de base incorporée, on ne bénéficie dans ce cas d'aucun support pour les accès concurrents (multi-utilisateurs) et donc par conséquent pas de support pour la notion de groupe. Mais ce n'est que l'une des façons de configurer Base.

Vous pouvez librement utiliser Base comme frontal pour une base HSQLDB en mode serveur. HSQLDB est un moteur de base de données de très faible encombrement et dont l'administration est très allégée. En mode serveur, il fournit un support complet pour les notions d'utilisateurs et de groupes. Lorsqu'un grand nombre d'utilisateurs doit être géré vous pouvez tout aussi facilement configurer Base de manière à interfacer des bases comme MySQL, PostgreSQL, Firebird, Oracle, ou MS SQL Server.

Pour poursuivre sur ce thème, il a encore une autre différence entre MSA et Base. Sous MSA, vous déployez un fichier MDB (ou l'une de ses variantes) auquel accède chaque utilisateur du groupe. Avec Base, chaque utilisateur reçoit son propre fichier ODB et chacun se connecte au serveur des données partagées. De cette manière, chacun dispose de son propre espace pour ses requêtes et ses rapports, mais celà complique le déploiement des formulaires, requêtes et rapports communs.

Un formulaire Base est-il différent d'un formulaire MSA ?

Oui. Il y a des différences importantes dans la façon dont sont implémentés les formulaires dans Access et dans Base.

Des formulaires virtuels dans des formulaires Base

Dans Base, les formulaires virtuels sont appelés "sous-formulaires". Vous pouvez les gérer en ouvrant le formulaire en mode édition puis en cliquant sur le bouton "Navigateur de formulaire", dans la barre d'outils "Conception de formulaire".

Où sont les instructions INSERT, UPDATE , DELETE ?

Base ne supporte pas actuellement la construction d'instructions d'effacement, d'insertion ou de mise à jour dans le concepteur de requêtes.

Actions équivalentes

Au moyen de Outils|SQL ...

Vous pouvez exécuter ces instructions dans l'interface graphique à l'aide de Outils|SQL ....

La syntaxe supportée dépend du moteur de base de données auquel votre document Base est connecté. Consultez la documentation du moteur de base de données concerné.

Au moyen d'une macro

Je voudrais filtrer mon formulaire à partir du contenu d'une liste combinée

Conversion de mes modules VBA en modules Base

Qu'est-il arrivé à "me" ?

Il n'y a pas de réplique exacte à la pseudo variable ME de VBA.

Sous Access VBA, "me" possède les attributs de deux objets distincts dans OOoBasic : TextDocument et DataForm. L'objet TextDocument est employé par exemple pour contrôler la taille de la fenêtre et son placement sur l'écran. DataForm, quant à lui, supporte les fonctions d'ensemble de résultats, comme First, Filter, InsertRow.

En OOoBasic la pseudo variable thisComponent serait normalement de type TextDocument, alors que thisComponent.DrawPage.Forms(0) référencerait le premier DataForm possédé par TextDocument.

Peut-être un équivalent plus proche est d'utiliser la hiérarchie des propriétaires de l'objet pour remonter au formulaire. Par exemple, si nous avons une simple table et un bouton, alors nous ferions ceci dans la macro appelée par l'événement "onClick" (ou, comme OOBase l'appelle, l'événement "Sur initialisation") : Création d'une macro dans une bibliothèque nommée onButtonClick(oEv as object)

   sub onButtonClick( oEv as object )
     ' oEv est l'objet événement passé automatiquement
     ' il a une propriété SOURCE qui représente 
     ' le bouton qui a initié cet appel
   
     dim oForm as variant
   
     oForm = oEv.Source.Model.Parent
      ' oForm est maintenant l'objet formulaire virtuel
     
     dim oDocument as variant
     
     oDocument = thisComponent
      ' oDocument est maintenant le textDocument affiché
      ' dans la fenêtre à l'écran
   
   end sub

Où est findfirst ?

Base ne dispose pas d'une fonction FindFirst sur l'ensemble de lignes comme MS Access. Quel est la fonction équivalente dans Base ?

Exemple en VBA sous MSAccess :

Soit une liste combinée qui liste tous les prospects dans la base de données et permet la sélection de l'un d'eux, de manière que le formulaire présente automatiquement les données de celui-ci.

 Private Sub Find_Combo_AfterUpdate()
 Dim strCriteria As String
 
 strCriteria = "[Prospect_ID] =" & Me.Find_Combo
 
 Me.recordsetclone.FindFirst (strCriteria)
 If me.recordsetclone.NoMatch Then
     MsgBox "Aucune donnée trouvée"
 Else
     Form_F_Prospects.Bookmark = me.recordsetclone.Bookmark
 End If
 
 End Sub

Pour ce type de recherche mono-colonne, il nous est facile de créer notre propre équivalent de findfirst en OOoBasic :

Sub Find_Combo_AfterUpdate( OEv as Object)
   ' Oev est l(objet événement envoyé automatiquement lors de l'appel
   ' de la procédure
   ' Oev a une propriété Source
   ' qui désigne le contrôle qui a déclenché
   ' l'appel à cette procédure
 
 Dim oForm as variant ' l'objet formulaire de données 
 
 Dim oComboBox as variant ' la liste combinée
 
 Dim oBkMark as variant
 
 oForm = oEv.Source.Model.Parent
 
 oComboBox = oForm.getByName( "Find_Combo" )
   
 oBkMark = FindFirst( oForm.CreateResultSet(), "Prospect_ID", oComboBox.Text )
     ' ici oForm.CreateResultSet() est équivalent à me.recordsetclone
 if not IsEmpty( oBkMark ) then
 		oForm.moveToBookmark( oBkMark )
 else
 	msgBox( oComboBox.Text & " non trouvé" )
 end if
 
end sub
function FindFirst( oRS as variant, ColName as string, SearchVal as string ) as variant
       ' oRS est un objet ResultSet
       ' ColName est le nom d'une colonne dans l'ensemble résultat
       ' SearchVal est
   dim colIDX as integer
   dim NotFound as variant
 
   FindFirst = notFound
   colIDX = oRS.FindColumn( ColName )
   oRS.First
   do 
     if oRS.getString( colIDX ) <> Searchval
       oRS.Next
       if oRS.isAfterLast then
         exit do
       endif
     else
       FindFirst = oRS.getBookMark
       exit do
     end if
   loop while oRS.isAfterLast <> True
 
end function

Comment positionner un filtre pour un sous-formulaire seulement ?

Existe-t-il un équivalent à DoCmd RunSQL ?

Oui, dans OOoBase, on utilise soit un objet Statement soit un objet PreparedStatement pour réaliser la même fonctionnalité. Dans OOoBase nous devrons également choisir d'utiliser execute ou executeUpdate.

Par exemple ligne VBA

 DoCmd RunSQL( "SELECT * FROM tContacts" )

devient dans OOoBase

 Dim oStatement as variant
 
 oStatement = OForm.ActiveConnection.CreateStatement
   ' où oForm est un objet DataForm
   ' NOTE vous pourriez réaliser exactement la même chose
   ' avec un objet resultSet ou rowSet, comme ceci
   ' oStatement = OResultSet.ActiveConnection.CreateStatement
 
 oStatement.execute( "SELECT * FROM ""tContacts"""  )
 

Par ailleurs, la ligne VBA

 DoCmd RunSQL( "DELETE FROM tContacts WHERE Status = 'INACTIVE'" )

nous pousserait à utiliser la méthode executeUpdate sur une instruction

 oStatement.executeUpdate( "DELETE FROM ""tContacts"" WHERE ""Status"" = 'INACTIVE'"  )

La règle générale étant :

  • si l'instruction SQL renvoie des enregistrements, alors utiliser execute or executeQuery.
  • si l'instruction SQL ne renvoie pas d'enregistrements, alors utiliser executeUpdate.

Si j'utilise des champs ou des colonnes de recherche dans mes tables Access, que puis-je faire sous Base ?

Cette réponse est en deux parties car Base ne supporte pas les colonnes de recherche dans les tables.

Lorsqu'une table est affichée dans un formulaire personnalisé, une boîte liste vous donne les mêmes fonctionnalités. Pour un exemple de l'ajout d'une boîte liste dans un formulaire et à contrôle grille sur un formulaire, voir cette page.

En vue table (en double cliquant le nom de la table), il n'existe pas d'équivalent.

Comment utiliser les fonction d'agrégat de domaine sous Base ?

Les fonctions d'agrégat de domaine telles que DCount, DLookup, DMax etc. n'ont pas d'équivalent direct sous Base. Vous devez écrire des requêtes retournant ces résultats au moyen des fonction SQL appropriées.

Comment puis-je utiliser des contrôles calculés dans mes formulaires et rapports ?

Dans Base, les formulaires et les rapports ne peuvent pas être employés pour réaliser des calculs. Il existe deux moyens d'obtenir un résultat calculé dans un formulaire ou un rapport.

A l'aide d'une requête

Modifiez la source de données du formulaire ou du rapport afin qu'elle réalise le calcul pour chaque enregistrement. Le résultat sera retourné dans un champ (calculé).

A l'aide d'une macro

Si le contrôle doit se mettre à jour à la volée pendant la saisie de données dans un formulaire, vous devrez écrire une petite macro qui réalisera le calcul. Vous en assignerez le résultat à l'événement approprié de l'un des contrôles de saisie de données (par ex. l'événement "Texte modifié").

Autor: MSA-Base Faq Drew 21:01, 11 September 2007 (CEST) '
Please do not change the logical content of this site without acknowledge of the author or the OOo QA Project Lead/Co-Leads.

Personal tools