Débutant Access, cherche ses marques en SQL

cs_bastoch Messages postés 6 Date d'inscription mercredi 18 février 2004 Statut Membre Dernière intervention 19 février 2004 - 19 févr. 2004 à 10:01
cs_bastoch Messages postés 6 Date d'inscription mercredi 18 février 2004 Statut Membre Dernière intervention 19 février 2004 - 19 févr. 2004 à 14:30
Bonjour,

Je suis actuellement en stage et je dois faire un petit applicatif de facturation sous access.

Je ne suis pas habitué à VB, ni access. Je viens de JAVA et PHP, et j'ai beau lire pas mal de post sur le forum, je n'arrive toujours pas à effectuer une requète et parcourir le record set.
DAO ADO ??? Kesako, car chacun y va de son petit chouchou sur les post.

Si quelqu'un avait l'extrème gentillesse de m'expliquer rapidos comment effectuer une requète ça serait bien cool.

De plus je suis un peu borné et j'essaye de faire ce que je ferais avec un formulaire web en access :

J'ai une liste de choix permanent, et je voudrais pourvoir créer une liste restreinte en ayant un bouton, ou une case a cocher, n'importe quoi en fait qui ne soit pas en relation avec la base. Juste un flag me permettant de selectionner ou pas cet item pour la suite du processus... Est ce une bataille perdue d'avance ou bien simplement une subtilité qui m'échappe.

Merci d'avances a ceux qui auront le temps de me répondre, et bonne journée à tout le monde.

Seb

9 réponses

cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
19 févr. 2004 à 12:44
labout
Le mieux est d'utiliser l'ADO car si l'on souhaite par la suite
substituer à la base ACCESS une base SQL Server, il n'y aura pas beaucouo de code à modifier.

Comment cela marche
1) Inclure la référence ADO Projet/Référence
2) Déclarer une connection
3) Lui attribuer la chaine de connection
4) ouvrir la connection
5) Créer le recordset pour récupérer les données ou lancer la requete de modification, d'ajout ou de suppression.

1) Dim Connect as new adodb.connection
2) Connect.connectstring= _
"connection=Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DSN=MS Access Database;DBQ=C:\Documents \mabase.mdb;DefaultDir=C:\Documents\Database;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;UID=admin;"
Connect.Open

dim req as string
dim rs as new adodb.recordset

req="select * from matable"
set rs=connect.execute(req) ' ouvre le recordset

Je conseille de mettre la déclaration de connection dans module et de mettre public
public Connect as new adodb.connection
Connect.connectstring= _
"connection=Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DSN=MS Access Database;DBQ=C:\Documents \mabase.mdb;DefaultDir=C:\Documents\Database;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;UID=admin;"

Ainsi la connection sera disponible dans toute l'application.
Après chaque utilisation utiliser
Connect.close
et pour utilisation
Connect.open

J'ai fourni une base de départ. Aller dans l'aide MSDN pour plus d'informations.
@+
0
cs_bastoch Messages postés 6 Date d'inscription mercredi 18 février 2004 Statut Membre Dernière intervention 19 février 2004
19 févr. 2004 à 12:59
Merci de ta réponse. Cela va me permettre de démarrer.

On dira certainement que je suis un peu obtu, mais sur MSDN je ne trouve que des infos relative a VB.NET

Est ce que par le plus grand des hasards un tutorial en ligne existe ???
0
cs_bastoch Messages postés 6 Date d'inscription mercredi 18 février 2004 Statut Membre Dernière intervention 19 février 2004
19 févr. 2004 à 12:59
Merci de ta réponse. Cela va me permettre de démarrer.

On dira certainement que je suis un peu obtu, mais sur MSDN je ne trouve que des infos relative a VB.NET

Est ce que par le plus grand des hasards un tutorial en ligne existe ???
0
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
19 févr. 2004 à 13:01
labout
Tu as l'aide de VB6. L'aide de VB6 ne se trouve plus chez Microsoft.
Il faut installer l'aide de VB6 sur CD1 MSDN puis CD2
@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bastoch Messages postés 6 Date d'inscription mercredi 18 février 2004 Statut Membre Dernière intervention 19 février 2004
19 févr. 2004 à 13:04
oups... j'ai appuyé deux fois.

Par ailleurs est il possible d'avoir un formulaire listant le contenu d'une table et un champ qui va chercher des infos dans une autre table ?
par exemple :
Selected ID Name
Oui/non 111 Essai

Les champs selected et ID font partis d'une même table, NAme provient d'une autre table, et l'ID est le même sur les 2 tables...

Merci d'une aide eventuelle.
0
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
19 févr. 2004 à 13:12
labout

c'est dans la requete
Soit une table Client avec idclient, nom
une table Ventes avac IdClient, date, montant

SELECT client.idClient,client.nom, ventes.[date],ventes.Montant
From client, ventes
WHERE client.idclient=ventes.idcelent

La jointure est faite sur l'id client.

J'ai mis sur 4 lignes pour faciliter la lecture.
Note [date] car c'est un mot réservé, il faut faire aussi pour champs ayant des blancs ou des accents.

Il n'y a pas de limite de jointures une requete peut présenter 10 tables.
@+
0
cs_bastoch Messages postés 6 Date d'inscription mercredi 18 février 2004 Statut Membre Dernière intervention 19 février 2004
19 févr. 2004 à 13:24
Merci, mais ca je connaissais, mon problème etait plus vis à vis d'access. comment faire pour que l'information issue de l'autre table soit affichée sur le formulaire.

Par contre je n'ai pas de CD de VB6; juste l'installe d'access...
et c'est un peu fouilli :)

Mais je faire un peu d'archéologie.
0
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
19 févr. 2004 à 13:49
labout

Il faut alimenter par le code le contenu des zonesion
par exemple dans une fonction
Recherche(rs)

function refresh(rs as adodb.recordset)
text1.text=iif(isnull(rs.fields("nom").value,"",rs.fields("nom").value)
'etc...
end funct

@+
0
cs_bastoch Messages postés 6 Date d'inscription mercredi 18 février 2004 Statut Membre Dernière intervention 19 février 2004
19 févr. 2004 à 14:30
???
J'ai essayé d'adapter ce code, mais pas moyen avec un formulaire continu vu que tout les champs on le meme nom...
Ce qui n'est pas très pratique.

Mais comme je le disais plus haut je suis habitué au interface web, ou bien java, et je n'ai pas la "logique access"...
Peut etre que je cherche a faire qqch qui ne ce se fait pas sous access...
0
Rejoignez-nous