A Microsoft Office (Excel, Word) forum. OfficeFrustration

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

Go Back   Home » OfficeFrustration forum » Microsoft Access » Using Forms
Site Map Home Register Authors List Search Today's Posts Mark Forums Read  

for loop problem



 
 
Thread Tools Display Modes
  #1  
Old March 4th, 2008, 08:25 PM posted to microsoft.public.access.forms
[email protected]
external usenet poster
 
Posts: 16
Default for loop problem

Hi,
My project is in MS Access 2002.
In that I have one form. In that I want to put For or Do While loop.
I want thing like this in Access.
This is in C++ format.

Quote:
Originally Posted by
for(int i=1,j=17;i=26,j=32;i++,j++)
{
If ((Me.ItemNo[i+1] = Me.ItemNo[i]) And (Me.NoOfCartons[i+1] =
Me.NoOfCartons[i]) And (Me.NoOfPiecesPerPartialCartons[i+1] = 0) And
(Me.BatchOrLotNo[i+1] = Me.BatchOrLotNo[i]) And (Me.LONo[i+1] =
Me.LONo[i])) Then
Me.NoOfPallet[i] = Me.NoOfPallet[i+1] + 1
Me.TotalPieces[i] = (([NoOfPallet[i+1]] * ([NoOfCartons[i+1]] *
[NoOfPiecesPerCartons[i])))
Me.PalletNo[i] = Me.PalletNo[i] + ";" + Me.PalletNo[i+1]
Me.PalletNo[i+1] = Null
Me.ItemNo[i+1] = Null
Me.Description[i+1] = Null
Me.NoOfPallet[i+1] = Null
Me.NoOfCartons[i+1] = Null
Me.NoOfPiecesPerCartons[i+1] = Null
Me.NoOfPartialCartons[i+1] = Null
Me.NoOfPiecesPerPartialCartons[i+1] = Null
Me.NoOfPartialCartons[j+1] = Null
Me.NoOfPiecesPerPartialCartons[j+1] = Null
Me.TotalPieces[i+1] = Null
Me.BatchOrLotNo[i+1] = Null
Me.PONo[i+1] = Null
Me.LONo[i+1] = Null
Me.PalletNo[i+1].SetFocus
}

but it shows error.
Loop is ok but I am using [i] and [i+1] i think that's not right.I
think it array something but I don't know how to do it?
any solution of this thing?
Thanks.
  #2  
Old March 4th, 2008, 08:37 PM posted to microsoft.public.access.forms
Douglas J. Steele
external usenet poster
 
Posts: 9,313
Default for loop problem

If your intent is to take data from one row and write it to another row, you
can't do it in that manner. Access doesn't support control arrays, so
concepts like Me.ItemNo[i+1] = Me.ItemNo[i] are meaningless in VBA.

--
Doug Steele, Microsoft Access MVP
http://I.Am/DougSteele
(no e-mails, please!)


wrote in message
...[i]
Hi,
My project is in MS Access 2002.
In that I have one form. In that I want to put For or Do While loop.
I want thing like this in Access.
This is in C++ format.

Quote:
Originally Posted by
for(int i=1,j=17;i=26,j=32;i++,j++)
{
If ((Me.ItemNo[i+1] = Me.ItemNo[i]) And (Me.NoOfCartons[i+1] =
Me.NoOfCartons[i]) And (Me.NoOfPiecesPerPartialCartons[i+1] = 0) And
(Me.BatchOrLotNo[i+1] = Me.BatchOrLotNo[i]) And (Me.LONo[i+1] =
Me.LONo[i])) Then
Me.NoOfPallet[i] = Me.NoOfPallet[i+1] + 1
Me.TotalPieces[i] = (([NoOfPallet[i+1]] * ([NoOfCartons[i+1]] *
[NoOfPiecesPerCartons[i])))
Me.PalletNo[i] = Me.PalletNo[i] + ";" + Me.PalletNo[i+1]
Me.PalletNo[i+1] = Null
Me.ItemNo[i+1] = Null
Me.Description[i+1] = Null
Me.NoOfPallet[i+1] = Null
Me.NoOfCartons[i+1] = Null
Me.NoOfPiecesPerCartons[i+1] = Null
Me.NoOfPartialCartons[i+1] = Null
Me.NoOfPiecesPerPartialCartons[i+1] = Null
Me.NoOfPartialCartons[j+1] = Null
Me.NoOfPiecesPerPartialCartons[j+1] = Null
Me.TotalPieces[i+1] = Null
Me.BatchOrLotNo[i+1] = Null
Me.PONo[i+1] = Null
Me.LONo[i+1] = Null
Me.PalletNo[i+1].SetFocus
}

but it shows error.
Loop is ok but I am using and [i+1] i think that's not right.I
think it array something but I don't know how to do it?
any solution of this thing?
Thanks.



  #3  
Old March 5th, 2008, 01:38 PM posted to microsoft.public.access.forms
[email protected]
external usenet poster
 
Posts: 16
Default for loop problem

So what's the solution for it?
Do I have to write it for all 26 fields? It will be too long if I
write it for all 26 fields.
Thanks For ur reply.
  #4  
Old March 5th, 2008, 02:45 PM posted to microsoft.public.access.forms
Douglas J. Steele
external usenet poster
 
Posts: 9,313
Default for loop problem

In other words, you're not simply returning a bunch of rows as the detail of
the form? You're actually populating 26 sets of controls with values? Sounds
unusual, but if that's the case you can simulate control arrays by using
naming conventions for your controls.

For instance, if you name your controls ItemNo1, ItemNo2, ItemNo3 and so on
upto ItemNo26, NoOfCartons1, NoOfCartons2, and so on to NoOfCartons26 and
so on, you could use code like:

For i = 1 To 25
If ((Me.Controls("ItemNo" & (i+1)) = Me.Controls("ItemNo" & i) _
And (Me.Controls("NoOfCartons" & (i+1)) = Me.Controls("NoOfCartons" & i)
_
And (Me.Controls("NoOfPiecesPerPartialCartons" & (i+1)) = 0) _
And (Me.Controls("BatchOrLotNo" & (i+1)) = Me.Controls("BatchOrLotNo" &
i) _
And (Me.Controls("LONo" & (i+1)) = Me.Controls("LONo" & i)) Then

Me.Controls("NoOfPallet" & i) = Me.Controls("NoOfPallet" & (i+1)) + 1
Me.Controls("TotalPieces" & i) = ((Me.Controls("NoOfPallet" & (i+1)) * _
(Me.Controls("NoOfCartons" & (i+1)) *
Me.Controls("NoOfPiecesPerCartons" & i)))

etc

Next i

(Note that if you've only got 26 controls, the sample code you posted would
have failed, since it loops until i is 26, and then looks for control i+1)

If, on the other hand, you actually have a "normal" form, with one set of
controls that is replicated for each row in the form's recordsource, it's
not possible to refer to individual controls like that. You'd have to work
with the form's recordset.

--
Doug Steele, Microsoft Access MVP
http://I.Am/DougSteele
(no e-mails, please!)


wrote in message
...
So what's the solution for it?
Do I have to write it for all 26 fields? It will be too long if I
write it for all 26 fields.
Thanks For ur reply.



  #5  
Old March 5th, 2008, 03:19 PM posted to microsoft.public.access.forms
[email protected]
external usenet poster
 
Posts: 16
Default for loop problem

Hey thanks for ur help.
 




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Forum Jump


All times are GMT +1. The time now is 05:40 PM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 OfficeFrustration.
The comments are property of their posters.