06. august 2001 - 20:57Der er
11 kommentarer og 1 løsning
mismatch error????
Jeg har følgende kode, som åbner en rapport, som følge af værdierne indtastet between [Udskriftfelt1] og [Udskriftfelt1a]. Det vil sige den åbner ikke rapporten, idet den kommer med følgende fejlmelding: \"Runtime error 13, type mismatch!\" Felttypen i [Udskriftfelt1] og [Udskriftfelt1a] er tekst, og fejlen kommer når man indtaster tekst som kriterium, hvad kan være galt?????
Private Sub Labels_kontakt2_Click()
Dim stWhere As String Dim stDocName As String
stDocName = \"Labels kontakt2\"
If Not fldIsEmpty([Forms]![Udskrivmenu].[Udskrivfelt1] And [Forms]![Udskrivmenu].[Udskrivfelt1a]) Then stWhere = \"[Final].[Navnet] Between [Forms]![Udskrivmenu].[Udskrivfelt1] And [Forms]![Udskrivmenu].[Udskrivfelt1a]\" End If
DoCmd.OpenReport stDocName, acPreview, , stWhere
End Sub
I tools+references har jeg tilvalgt: Visual Basic For Applications, Microsoft Access 9.0 Object Library, OLE Automation, DAO 3.6 og MVB for Applications extensibility 5.3. (Måske det er hér fejlen ligger????)
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
You are setting stWhere to a sting containing \"[Final].[Navnet] Between [Forms]![Udskrivmenu].[Udskrivfelt1] And [Forms]![Udskrivmenu].[Udskrivfelt1a]\" In other words the values of the fields arent included in the WHERE, th enames of the fields are. Try this:
Jeg kunne heller ikke lade være at undre mig over sætningen: If Not fldIsEmpty([Forms]![Udskrivmenu].[Udskrivfelt1] And [Forms]![Udskrivmenu].[Udskrivfelt1a]) Then
Nu kender jeg ikke fldIsEmpty men den skal formentlig have én parameter. Nemlig et kontrolelement. Derved skal linien se således ud: If Not fldIsEmpty([Forms]![Udskrivmenu].[Udskrivfelt1]) And not fldIsEmpty([Forms]![Udskrivmenu].[Udskrivfelt1a]) Then
hej thomas, dit forslag virker sgu\', så den rigtige kode ser således ud:
Private Sub Labels_kontakt2_Click()
Dim stWhere As String Dim stDocName As String
stDocName = \"Labels kontakt2\"
If Not fldIsEmpty([Forms]![Udskrivmenu].[Udskrivfelt1]) And Not fldIsEmpty([Forms]![Udskrivmenu].[Udskrivfelt1a]) Then stWhere = \"[Final].[Navnet] Between [Forms]![Udskrivmenu]![Udskrivfelt1] And [Forms]![Udskrivmenu]![Udskrivfelt1a]\"
End If
DoCmd.OpenReport stDocName, acPreview, , stWhere
End Sub
Det undrer mig bare, at koden som jeg har skrevet i første indlæg virker perfekt på dato - og integer felter.....Hvordan kan det så være??
Hi terry (again), nice to see you around again. It appears that I won\'t leave you alone - I always have a database problem he he he.
I\'m soon finished with the database, thanks to you! But who nows, maybe i will be back again with more silly amature problems... Another thing do you have the explanation on why the code works with date and integer fields but not text. Thomasjepsen suggestion actually works, but I can still not understand why
Som sagt kender jeg ikke fldIsEmpty-funktionen, men det der sker, når du bruger fldIsEmpty([Forms]![Udskrivmenu].[Udskrivfelt1] And [Forms]![Udskrivmenu].[Udskrivfelt1a]) er at den laver en binær AND mellem de 2 felter. Hvis felterne er numeriske og indeholder f.eks. 1 og 3 svare det altså til at skrive: fldIsEmpty(1 and 3) hvilket svarer til at skrive fldIsEmpty(1) da 1 AND 3 = 1.
Hvis fldIsEmpty blot undersøger om indholdet er forskelligt fra null eller \"\" så er det jo opfyldt for de fleste numeriske felter - og datofelter ligeså, da de reelt også er numeriske felter.
Det blev ret teknisk det her, men jeg håber, at du er med. Sig til, hvis der er noget du ikke forstår; f.eks. hvorfor 1 AND 3 = 1.
Når man benytter AND mellem 2 tal, skal man således finde de cifre, hvor der står 1 i både det ene tal og (AND) det andet. Dvs kun i yderste højre position 00000001
ex: 11001011 AND 01101101 = 01001001
Modsat har man OR hvor der blot skal være et 1-tal i én af positionerne. Dvs 1 OR 3 = 3.
Endelig har man XOR hvor resultatet giver de cifre, hvor der KUN er ét 1-tal: 1 XOR 3 = 2
Tilsidst kan du spørge: \"Hvad fa\'en skal man bruge det til?\" Og hvad kan jeg sige til det? ....Boller fra....
Man bruger det faktisk ikke så meget i disse 3./4. generations værktøjer. I assembler er det er stort hit ;o)
terry> it is working now as far as I can see. I just thought it was possible to write it like this: If Not fldIsEmpty([Forms]![Udskrivmenu].[Udskrivfelt1] And [Forms]![Udskrivmenu].[Udskrivfelt1a]) Then
And thought that If Not fldsEmpty would be a control element for both fields [Udskrivfelt1] and Udskrivfelt1a]. I thougth wrong....But the code works with date and integer fields.
with the code from thomas (including \"and not fldIsEmpty\")the textfields also work now.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.