Access1 et VB

kapotocho Messages postés 18 Date d'inscription jeudi 29 novembre 2007 Statut Membre Dernière intervention 16 janvier 2008 - 29 nov. 2007 à 08:40
kapotocho Messages postés 18 Date d'inscription jeudi 29 novembre 2007 Statut Membre Dernière intervention 16 janvier 2008 - 29 nov. 2007 à 14:51
Bonjour, je suis  un rookie en developpement et je suis en train de me familiariser avec le VB, un ami m'a passer une base access qu'il avait fait en access 1 pour que je lui mette en access 2003,mais son vout de code en VB 
plante, est-ce que quelqu'un peut m'aider,je rame trop
merçi d'avance
Function cdane(aec)<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>





Dim bd As Database, atable As snapshot, rés As TableDef





Static tota(99)





Dim j, k, m As Integer





Dim cum, cda As Long





Set bd = CurrentDb()





Set atable = bd.CreateSnapshot("Liste des cols")




Set rés = bd.OpenTable("cdparan")


rés.Index = "PrimaryKey"




    For j = 0 To 99






        tota(j) = 0






    Next






    Do Until atable.EOF






        cda = cdan(atable![Cols Durs années précéd], atable![altit], atable![année], atable![cd], aec)






        atable.MoveNext






       
For j = 0 To 99



            tota(j) = tota(j) + totcd(j)



        Next




   
<?xml:namespace prefix st1 ns "urn:schemas-microsoft-com:office:smarttags" /??>
<st1:place w:st="on">Loop</st1:place>








    cum = 0






    For j = 0 To 99






        rés.movefirst






        rés.Seek "=", j






       
rés.Edit



        rés![Mpan] = tota(j)



        rés![An 2000] = (j + 40) Mod 100 + 1960



        rés.Update


' Debug.Print j, tota(j)



       
cum = cum + tota(j)






        cdane = cum






    Next






    rés.Seek "=", 100






    rés.Edit






    rés![Mpan] = cum






    rés.Update






    rés.Close





End Function






 

8 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
29 nov. 2007 à 08:44
Salut,
C'est bien beau de savoir que le code plante.
Mais ce qui nous serait surtout utile, c'est de savoir quelle est l'erreur donnée par VBA et surtout quelle ligne plante.

De plus si l'on doit utiliser ton code, il nous faut le squelette des tables.

Bref. pour avoir une réponse des plus claires et rapides, il faut être très précis dans l'énoncé du problème.

@+: Ju£i?n
Pensez: Réponse acceptée
0
kapotocho Messages postés 18 Date d'inscription jeudi 29 novembre 2007 Statut Membre Dernière intervention 16 janvier 2008
29 nov. 2007 à 09:15
excusez moi j'ai oublié le plus important

atable As snapshot: il me met "erreur de compilation,type défini par l'utilisateur non défini"
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
29 nov. 2007 à 09:27
SAlut,
Et bien je dirais que c'est parce que Access ne doit pas connaitre par défaut le type d'objet Snapshot.

Il semblerait que Snapshot soit un objet liée à une référence DAO.
Mais comme DAO à évolué il ne semble plus être dans les dernieres versions.
De plus il serait utile si tu doit mettre à jour la source, d'utiliser ADO en lieu et place De DAO.

Va voir ce lienon y parle de Snapshot et de la maniere de le faire avec ADO
@+: Ju£i?n
Pensez: Réponse acceptée
0
kapotocho Messages postés 18 Date d'inscription jeudi 29 novembre 2007 Statut Membre Dernière intervention 16 janvier 2008
29 nov. 2007 à 11:13
enooomre merçi jrivet.
0

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

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
29 nov. 2007 à 11:20
re,
Ton problème est résolu?

@+: Ju£i?n
Pensez: Réponse acceptée
0
kapotocho Messages postés 18 Date d'inscription jeudi 29 novembre 2007 Statut Membre Dernière intervention 16 janvier 2008
29 nov. 2007 à 11:45
il m'en reste encore un mais je suis dessus,concernant la connection "cnn"
il me dit qu'il est "impossible d'utiliser cette connection pour effectuer cette operation,elle est fermé ou non valide dans ce contexte"



Function cdane(aec)
Dim bd As Database, atable As New ADODB.Recordset, rés As New ADODB.Recordset, cnn As ADODB.Connection
Static tota(99)
Dim j, k, m As Integer
Dim cum, cda As Long
Set bd = CurrentDb()
rés.Index = "PrimaryKey"
atable.Open "liste des cols", cnn, adOpenStatic, adLockReadOnly
rés.Open "cdparan", cnn, adOpenKeyset, adLockOptimistic, adCmdTableDirect
For j = 0 To 99
tota(j) = 0
Next
Do Until atable.EOF
cda = cdan(atable![Cols Durs années précéd], atable![altit], atable![année], atable![cd], aec)
atable.MoveNext
For j = 0 To 99
tota(j) = tota(j) + totcd(j)
Next
Loop
cum = 0
For j = 0 To 99
rés.MoveFirst
rés.Seek "=", j
rés![Mpan] = tota(j)
rés![An 2000] = (j + 40) Mod 100 + 1960
rés.Update
' Debug.Print j, tota(j)
cum = cum + tota(j)
cdane = cum
Next
rés.Seek "=", 100
rés![Mpan] = cum
rés.Update
rés.Close
End Function
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
29 nov. 2007 à 11:49
SAlut,
Et bien je crois qu'il te faut ouvrir la connection ADODB (parametrer .ConnectionString)

regarde sur ce site il y a plein d'exemple de connection à un base avec ADO

@+: Ju£i?n
Pensez: Réponse acceptée
0
kapotocho Messages postés 18 Date d'inscription jeudi 29 novembre 2007 Statut Membre Dernière intervention 16 janvier 2008
29 nov. 2007 à 14:51
j'ai (ncore un problème) le "seek" à la fin provoque une erreur: il me dit "opération non valide sans un idex en cours"
or l'index est crée
quelqu'un voit d'où ça peut venir??
merçi d'avance
0
Rejoignez-nous