Rocky Smolin
rockysmolin at bchacc.com
Mon Dec 20 10:40:26 CST 2010
-------- Original Message --------
Subject: RE: [AccessD] OT: Passing an Array in VBA
From: <rockysmolin at bchacc.com>
Date: Sun, December 19, 2010 8:50 pm
To: "Access Developers discussion and problem solving"
<accessd at databaseadvisors.com>
At the risk of being flamed might I suggest making the array Global -then
you don't have to pass it anywhere, it's available to the whole program as
is. I know many people live in fear and loathing of globals but really,
they're quite innocuous. Globals are our friends.
Rocky
-------- Original Message --------
Subject: Re: [AccessD] OT: Passing an Array in VBA
From: Jurgen Welz <jwelz at hotmail.com>
Date: Sun, December 19, 2010 7:38 pm
To: <accessd at databaseadvisors.com>
In Access VBA I always pass arrays to receiving variant variable without the
trailing (). I've had problems trying to pass them as arrays of a declared
type. I also generally rename the recieving variable even if passed By Ref.
Sub PopulateALICO(WerteIn As Variant, i As Integer)
This is exactly how I pass an array for processing, like to a sort
procedure. In the example below, I've got a form module level declared
variant, mvArTemplates, that needs to be sorted ascending or descending on
one of the columns. The sort procedure also receives the number of columns
to be received:
Caller:
qSort mvArTemplates, lngColumn, blnAsc, 4
SubRoutine"
Sub qSort(varAr As Variant, fld As Long, Asc As Boolean, NumberCol As Long,
Optional lngL As _
Long = -2, Optional lngR As Long = -2)
Ciao Jürgen Welz Edmonton, Alberta jwelz at hotmail.com
From: rlister at actuarial-files.com
To: accessd at databaseadvisors.com
Date: Sun, 19 Dec 2010 16:46:00 -0400
Subject: [AccessD] OT: Passing an Array in VBA
Hello,
Sorry to bother with an Excel 2007 problem.
I try to pass an three-dimensional-array Werte(I, j. k) to a Procedure,
manipulate Werte() there. Then the manipulated Werte()-Array is passed again
to the main program.
My Code:
The main program
Dim Werte(1 To 9, 1 To 42, 1 To 7) As Single
..
With Activesheet
Select Case .Range("D" & "" & i + 1 & "").Value
Case "ALICO"
PopulateALICO Werte:=Werte, i:=1
Case "ANTIGUA"
PopulateANTIGUA Werte:=Werte, i:=1
...
End Select
The called procedure
Sub PopulateALICO(ByRef Werte() As Single, i As Integer)
..
****************************************************************************
******
When I check in the main program, the array Werte() is still unmanipulated.
Saludos
Actuary Ralf Lister
La Paz, Bolivia
Registrado en ASFI
No. Registro: Act.Mat. 001
NIT: 1016725022
Skype Name: ralf.martin.lister
Tel.: 222 26 61, Cel. 70136531
rlister at actuarial-files.com
www.actuarial-files.com
Environment
-- AccessD mailing list AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd Website:
http://www.databaseadvisors.com
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com