Solved

like values

Posted on 2007-11-23
11
127 Views
Last Modified: 2010-04-30
I have a table that stores data of things to do at various locations it can store up to six locations(location0 to location7) now at each location there can be 3 different thing to be done.what i would like to do is this have 4 text boxes
location     item              item1       item2     now if the items are at the same location then display then on the same line in each textbox else for every different location we would start a new line. eg

location        item     item1      item2
location0        1            2           3
location1                       4         5
location2       6                         7
so at location0 we are going to do all 3 items,at location1 we are only going to do item1and item2 and at location2 item and item3.etc.etc.
thanks
0
Comment
Question by:wwstudioinc
  • 6
  • 3
  • 2
11 Comments
 
LVL 76

Expert Comment

by:GrahamSkan
ID: 20338777
It is difficult (but not impossible) to space out text accurately inside text boxes.

I think that you would be better off using, either a grid, or a textbox for each item/location combination.

With text boxes, you could use a control array of 30 text boxes. Simple algorithms could translate the box's index to location and item or vice versa.

Or you could have 3 control arrays (one per item) txtItem0(0), txtItem0(1),txtItem0(2) then txtItem1(0), txtItem1(1),txtItem1(2).

In the same vein, there could be one array per location - txtLocation0(0), txtLocation0(1), txtLocation0(2), txtLocation0(3), txtLocation0(4), txtLocation0(5), txtLocation0(6), txtLocation0(7),txtLocation0(8), txtLocation0(9).
0
 
LVL 76

Accepted Solution

by:
GrahamSkan earned 500 total points
ID: 20338827
This is how to align the text so that each item's text displays at a particular offset.
Private Sub Command1_Click()

     Dim strText As String

    Const strItem1 = "abc"

    Const strItem2 = "def"

    Const strItem3 = "ghi"

    

    Set Me.Font = Text1.Font 'match form's font to text box's font

    

    strText = strItem1 ' first item in string

    Do Until Me.TextWidth(strText) >= 500

        strText = strText & " " 'space out to 500

    Loop

    strText = strText & strItem2 'append second item after spacing out

    Do Until Me.TextWidth(strText) >= 1000

        strText = strText & " " 'space out to 1000

    Loop

    strText = strText & strItem3

    Text1.Text = strText

End Sub

Open in new window

0
 
LVL 48

Expert Comment

by:jpaulino
ID: 20338982
>> I think that you would be better off using, either a grid, or a textbox for each item/location combination.

Maybe because I use it allot, why don't you use a listview for that (like GrahamSkan suggest it) ?
0
 

Author Comment

by:wwstudioinc
ID: 20339498
guys that for the response but does anyone has an example.i have no clue.I am trying to avoid having to use too many text boxes
0
 
LVL 76

Expert Comment

by:GrahamSkan
ID: 20339535
Which option do you want code for? The code that I have provided is intended to illustrate how to do what you ask for, that is to space out the text inside a text box so that it resembles columns.
Does that help?
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 

Author Comment

by:wwstudioinc
ID: 20339559
how would you go about using an array for each location
0
 
LVL 48

Expert Comment

by:jpaulino
ID: 20339748
Is the listview with multiple columns a soluction for your ? Do you like an example ?
0
 

Author Comment

by:wwstudioinc
ID: 20339750
i have been playing around with something like this but the only problem i would have is to ensure then the vbcrlf falls in the same place.let's say the first line goes pass the width of the text box that a new line would start for that text box which would fall into the same position the other vbcrllf in the same position.

For i = 0 To 7
 
  Me.location  = Me.location  & rs.Fields("location" & i) & vbCrLf & vbCrLf
 Me.txtl = Me.txtl & rs.Fields(" item" ) & vbCrLf & vbCrLf
Me.txts= Me.txts & rs.Fields(" item1) & vbCrLf & vbCrLf
 Me.txth = Me.txth & rs.Fields(" item2i) & vbCrLf & vbCrLf

Next
this is pretty close to what i am looking for
0
 
LVL 76

Assisted Solution

by:GrahamSkan
GrahamSkan earned 500 total points
ID: 20339825
Set up a column of text boxes called Location0, Location1, Location2, etc. Set the Index property to each one to 0, thus creating 10 control arrays, each array containing a single control.

You can place the other text boxes on the form in the usual way in design mode,, or you can have this code to automate it for you.




Private Sub Form_Load()

Dim i As Integer

For i = 1 To 2

    Load Me.Location0(i)

    Location0(i).Visible = True

    Location0(i).Top = Location0(i - 1).Top

    Location0(i).Left = Location0(i - 1).Left + Location0(i - 1).Width + 50

    

    Load Location1(i)

    Location1(i).Visible = True

    Location1(i).Top = Location1(i - 1).Top

    Location1(i).Left = Location1(i - 1).Left + Location1(i - 1).Width + 50

    

    Load Location2(i)

    Location2(i).Visible = True

    Location2(i).Top = Location2(i - 1).Top

    Location2(i).Left = Location2(i - 1).Left + Location2(i - 1).Width + 50
 

    Load Location3(i)

    '...

 Next i

End Sub

Open in new window

0
 
LVL 76

Expert Comment

by:GrahamSkan
ID: 20339840
My last comment does not address your last comment, which I hadn't seen.
0
 
LVL 76

Expert Comment

by:GrahamSkan
ID: 20340068
I think you are tryoing to do it the hard way. Text boxes are not designed to display text at given particular XY positions.

The easiest and most obvious way to display a database table is to have a data control and a grid.
0

Featured Post

Complete VMware vSphere® ESX(i) & Hyper-V Backup

Capture your entire system, including the host, with patented disk imaging integrated with VMware VADP / Microsoft VSS and RCT. RTOs is as low as 15 seconds with Acronis Active Restore™. You can enjoy unlimited P2V/V2V migrations from any source (even from a different hypervisor)

Join & Write a Comment

I originally created this report in Crystal Reports 2008 where there is an option to underlay sections. I initially came across the problem in Access Reports where I was unable to run my border lines down through the entire page as I was using the P…
Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
In Microsoft Access, learn how to use Dlookup and other domain aggregate functions and one method of specifying a string value within a string. Specify the first argument, which is the expression to be returned: Specify the second argument, which …

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now