Solved

DMAX with Letters - Alphanumeric

Posted on 2006-07-13
5
453 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
[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
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

Simplifying Server Workload Migrations

This use case outlines the migration challenges that organizations face and how the Acronis AnyData Engine supports physical-to-physical (P2P), physical-to-virtual (P2V), virtual to physical (V2P), and cross-virtual (V2V) migration scenarios to address these challenges.

Question has a verified solution.

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

A simple tool to export all objects of two Access files as text and compare it with Meld, a free diff tool.
As tax season makes its return, so does the increase in cyber crime and tax refund phishing that comes with it
In Microsoft Access, learn the trick to repeating sub-report headings at the top of each page. The problem with sub-reports and headings: Add a dummy group to the sub report using the expression =1: Set the “Repeat Section” property of the dummy…
In Microsoft Access, when working with VBA, learn some techniques for writing readable and easily maintained code.

738 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