Déclaration tableau VBA

cs_pommeverte Messages postés 6 Date d'inscription mardi 4 novembre 2003 Statut Membre Dernière intervention 23 février 2004 - 4 févr. 2004 à 13:59
cs_pommeverte Messages postés 6 Date d'inscription mardi 4 novembre 2003 Statut Membre Dernière intervention 23 février 2004 - 5 févr. 2004 à 11:22
salut ,
j'ai un problème avec VBA , j'arrive a déclarer les tableau avec une taille variable : message d'erreur " l'expression sur chargement entrée comme parametre de la proprieté evenement est a l'origine d'une erreur . Constante requise"

dim tab(taille1,taille2) as integer

Il doit y 'avoir un truc qui diffère de VB j'ai essayé plusieurs
solutions mais sans réussite
Alors si quelqu'un a dejà pourrai m'aider à resoudre ce problème ca serai cool

Merci.

2 réponses

tranquiloubilou Messages postés 33 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 27 mai 2004
5 févr. 2004 à 10:07
8-) ThomThom
je peux pas t'aider sur la dclaration de ton tableau mais selon le message ca viendrai de ton prog quand tu fais le changement sur ton objet
donne plus de détail et je pourrai peut être t'aider
salut
0
cs_pommeverte Messages postés 6 Date d'inscription mardi 4 novembre 2003 Statut Membre Dernière intervention 23 février 2004
5 févr. 2004 à 11:22
salut
merci d'avoir repondu thom

en fait le probleme je l'ai pour tou mes tableaux
je met un morceau du prog si tu peu regarder d'où ca vient
je voi pas du tou comment faire

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

Public Sub deconssolde()
Dim db As DAO.Database
Dim qdef As DAO.QueryDef
Dim Rs As DAO.Recordset
Dim Rs1 As DAO.Recordset
Dim TdeconsSolde(taille, 4) As String
Dim Taille As Integer

Dim i As Integer
Dim j, k As Integer
Dim LeTypeaTraiter As Integer
Dim CodeAch As Integer
Dim CodeType As Integer
Dim QteBac As Integer
Dim QteBacTro As Integer
Dim Bpoursuit As Boolean
Dim bt As Boolean
Dim bt2 As Boolean

On Error GoTo Error_tablevidedeconssolde

'deconsignation quand solde positif mais ke la ligne à déconsigné est plus importante
'"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

req4 = "SELECT [his_codeach], [his_typebac], SUM(HIS_qte),rd_qte" & _
" FROM releve_deconsignation as RD1, his_consdecons" & _
" WHERE rd_codeach = his_codeach " & _
" and rd_typebac = his_typebac " & _
" and rd_flag_traiter " & _
" and his_flag_surplubac = 0 " & _
" and his_codeach not in ( SELECT [rd_codeach] " & _
" FROM releve_deconsignation as RD2" & _
" WHERE RD1.rd_typebac = RD2.rd_typebac" & _
" and rd_flag_traiter " & _
" And - [rd_qte] <= (select sum( his_qte) " & _
" from his_consdecons " & _
" where his_codeach=rd_codeach " & _
" and his_typebac = rd_typebac))" & _
" GROUP BY [his_codeach], [his_typebac],rd_qte;"

Set db = CurrentDb()
Set Rs3 = db.OpenRecordset(req4)

Rs3.MoveLast
Taille = Rs3.RecordCount - 1
MsgBox "tdeconsSolde" & Taille

'Resultat de la requete dans un tableau
Set qdef = db.CreateQueryDef("", req4)
Set Rs4 = qdef.OpenRecordset(dbOpenSnapshot)

If Rs4.EOF Then
MsgBox "table vide"
Rs.Close

Else
'premier element de la table

'parcour de toute la table
i = 0
Rs4.MoveFirst
Do While Not i > Taille

TdeconsSolde(i, 1) = Rs4.Fields(0)
TdeconsSolde(i, 2) = Rs4.Fields(1)
TdeconsSolde(i, 3) = Rs4.Fields(2)
TdeconsSolde(i, 4) = Rs4.Fields(3)
Texte17 = Texte17 & "|" & TdeconsSolde(i, 1) & " ," & TdeconsSolde(i, 2) & " ," & _
TdeconsSolde(i, 3) & "|" & TdeconsSolde(i, 4)
Rs4.MoveNext
i = i + 1
Loop
End If
k = 0
For k = 0 To Taille
CodeAch = TdeconsSolde(k, 1)
CodeType = TdeconsSolde(k, 2)
QteBac = TdeconsSolde(k, 3)
QteBacTro = TdeconsSolde(k, 4) + QteBac


'Si une partie du retour est à deconsigner

If QteBac > 0 Then

'insertion dans le releve des prestations : les déconsignation valides

req6 = "INSERT INTO XHR_releve_prestations (rp_type, rp_code, rp_code_prest, rp_prix" & _
", rp_qt, rp_montant, rp_date )" & _
" SELECT 'A', rd_codeach, [pcd_codepresdecons], [prp_prix], " & -QteBac & _
", ([prp_prix]* " & -QteBac & " ), date()" & _
" FROM releve_deconsignation, pcd, prestations, prestations_port" & _
" WHERE rd_flag_traiter " & _
" AND rd_codeach =" & CodeAch & _
" AND rd_typebac =" & CodeType & _
" And RD_typebac = pcd_codetypebac" & _ " And pcd_codeprescons PR_Code And PR_Code PRP_Code;"


MsgBox "table prestation : qd surplu"
DoCmd.RunSQL req6


End If
Next k


Error_tablevidedeconssolde:

MsgBox "table vide deconssolde"
Exit Sub
0
Rejoignez-nous