Newsgroup: it.comp.appl.access
Titolo: creare un vettore con 2 campi VBA

sapete come si definisce un vettore con 2 campi
data di tipo data e importo di tipo euro.
come si assegna poi il valore a uno dei campi di ogni record dell'array?
Grazie a tutti.

 messaggio news:b3qg6n$242$1...@lacerta.tiscalinet.it...

    Un vettore, o array, non ha "campi" ma "elementi". Tutti di uno
stesso tipo di dati. Se vuoi tipi di dati diversi e' necessario usare il
tipo Variant. Un'altra possibilita' sarebbe una "struttura" (v. Type ...
End Type). Oppure una collezione.
    Esempio:
' Modulo1
'
Option Base 0
Option Compare Text
Option Explicit
Type Sample_TYPE
  tData     As Date
  cImporto  As Currency
End Type
Public Sub Main()
  SampleArray
  SampleCollection
  SampleType
  ' OTPUT:
  ' mercoledì 1 gennaio 2003    123,45 €
  ' sabato 1 febbraio 2003      123,40 €
  ' sabato 1 marzo 2003         123,00 €
End Sub
Private Sub SampleArray()
  Const c_lColData& = 0
  Const c_lColImporto& = 1
  Dim a_vItems()  As Variant
  Dim lRow        As Long
  Dim lRows       As Long
  Dim lCol        As Long
  Dim lCols       As Long
  lCols = 2
  lRows = 3
  ReDim a_vItems(0 To lCols - 1, 1 To lRows)
  lRow = 1
  a_vItems(c_lColData, lRow) = #1/1/2003#
  a_vItems(c_lColImporto, lRow) = 123.45@
  lRow = 2
  a_vItems(c_lColData, lRow) = #2/1/2003#
  a_vItems(c_lColImporto, lRow) = 123.4@
  lRow = 3
  a_vItems(c_lColData, lRow) = #3/1/2003#
  a_vItems(c_lColImporto, lRow) = 123@
  For lRow = LBound(a_vItems, 2) To UBound(a_vItems, 2)
    Debug.Print _
        FormatDateTime$(a_vItems(c_lColData, lRow), vbLongDate) _
      , FormatCurrency$(a_vItems(c_lColImporto, lRow), 2)
  Next
  Debug.Print
End Sub
Private Sub SampleCollection()
  Dim oCol    As VBA.Collection
  Dim oSample As Progetto1.CSample
  Set oCol = New VBA.Collection
  Set oSample = New Progetto1.CSample
  With oSample
    .tData = #1/1/2003#
    .cImporto = 123.45
  End With
  oCol.Add oSample
  Set oSample = Nothing
  Set oSample = New Progetto1.CSample
  With oSample
    .tData = #2/1/2003#
    .cImporto = 123.4
  End With
  oCol.Add oSample
  Set oSample = Nothing
  Set oSample = New Progetto1.CSample
  With oSample
    .tData = #3/1/2003#
    .cImporto = 123
  End With
  oCol.Add oSample
  Set oSample = Nothing
  For Each oSample In oCol
    With oSample
      Debug.Print _
          FormatDateTime$(.tData, vbLongDate) _
        , FormatCurrency$(.cImporto, 2)
    End With
  Next
  Debug.Print
  Set oSample = Nothing
  Set oCol = Nothing
End Sub
Private Sub SampleType()
  Dim uSample() As Sample_TYPE
  Dim lItem     As Long
  ReDim uSample(1 To 3)
  With uSample(1)
    .tData = #1/1/2003#
    .cImporto = 123.45
  End With
  With uSample(2)
    .tData = #2/1/2003#
    .cImporto = 123.4
  End With
  With uSample(3)
    .tData = #3/1/2003#
    .cImporto = 123
  End With
  For lItem = LBound(uSample) To UBound(uSample)
    With uSample(lItem)
      Debug.Print _
          FormatDateTime$(.tData, vbLongDate) _
        , FormatCurrency$(.cImporto, 2)
    End With
  Next
  Debug.Print
End Sub
' CSample *** MODULO DI CLASSE ***
'
Option Base 0
Option Compare Text
Option Explicit
Public tData    As Date
Public cImporto As Currency
--
Ciao :o)
Maurizio
--------
?SPQR(C)
 X
