Foutmelding bij keuzelijst met invoervak

Status
Niet open voor verdere reacties.

Hoxbarg

Gebruiker
Lid geworden
31 mei 2007
Berichten
18
Ik heb een formulier met subformulier aangemaakt op basis van de tabellen Winkel en Bezoeken (deze hebben een 1 op Veel relatie, via sleutel Winkelcode JRS).
Op het hoofdformulier heb ik een niet-afhankelijke keuzelijst met invoervak toegevoegd dmv de Wizard in de toolbox.

Nu krijg ik volgende foutmelding als ik op het formulier een item uit de keuzelijst aanklik:
Fout 13 tijdens uitvoering:
Typen komen niet met elkaar overeen.

Foutopsporing geeft:
Private Sub Keuzelijst_met_invoervak62_AfterUpdate()
' De record zoeken die overeenkomt met het besturingselement
Dim rs As Object

Set rs = Me.Recordset.Clone
rs.FindFirst "[Winkel].[Winkelcode JRS] = " & Str(Nz(Me![Keuzelijst met invoervak62], 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub

waarbij de regel beginnend met rs.Findfirst wordt uitgelicht.

Kan iemand me zeggen wat er fout is.
 
Hallo Hoxbarg,

wat is het gegevenstype van je kolom Winkelcode JRS, tekst, numeriek?
Hoe ziet de rijbron van je keuzelijst er uit (formulierontwerp, tabblad Gegevens van je keuzelijst)?

PS vermijd het gebruik van speciale tekens zoals spaties in objektnamen (kolommen, tabellen, formulieren, control et cetera)

Groet,

Tardis
 
Hallo Tardis,

Het is een AutoNummering veld.
Winkelcode JRS is de sleutelkolom, die niet wordt weergegeven. De keuzelijst geeft de velden Winkelnaam en Woonplaats.

Ben benieuwd naar je reactie.

Groeten,
 
Hallo,

Met de funktie Str zet je de waarde om naar een string, terwijl je winkelcode numeriek is.
Vandaar de foutmelding, Str funktie weglaten dus (heb je uberhaupt niet nodig).

Als je in code deze regel

Code:
rs.FindFirst "[Winkel].[Winkelcode JRS] = " & Str(Nz(Me![Keuzelijst met invoervak62], 0))

wijzigt in

Code:
rs.FindFirst "[Winkel].[Winkelcode JRS] = " & Me.[Keuzelijst met invoervak62]

zou het moeten werken.

Waarom gebruik je trouwens de Nz funktie?

Groet,

Tardis
 
Ik heb die code niet geschreven, dat is denk ik het gevolg van de Wizard voor het aanmaken van de keuzelijst.

De code is aangepast en nu krijg ik volgende foutmelding:
Fout 3070 bij uitvoering:
De Microsoft-Jet-database-Engine kan Winkel.Winkelcode JRS niet herkennen als een geldige veldnaam of expressie.

Bij foutopsporing staat:
Option Compare Database

Private Sub Keuzelijst_met_invoervak60_AfterUpdate()
' De record zoeken die overeenkomt met het besturingselement
Dim rs As Object

Set rs = Me.Recordset.Clone
rs.FindFirst "[Winkel].[Winkelnaam] = '" & Me![Winkelnaam] & "'"
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub

Private Sub Keuzelijst_met_invoervak62_AfterUpdate()
' De record zoeken die overeenkomt met het besturingselement
Dim rs As Object

Set rs = Me.Recordset.Clone
rs.FindFirst "[Winkel].[Winkelcode JRS] = " & Me.[Keuzelijst met invoervak62]
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub

Waarbij de regel - rs.FindFirst "[Winkel].[Winkelcode JRS] = " & Me.[Keuzelijst met invoervak62] - is uitgelicht.

Bedankt voor je reactie.
 
Hallo Hoxbarg,

die Str wordt er inderdaad door de wizard bijgezet.
Waarom is mij niet duidelijk, lijkt me persoonlijk niet echt gewenst.

Heb je je formulier wel op een tabel/query gebaseerd (= is de recordbron van je formulier een tabelnaam of querynaam)?
Zo nee, even aanpassen.

Haal [Winkel] uit je coderegel die fout loopt, dus

Code:
rs.FindFirst "[Winkelcode JRS] = " & Me.[Keuzelijst met invoervak62]

Groet,

Tardis
 
Hallo Tardis,

Het is een formulier met een subformulier, die met de formulier Wizard is gemaakt op basis van de tabellen Winkel en Bezoeken (1 op veel relatie)
Type rijbron is tabel/query.
Rijbron is SELECT [Tabel Winkel].[Winkelcode JRS], [Tabel Winkel].Winkelnaam, [Tabel Winkel].Woonplaats FROM [Tabel Winkel];

Aanpassing gedaan en nu krijg ik:
Fout 3614 tijdens uitvoering.
GUID is niet toegestaan in een criterium-expressie van de methode Find.

Foutopsporing geeft:
Option Compare Database

Private Sub Keuzelijst_met_invoervak60_AfterUpdate()
' De record zoeken die overeenkomt met het besturingselement
Dim rs As Object

Set rs = Me.Recordset.Clone
rs.FindFirst "[Winkel].[Winkelnaam] = '" & Me![Winkelnaam] & "'"
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub

Private Sub Keuzelijst_met_invoervak62_AfterUpdate()
' De record zoeken die overeenkomt met het besturingselement
Dim rs As Object

Set rs = Me.Recordset.Clone
rs.FindFirst "[Winkelcode JRS] = " & Me.[Keuzelijst met invoervak62]
If Not rs.EOF Then Me.Bookmark = rs.Bookmark

Hierbij wordt weer de regel - rs.FindFirst "[Winkelcode JRS] = " & Me.[Keuzelijst met invoervak62] - uitgelicht.

Wederom bedankt voor de reactie.

Groeten,
Hoxbarg
 
Hallo Hoxbarg,

sluit even je toepassing bij, in Access 2000 formaat, geWinZipt.
Verwijder afbeeldingen en vervang vertrouwelijke gegevens door testgegevens.
Komprimeer je toepassing voordat je 'm zipt.

Groet,

Tardis
 
Beste Tardis,

Ik hoop dat ik het goed heb gedaan. Mijn applicatie is in Access 2003.
De data is vervangen door fake-data.
In afwachting van je reactie.

Groet,
Hoxbarg
 

Bijlagen

Hallo Hoxbarg,

je bestand bevat gekoppelde tabellen, daar kan ik niets mee ;)
Importeer je tabellen en voeg een nieuwe bijlage bij.

Groet,

Tardis
 
Hallo Tardis,

Sorry voor de late reactie, kwam even tripje buitenland tussendoor.
De gekoppelde tabellen zijn gekomen door een poging de database te delen.
Hoe kan ik dat weer ongedaan maken?. Of kan ik op een andere wijze de tabellen sturen?.
 
Laatst bewerkt:
Hallo Hoxbarg,

nogmaals, importeer je tabellen.
En haal je email adres even weg, da's vragen om problemen (zoals spam).

Groet,

Tardis
 
in de originele database staan ze ook als gekoppelde tabellen. Waar deze koppeling naar toe verwijst weet ik niet, dus ik kan de bron niet importeren.
Ik kan wel de tabellen uit de originele database importeren, maar daar heb je dan waarschijnlijk niets aan. Kan ik die koppeling op een of andere wijze ongedaan maken.
 
Hallo Hoxbarg,

een koppeling maak je "ongedaan" door de tabellen te importeren.
Lokatie kun je nakijken via:

- menubalk -> Extra -> Databasehulpprogramma's -> Koppelingsbeheer
- of door een tabel te openen in ontwerpweergave, rechts te klikken, lokatie staat dan in de
eigenschap Beschrijving

Ik kan wel de tabellen uit de originele database importeren, maar daar heb je dan waarschijnlijk niets aan.

Zonder proberen komen we daar nooit achter dus ..... ;)

