Solved

DMAX with Letters - Alphanumeric

Posted on 2006-07-13
5
444 Views
Last Modified: 2011-04-14
I have a form where I have a control that calculates a DMax for a field in a table. This works fine and the current value is AT1372

I now need to create the next ID number which will be fed into the next episode that is entered into the database (the answer should be AT1373). Unfortunately I cannot get it to add another digit.

The textbox that I have created which gives the DMax have the following equation:

=DMax("[Episode]","UploadCCT")
Textbox is called EPISODEmax

As I mentioned above this is working

I have tried NZ and also +1 outside brackets etc but it won't work. Is there a way of doing this or will the letters (AT) be preventing the calculation?
0
Comment
Question by:martywal
5 Comments
 
LVL 4

Assisted Solution

by:Carl2002
Carl2002 earned 75 total points
ID: 17100564
marytwal

you are correct in your thinking that the AT is preventing the addition as its a textfield. you need to think about splitting the text and numbers adding 1 to the number and then concatenanting again
0
 
LVL 44

Accepted Solution

by:
GRayL earned 100 total points
ID: 17100599
Assuming there is always a two-letter prefix try this:

=left(mystr,2) & strreverse(val(strreverse(mystr)))+1
0
 
LVL 65

Assisted Solution

by:rockiroads
rockiroads earned 75 total points
ID: 17100608
U could perhaps use this function to extract the numeric, then add one
e.g.

Public Function ExtractNumeric(ByVal sWord As String) As String

    Dim i As Integer
    Dim sNewNumber As String
   
    sNewNumber = ""
    For i = 1 To Len(sWord)
        If IsNumeric(Mid$(sWord, i, 1)) Then sNewNumber = sNewNumber & Mid$(sWord, i, 1)
    Next i
    ExtractNumeric = sNewNumber
End Function


' test sub

Public Sub TestSub()

    Dim sOldValue As String
    Dim sNewValue As String
   
    sOldValue = "AT1327"
    sNewValue = ExtractNumeric(sOldValue)
    If sNewValue <> "" Then
        sNewValue = Replace(sOldValue, sNewValue, Val(sNewValue) + 1)
    Else
        sNewValue = 1
    End If
   
    MsgBox "From " & sOldValue & vbCrLf & "to " & sNewValue
End Sub

0
 

Author Comment

by:martywal
ID: 17100694
THanks Experts, I ended up going for the split out into two text boxes and concatenating which did the trick.

Will split points ;-)
0
 
LVL 44

Expert Comment

by:GRayL
ID: 17112344
Thanks, glad I could help.
0

Featured Post

Ransomware-A Revenue Bonanza for Service Providers

Ransomware – malware that gets on your customers’ computers, encrypts their data, and extorts a hefty ransom for the decryption keys – is a surging new threat.  The purpose of this eBook is to educate the reader about ransomware attacks.

Question has a verified solution.

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

Most if not all databases provide tools to filter data; even simple mail-merge programs might offer basic filtering capabilities. This is so important that, although Access has many built-in features to help the user in this task, developers often n…
It took me quite some time to sort out all the different properties of combo and list boxes available from Visual Basic at run-time. Not that the documentation is lacking: the help pages are quite thorough and well written. The problem was rather wh…
What’s inside an Access Desktop Database. Will look at the basic interface, Navigation Pane (Database Container), Tables, Queries, Forms, Report, Macro’s, and VBA code.
In Microsoft Access, when working with VBA, learn some techniques for writing readable and easily maintained code.

895 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

12 Experts available now in Live!

Get 1:1 Help Now