Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 286
  • Last Modified:

Access 2013 - Visual basic code

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
jegajothy
Asked:
jegajothy
  • 4
  • 3
  • 2
  • +1
1 Solution
 
FarWestCommented:
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
 
Jim Dettman (Microsoft MVP/ EE MVE)PresidentCommented:
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
 
jegajothyAuthor Commented:
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
Microsoft Certification Exam 74-409

VeeamĀ® is happy to provide the Microsoft community with a study guide prepared by MVP and MCT, Orin Thomas. This guide will take you through each of the exam objectives, helping you to prepare for and pass the examination.

 
SimonCommented:
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
 
FarWestCommented:
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
 
SimonCommented:
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
 
jegajothyAuthor Commented:
thank u everyone for your inputs.  SimonAdept's solution fits into my design, thank u very much.
0
 
jegajothyAuthor Commented:
SimonAdept's solution fits into my design, thank u.
0
 
FarWestCommented:
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
 
jegajothyAuthor Commented:
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

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 4
  • 3
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now