Toon posts:

[access]function in tekstvak van een tekstvak

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb weer een probleem met access waar ik gek van wordt. Ik heb in een module een functie gebouwd, die uit een database een aantal waarden samenvoegd en teruggeeft als een string (voor zover ik weet werkt dit), als ik direct vanuit VBA deze functie aanroep werkt hij correct. Echter wil ik deze functie ook aanroepen vanuit een tekstvak in het "details gebied" van een rapport.

Ver kom ik niet want invoeren lukt al niet. Na het invoeren geeft hij de foutmelding: "De syntaxis van de expressie die u heb opgegeven, is nogeldig". Terwijl deze opgaaf van mijn functie in VBA zelf (zonder het = teken) primga functioneert. Heb ook al met de "[]"gewerkt maar dat mocht niet baten.

Het probleem zal wel ongelofelijk eenvoudig zijn :P, maar heb echt got afgezocht, google en microsoft, waarop in de voorbeelden dezelfde methode wordt gegeven, die ik nu gebruik, zie Functies voor het berekenen en weergeven van Datum/tijd-waarden in Access


code:
1
=VoegCellenSamen("eigenschappen", "Eigenschap", 21)



code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Option Compare Database
Option Explicit


Function VoegCellenSamen(Tabel As String, VeldNaam As String, Projectnummer As Integer)

'Deze functie opend een tabel en rukt alle waarden uit de tabel en gooit deze in een string'
'die hij vervolgens uitspuugd.'

Dim sql As String
Dim dbs As Database
Dim lijst As String
Dim rst As Recordset

sql = "SELECT * FROM " & Tabel & " WHERE ((Projectnummer) = " & Projectnummer & ")"

Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(sql)

Do Until rst.EOF
lijst = lijst + rst.Fields(VeldNaam).Value & ", "
rst.MoveNext
Loop

Trim (lijst)
lijst = Left(lijst, Len(lijst) - 2)
Trim (lijst)

VoegCellenSamen = lijst
End Function

Verwijderd

Zoals de argumenten nu staat pakt ie ze als string, voor veldnamen gebruik je idd [ ] . je moet dan wel zorgen dat er ook een besturingselement met deze naam bestaat.

Verwijderd

Topicstarter
Dat klopt idd, de eerste twee argumenten wil ik ook als string aanroepen en alleen de laatste moet een besturingselement zijn. In het voorbeeld wat ik postte waren alle argumenten inderdaad strings, zodat ik kon testen. Echter de volgende situatie moet er definitief gaan komen:

code:
1
=VoegCellenSamen("eigenschap", "eigenschappen", [ProjectNummer])


Wat net zo goed fouten geeft. Moet er misschien nog een speciale handeling plaatsvinden voordat het rapport de functie herkend?

  • Witte
  • Registratie: Februari 2000
  • Laatst online: 22-07 13:36
Ik weet niet wat je fout is, maar bij mij werkt je functie gewoon:

code:
1
=VoegCellenSamen("orders";"artikel_omschr";[ID])


Dit heb ik bij 'besturingselementbron' van een tekstobject in een formuliertje ingevuld, en werkt prima!
(misschien is het je , - ik gebruik een ;)
Overigens zal die tweede trim nooit iets doen...

[ Voor 18% gewijzigd door Witte op 22-02-2007 10:07 ]

Houdoe


Verwijderd

Topicstarter
Hmm, lag dus idd aan die puntkomma 8)7. Vind het persoonlijk toch jaar dat in vba een functie met behulp van komma's kan worden aangeroepen, maar dit in een rapport met ; moet!

Erg bedankt in ieder geval!