Urgent aide sur une pti du bts !!!!

cs_guylux Messages postés 62 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 11 juin 2004 - 10 juin 2004 à 19:26
cs_guylux Messages postés 62 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 11 juin 2004 - 11 juin 2004 à 17:03
bonjour a tous

g un pb dans ma base access et mon code
c sur des listes ki sont remplis dans les propriétés des zones de liste avec des requetes
lorsque je veux supprimer ou ajouter dans la liste ca me met ca
erreur dexecution 3027
mise a jour impossible; la base de données ou lobjet est en lecture seul
jcomprend pas tout mon code fonctionne pourtant
le code est question ki merde:
Private Sub cmd_ajouter_Click()
Dim mabase As Database
Dim var As String
Dim req As String
Dim creq As Recordset
Dim trouve As Boolean

var = Me!lstperiph.Column(1, lstperiph.ListIndex)

Set mabase = CurrentDb()

req = "select [Posséder].poste_num, periph_libellé, [Posséder].periph_code " & _
"from Périphérique, Posséder " & _
"where [Périphérique].periph_code=[Posséder].periph_code " & _
"and [Posséder].poste_num ='" & Me!num & "'"

Set creq = mabase.OpenRecordset(req)

trouve = False
If creq.EOF = False Then
creq.MoveFirstWhile creq.EOF False And trouve False
If creq!periph_libellé = var Then
MsgBox ("L'ordinateur possède déjà ce périphérique !")
trouve = True
End If
creq.MoveNext
Wend
End If
If trouve = False Then
creq.Edit
creq!poste_num = Me!num
creq!periph_code = Me!lstperiph.ItemData(lstperiph.ListIndex)
creq.Update
End If

End Sub

Private Sub cmd_supp_Click()
Dim mabase As Database
Dim creq As Recordset
Dim req As String
Dim x As String
Dim trouve As Boolean

req = "select [Posséder].poste_num, periph_libellé, [Posséder].periph_code " & _
"from Périphérique, Posséder " & _
"where [Périphérique].periph_code=[Posséder].periph_code " & _
"and [Posséder].poste_num ='" & Me!num & "'"

Set mabase = CurrentDb
Set creq = mabase.OpenRecordset(req)
x = Me!lstperiph.Column(1, lstaff.ListIndex)
trouve = False

creq.MoveFirstWhile creq.EOF False And trouve False
If creq!periph_libellé = x Then
trouve = True
creq.Delete
End If
creq.MoveNext
Wend

End Sub

si kun sait et peut me sauver ca serait vraiment gentil
merci

jtourne en rond dans un monde ki ne tourne pas rond!

2 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
10 juin 2004 à 19:47
Salut, comme je ne sais pas ce que recouvre ton CurrentDB(),

voilà ce que dit la msdn de vb6 :

Note Si vous ouvrez un objet Recordset dans un espace de travail Microsoft Jet et si vous n'indiquez aucun type, OpenRecordset crée un objet Recordset de type Table si possible. Si vous indiquez une table liée ou une requête, la méthode OpenRecordset crée un objet Recordset de type Feuille de réponses dynamique (Dynaset). Dans le cas d'un espace de travail ODBCDirect, la valeur par défaut est dbOpenForwardOnly

Pour être sûr que je peux écrire dans un recordset, je précise :

Set creq = mabase.OpenRecordset(req,dbOpenDynaset)

Cela répond-il à ta question ?

Cordialement

CanisLupus
0
cs_guylux Messages postés 62 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 11 juin 2004
11 juin 2004 à 17:03
merci de me repondre
mais malheureusement le message derreur est toujour le meme, moi je pensait ke le pb venait du fait ke je rempli les listes dans les propriétés du formulaire et ke jessayai de changer dans le code ces valeurs
mais je ne sais pas trop.

jtourne en rond dans un monde ki ne tourne pas rond!
0