zefoucool
Messages postés1Date d'inscriptionjeudi 28 mars 2002StatutMembreDernière intervention28 mars 2002
-
28 mars 2002 à 09:49
cs_rafano
Messages postés14Date d'inscriptionmardi 12 mars 2002StatutMembreDernière intervention31 juillet 2002
-
28 mars 2002 à 15:27
Voici le code source de l'action open form d'un formulaire acces. L'ouverture se fait via un bouton sur un autre formulaire avec la commande DoCmd.Open form. L'argument OpenArgs contient une requête select (qui fonctionne) renvoyant un champ de type entier long.
Cependant, je reçois un message - incompatibilité de type au niveau de l'initialisation du recordset
Private Sub Form_Open(Cancel As Integer)
Dim sql As String
Dim answer As Variant
Dim force As Integer
Dim dext As Integer
Dim constit As Integer
Dim sag As Integer
Dim Intel As Integer
Dim Chari As Integer
Dim Values(6) As Integer
Dim Classe As String
Dim Race As String
Dim joueur As String
Dim idpj As String
Dim db As Database
Dim req As QueryDef
Dim recup As Recordset
Set db = CurrentDb()
Set recup = New ADODB.Recordset <- ceci a été ajouté après fouille minutieuse d'internet, mais cela n'a apparament aucun effet!
sql = OpenArgs
Set req = db.CreateQueryDef("", sql) <- j'ignore si c'est vraiment utile
Set recup = req.OpenRecordset <- c'est ici que je reçois l'erreur. J'ai tenté ceci aussi avec le même résultat
Set recup = db.openrecorset(sql)
joueur = recup.Fields(0).value <- c'est bien ça, non?
Me.list_values.RowSourceType = "liste valeurs"
idpj = InputBox("Entrez Un Idetifiant à votre nouveau personnage", "Creation d'un personnage (Avant tout!)")
Me.idpj = idpj
sql = "Insert Into Personnage (idpj) Values ('" & idpj & "')"
Set req = db.CreateQueryDef("", sql)
req.Execute
For cpt = 1 To 6
answer = InputBox("Veuillez Lancer 4 dés à 6 faces et entrez les valeurs ci-dessous" & Chr(13) & Chr(10) & "Ou appuyer sur Annuler pour activer l'auto-genertion de nombre", "Création de personnage(étape 1)")
Randomize
If answer = "" Then
answer = Int((6 * Rnd) + 1) + Int((6 * Rnd) + 1) + Int((6 * Rnd) + 1)
MsgBox "Le generateur a produit" & answer
End If
Values(cpt) = answer
Me.list_values.AddItem (answer)
Next cpt
Race = InputBox("Choississez une Race parmis les suivantes (ou une sous-race)" & Chr(13) & Chr(10) & " Humain, Halfelin, Gnome, Demi-Orque, Nain, Demi-Elfe, Elfe", "Création de personnage(étape 2)")
Classe = InputBox("Choississez une Classe parmis les suivantes (ou une sous-classe)" & Chr(13) & Chr(10) & " Barbare, Barde, Druide, Ensorceleur, Guerrier, Magicien, Moine, Paladin, Prêtre, Rôdeur, Roublard", "Création de personnage(étape 2)")
MsgBox "Appliquer les Valeurs aux differentes caracteristiques", , "Création de personnage(étape 3)"
sql = "INSERT INTO Personnage (idjoueur, idpj, race, classe) Values('" & joueur & "', '" & idpj & "', '" & Race & "', '" & Classe & "')"
Set req = db.CreateQueryDef("", sql)
req.Execute
cs_rafano
Messages postés14Date d'inscriptionmardi 12 mars 2002StatutMembreDernière intervention31 juillet 20021 28 mars 2002 à 15:27
Suggestions :
Tes codes
>sql = OpenArgs
Set req = db.CreateQueryDef("", sql) <- j'ignore si c'est vraiment utile
Set recup = req.OpenRecordset <- c'est ici que je reçois l'erreur. J'ai tenté ceci aussi avec le même résultat
Set recup = db.openrecorset(sql)
joueur = recup.Fields(0).value <- c'est bien ça, non?
Me.list_values.RowSourceType = "liste valeurs"
Set recup = req.OpenRecordset
Mes codes:0>Set recup New ADODB.Recordset 'sql OpenArgs
1>Set recup = db.openrecorset(sql)
1>If recup.recordcount <> 0 then1>joueur recup("NomChamp0").value 'Me.list_values.RowSource sql '<Pour afficher la liste de tous les joueurs
Si t'as besoin d'aide sur les recordset, sélectionne le mot recordset du code et clic sur F1.