Solved

Join Multiple CSV Int Strings to a display Lookup text using MSAccess Query or VBA

Posted on 2013-01-08
2
543 Views
Last Modified: 2013-01-08
I have a database (ATTACHED) with 2 tables tblData and tblLookup.  The required values from the lookup table are accessed via a query (qryLookupID) and served as drop downs or multiple checkboxes for user selection, via Access Form or Web Application.

i am trying to join multiple INT IDs stored in a text field to their corresponding text values for dynamic display on a Form or as text for reporting.

In this example I have colours based on an INT ID stored in a text field as comma separated integers as shown in the CURRENT section below.  Database normalisation issues aside, how do I perform this join to display the word values in a label or a textbox as shown in the REQUIRED section.

For one table there may be 20+ similar lookups all drawn from a single self-referencing table.

A Local or Global VBA function is preferred but MSACCESS (2003) SQL is fine.

ANY VBA solution MUST NOT rely on a button click event. Just dynamic type events on forms.  The main use will be to display current records as words instead of numbers on forms or to display records as text on generated reports.

A sample form has been created with an unbound textbox for dynamic display.

CURRENT
1       1
1       1,2
1       1,2,3
1       1,2,3,5

REQUIRED      
1       Red
2       Red, Green
3       Red, Green, Blue
4       Red, Green, Blue, Brown

SQL or Code solutions other than MS ACCESS or VBA will be disregarded.
JoinMultipleCSVIDString.mdb
0
Comment
Question by:XGIS
[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
2 Comments
 
LVL 120

Accepted Solution

by:
Rey Obrero (Capricorn1) earned 500 total points
ID: 38757110
place this codes in the form's module


Private Sub Form_Current()
Me.Text4 = fncCombineLUID(Me.MulltiStringLUID)
End Sub

Function fncCombineLUID(str)
Dim sArr() As String, j As Integer, varStr As String
If str & "" = "" Then fncCombineLUID = Null: Exit Function
sArr = Split(str, ",")
For j = 0 To UBound(sArr)
    varStr = varStr & ", " & DLookup("LookupValue", "tblLookup", "LUID=" & CInt(Trim(sArr(j))))

Next
varStr = Mid(varStr, 3)
fncCombineLUID = varStr
End Function
JoinMultipleCSVIDStringRev.mdb
0
 
LVL 7

Author Closing Comment

by:XGIS
ID: 38757209
You're a genius capricorn1. Thankyou so much for your time. Works perfect and is highly adaptable.
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Format Date fields 11 64
Sharepoint list value updated via access or Excel 3 33
SQL multiple joins 2 19
SQL - Create table from a dynamic pivot 9 8
Describes a method of obtaining an object variable to an already running instance of Microsoft Access so that it can be controlled via automation.
It’s been over a month into 2017, and there is already a sophisticated Gmail phishing email making it rounds. New techniques and tactics, have given hackers a way to authentically impersonate your contacts.How it Works The attack works by targeti…
Familiarize people with the process of retrieving data from SQL Server using an Access pass-thru query. Microsoft Access is a very powerful client/server development tool. One of the ways that you can retrieve data from a SQL Server is by using a pa…
Learn how to number pages in an Access report over each group. Activate two pass printing by referencing the pages property: Add code to the Page Footers OnFormat event to capture the pages as there occur for each group. Use the pages property to …

752 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