Solved

Access 2013 - Visual basic code

Posted on 2015-02-05
10
268 Views
Last Modified: 2015-02-09
My OS is win 7 prof 64 bit and I use  Office 365, Access 2013.  I would like to know what is the syntax to rearrange a string of text :
Eg : a string like : 1234TqRi*(Ka
The string will consist of CAPS, small case, numbers and any key from the keyboard.
To be rearranged at random using vb code.
Thank u.
0
Comment
Question by:jegajothy
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
  • 2
  • +1
10 Comments
 
LVL 12

Expert Comment

by:FarWest
ID: 40591017
you can put each letter in array and make loop for len of the string you want
that takes random number of the array index usin RND function
0
 
LVL 58
ID: 40591023
There's nothing built-in to do that.   FarWest's idea is a good one and can be accomplished with all the usual string functions:  Left(), Mid(), Right(), etc and more than likely, you'll use Mid() the most.

Jim.
0
 

Author Comment

by:jegajothy
ID: 40591024
In response to FarWest, thank u for your suggestion, but if u can spare the time to give me a sample code.  Thank u.
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
LVL 18

Expert Comment

by:Simon
ID: 40591043
This doesn't use FarWest's array idea (I was writing it before the first response) and is probably not as efficient, but it works...

Function RandomiseString(inputString) As String
mystr = inputString
myStrLen = Len(inputString)
resultstring = ""
Do Until Len(resultstring) = myStrLen
    random_number = Int(Len(mystr) * Rnd) + 1
    'Debug.Print random_number
    resultstring = resultstring & Mid(mystr, random_number, 1)
    mystr = Left(mystr, random_number - 1) & Right(mystr, Len(mystr) - random_number)
Loop
Debug.Print resultstring
End Function

Sub TestIt()
Debug.Print RandomiseString("SwitchThisPitch")
End Sub

Open in new window

0
 
LVL 12

Expert Comment

by:FarWest
ID: 40591059
here is the code
Private Sub Command5_Click()
Dim ar() As String
Dim rstr As String
Dim ii As Integer
Dim rn As Integer
ar = Split("a,b,c,d,N,R,U,r,$,/,T", ",")
Randomize
For ii = 1 To 10
rn = Int(11 * Rnd())  '10 is array lenght
rstr = rstr + ar(rn)

Next
Debug.Print rstr


End Sub

Open in new window

0
 
LVL 18

Accepted Solution

by:
Simon earned 500 total points
ID: 40591066
Sorry, had to tweak mine. I hadn't set the return value for the function:
Function RandomiseString(inputString) As String
mystr = inputString
myStrLen = Len(inputString)
resultstring = ""
Do Until Len(resultstring) = myStrLen
    random_number = Int(Len(mystr) * Rnd) + 1
    resultstring = resultstring & Mid(mystr, random_number, 1)
    mystr = Left(mystr, random_number - 1) & Right(mystr, Len(mystr) - random_number)
Loop
RandomiseString = resultstring
End Function

Sub TestIt()
Debug.Print (RandomiseString("1234TqRi*(Ka"))
End Sub

Open in new window


You can feed strings of any length to the function to return them re-ordered randomly.
0
 

Author Comment

by:jegajothy
ID: 40597440
thank u everyone for your inputs.  SimonAdept's solution fits into my design, thank u very much.
0
 

Author Closing Comment

by:jegajothy
ID: 40597442
SimonAdept's solution fits into my design, thank u.
0
 
LVL 12

Expert Comment

by:FarWest
ID: 40597988
Final hint, don't forget to call Randomize to link the RND function call with system clock, so probability to have the same output twice will be close to 0
0
 

Author Comment

by:jegajothy
ID: 40598224
In response to FarWest, my soluion has been a crude and dirty one, and hope it gives me the result that I want.  i think I should put up the final code to see what the experts think of it.  Thank u again.
0

Featured Post

Instantly Create Instructional Tutorials

Contextual Guidance at the moment of need helps your employees adopt to new software or processes instantly. Boost knowledge retention and employee engagement step-by-step with one easy solution.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

You need to know the location of the Office templates folder, so that when you create new templates, they are saved to that location, and thus are available for selection when creating new documents.  The steps to find the Templates folder path are …
Did you know that more than 4 billion data records have been recorded as lost or stolen since 2013? It was a staggering number brought to our attention during last week’s ManageEngine webinar, where attendees received a comprehensive look at the ma…
Simple Linear Regression
Add bar graphs to Access queries using Unicode block characters. Graphs appear on every record in the color you want. Give life to numbers. Hopes this gives you ideas on visualizing your data in new ways ~ Create a calculated field in a query: …
Suggested Courses
Course of the Month10 days, 12 hours left to enroll

628 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