Groet,

Tardis
 
Zonder te weten waar de link naartoe wijst kan je de tabel ook kopieren;
Control-C, Control-V op je gelinkte tabel. Vul de nieuwe naam in en geef aan dat je ook de data wilt kopieren. Voila, je tabel is nu lokaal. Wel even de oude weggooien en de nieuwe renamen.

Enjoy!
 
Het is gelukt. Echter moet je wel alle relaties opnieuw instellen. Blijkbaar kan dat niet anders. Hopelijk werkt deze bijlage wel.
 
ik zie de bijlage niet, dus nogmaals

werkt niet want het maximum voor dit forum is 100Kb en ik zit op 192Kb

suggesties?
 
na verwijdering van alle, voor het probleem, niet relevante tabellen en queries en zo veel mogelijk data kom ik onder de 100Kb
 

Bijlagen

Hallo Hoxbarg,

je hebt je autonummer kolom [Winkelcode JRS] ingesteld als replica id.
Om daarnaar te verwijzen heb je de funktie StringToGUID nodig (zie ook Access Help).
Wijzig deze code

Code:
Private Sub Keuzelijst_met_invoervak62_AfterUpdate()
' De record zoeken die overeenkomt met het besturingselement
Dim rs As Object

Set rs = Me.Recordset.Clone
rs.FindFirst "[Winkelcode JRS] = " & Me.[Keuzelijst met invoervak62]
If Not rs.EOF Then Me.Bookmark = rs.Bookmark

End Sub

in

Code:
Private Sub Keuzelijst_met_invoervak62_AfterUpdate()
' De record zoeken die overeenkomt met het besturingselement
Dim rs As Object

Set rs = Me.Recordset.Clone
rs.FindFirst "[Winkelcode JRS] = " & StringFromGUID(Me.[Keuzelijst met invoervak62])
If Not rs.EOF Then Me.Bookmark = rs.Bookmark

End Sub

Vermijd het gebruik van spaties (en andere speciale tekens) in objektnamen (tabellen, kolommen, formulier, et cetera).
En hanteer een naamconventie (bijvoorbeeld tabelnaam begint met tbl, querynaam met qry, et cetera).

Groet,

Tardis
 
Beste Tardis,

Dit levert weer dezelfde foutmelding op:
Fout 3614 tijdens uitvoering.
GUID is niet toegestaan in een criterium-expressie van de methode find.
Foutopsporing verwijst naar de regel die ik heb aangepast
rs.FindFirst "[Winkelcode JRS] = " & StringFromGUID(Me.[Keuzelijst met invoervak62])

Ging het bij jou wel goed?

Groeten,
Hoxbarg
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan