In effetti, a te servirebbe un tag, corrispondente ad ogni elemento della lista, contenente l'id del record, ma in Gambas non c'è modo.
Ad ogni modo credo puoi fare così, sempre che non ti serva un ordine degli elementi (è ovvio che è un esempio, ed un'idea venuta al volo...):
1) crei un array di stringhe
2) fai un bel loop in cui aggiungi elementi in questo array
3) ogni stringa è composta in questo modo:
array.Add(Str(id) & "|" & valore)
4) popoli contemporaneamente anche la combo:
combo.Add(valore)
In questo modo hai un'array di base, che corrisponde, a livello di indice elemento, con l'elenco della combo; una volta determinato quale item ha selezionato l'utente, vai nell'array e ti tiri fuori l'id, estraendolo dalla stringa:
nIndex = combo.Index
nID = Int(Split(array[nIndex][0])
sValue = Split(array[nIndex][1] 'oppure prendi il testo dalla combo