--------

 Maurizio
Non ciò capito una mazza e non mi riferisco a sergio mazza.
forse è meglio che faccio cosi e ti ripropongo la domanda
come posso creare 2 array distinti uno con date e l'altro con valuta
cosi all'elemento 0 di entrambi gli array gli assegnerò un valore  e cosi
via.
grazie.

 via.
    Non ci hai capito una mazza perche' sei pigro! Ti ho scodellato ben
tre soluzioni tre, pronte per l'uso! Tu non devi far altro che
sceglierne una. Dimmi un po', buona lana(*), riesci a fare un
copia/incolla ed eseguire passo passo con F8?... Grrrr.
    (Eppoi perche' adesso parli di *due* array mentre in apertura di 3d
parlavi di uno solo?)
(*) _Barbiere di Siviglia_, Atto I.


 --
Più che pigro sono stanco  e non ho nemmeno voglia di sta li a collegare
l'asterisco con quello che c'è riportato sotto.
volevo solo sapere come si dichiarano 2 semplicissimi array uno di tipo date
e uno valute e come assegnare un valore agli elementi. stop.
io in quella scarrelata di codice non lo trovato o forse non lo visto?

 io in quella scarrelata di codice non lo trovato o forse non lo visto?
    Se sei stanco riposati, e considera che generalmente ci vogliono due
giorni per rimediare alle puttanate fatte dopo la frase "ancora mezz'ora
poi smetto".
    Eppoi... credi di esser stanco solo tu?
    Non l'hai "visto" perche' se avessi "occhio" per queste cose quel
codice l'avresti scritto tu e non io. Non sono sarcastico e la mia non
e' ne' una critica ne' un rimprovero, solo una ovvia e banale
constatazione. Come puoi pretendere di "vedere" senza ***eseguire***?
Allora, da bravo, esegui passo passo (F8) il codice e vedi che succede.
Se ti interessa, senno' pazienza.


 e uno valute e come assegnare un valore agli elementi. stop.
Tuttavia questo non è un Self Service...

 Tuttavia questo non è un Self Service...
Ovvero?

Guarda ti dirņ che io ho solo fatto una domanda come si fą un newsgroup
quindi le battute tienile per te. non fanno ridere nessuno. grazie.

 quindi le battute tienile per te. non fanno ridere nessuno. grazie.
Non è una battuta: ti è stata data una risposta esauriente, cosa vuoi di
più?
Impara l'educazione e leggiti un pò di netiquette, buzzicone.

 Impara l'educazione e leggiti un pò di netiquette, buzzicone.
Ascolta cicciobello non provocarmi perchè altrimenti sarei costretto a
doverti incontrare di persona, poi vediamo come và a finire. stai attento a
come perli. imbecille!

 imbecille!
Ma dico, ci sei o ci fai?
Datti una calmata, rileggiti il thread, e *studia* l'educazione buffone!
Ciao, Max
P.S:  ... e impara a scrivere oltre che "perlare".

 P.S:  ... e impara a scrivere oltre che "perlare".
guarda potremmo andare avanti qualche anno a scrivere stronzate, se hai
problemi me lo dici che in privato ti mando il mio indirizzo e tel cosi
chiariamo tutto.

 Impara l'educazione e leggiti un pò di netiquette, buzzicone.
Ola MA, che succede sei in astinenza da "friariello"?
Stavolta la "i" l'ho messa.
--
a.cara 
Togli qualcosa dall'email

 come perli. imbecille!
Non ti sembra "leggermente" eccessivo? 
E poi dargli pure dell' "ostrica" ?  ;<)
Dim aDate(123) as date
Dim aNum(123) as long
msgbox(adate(100) & anum(100))
cmq approvo il "metodo" di M. Borrelli. Magari adesso non hai tempo
pero' ti consiglio di guardartelo quel codice



anche se questo non è un self service questo è quello che ho chiesto,
ringrazio maurizio borelli ma purtroppo non tutti siamo esperti di vba, e
quindi non ho trovato soluzione nel suo codice anche se sicuramente c'è.
Grazie.

 Stavolta la "i" l'ho messa.
E' no: tu sei in astinenza da "fiariello"  ;-))
Ciao: Max