PDA

Visualizza la versione completa : assurdo o coglione


giko83
09-07-2002, 12:09
allora in un modulo c' questo:

Public Sub aggiorna(verso As Integer, txt() As TextBox)
On Error GoTo ERRORE
Dim i As Integer
Select Case (verso)
Case 0:
For i = 1 To 13
dati(i) = txt(i).Text
Next
Case 1:
'Path = txt.Text
End Select
Exit Sub
ERRORE:
MsgBox "aggiorna"
End Sub


poi in un form c' questa chiamata


Private Sub Command1_Click()
Call aggiorna(0, txtDati)
aggiungi
End Sub

risultato :

Errore di compilazione:
Tipo non corrispondente. Previsti matrice o tipo definito dall'utente.



MA DOVE MINKIA HO SBAGLIATO ......
:nonlodire :nonlodire :nonlodire :nonlodire :cry:

JamesD
09-07-2002, 12:31
Originariamente inviato da giko83
allora in un modulo c' questo:
Public Sub aggiorna(verso As Integer, txt(13) As TextBox)
dim dati(13) as string
...
For i = 1 To 13
dati(i) = txt(i).Text
Next
...


Non hai dimensionato l'array! ad ogni tornata devi fare quello che ho aggiunto! devi anche dichiarare dati come un vettore! Oppure se ti serve dinamica la dichiari senza dimensioni ma ad ogni "tornata" del for devi ridimensionarla con il redim preserve!

Ciaoz:ciauz:

giko83
09-07-2002, 12:40
Public e As Integer
modulo:

Public c As ADODB.Connection
Public rs As ADODB.Recordset
Public dati(13) As String

Public Sub aggiorna(verso As Integer, txt() As TextBox)
On Error GoTo ERRORE
Dim i As Integer
Select Case (verso)
Case 0:
For i = 1 To 13
ReDim Preserve dati(13)
dati(i) = txt(i).Text
Next
Case 1:
'Path = txt.Text
End Select
Exit Sub
ERRORE:
MsgBox "aggiorna"
End Sub

Chiamata alla sub da form:

Private Sub Command1_Click()
Call aggiorna(0, txtDati)'l'errore me lo da qui su txtDati
'che una matrice di controlli textbox
aggiungi
End Sub



Aiuto non ce la faccio piu sto per spaccare tutto
come diamine si passano gli array alle sub....

ladyBlu
09-07-2002, 12:47
secondo me non accetta la chiamata
Call aggiorna(0, txtDati)
a
Public Sub aggiorna(verso As Integer, txt() As TextBox)

perch:

txtDati --> una textbox
txt() --> una matrice non dimensionata di TextBox.

Prova a scrivere:
Call aggiorna(0, txtDati)
a
Public Sub aggiorna(verso As Integer, txt As TextBox)


perch cos passi ad aggiorna il contenunto della text txt.

giko83
09-07-2002, 12:57
txt() un array di text box
txtDati() una array di text box

ladyBlu
09-07-2002, 13:06
scusami, non me ne ero accorta. :tongue:
adesso vedo di capire meglio, ok?

vonkranz
09-07-2002, 13:08
Prova a mettere:


Call aggiorna(0, txtDati() )


anche se non ricordo se e' possibile passare una matrice di controlli ad una funzione.

JamesD
09-07-2002, 13:11
Originariamente inviato da vonkranz
Prova a mettere:


Call aggiorna(0, txtDati() )


anche se non ricordo se e' possibile passare una matrice di controlli ad una funzione.

Se non la chiama in questo modo mi sa che non si pu perch :master: non mi viene in mente altro modo!

Per strano!

giko83
09-07-2002, 14:00
non me lo fa cosi non me lo fa in nessun modo come possibile che non si pu passare un array ad una procedura... dai... oramai sono esaurito non capisco piu nulla se qualcuno mi sa aiutare ben venga...

Genius7115
09-07-2002, 14:08
scusa mi sembra di capire che stai cercando di fare un array su un textbox?

Loading