Avatar billede brutus Nybegynder
23. oktober 2002 - 07:10 Der er 21 kommentarer og
1 løsning

fange runtime error 3464 ?

Hejsa
jeg er ved at lave en "stempelmaskine" hvor en bruger skal stemple ind og ud ved en ordre. disse ind og ud stemplinger gemmes i access og det virker, men hvis en bruger vil stemple ud på en ordre der ikke er i db'en, får jeg en 3464 fejl
Er der nogen der kan hjælpe mig med at fange den ?
Avatar billede brutus Nybegynder
23. oktober 2002 - 07:11 #1
skal lige sige at jeg har alt db behandlingen i en form, og indtastningerne i en anden form
Avatar billede dk_akj Nybegynder
23. oktober 2002 - 07:39 #2
Jeg ville fange den i forvejen istedet for at errorhandle på den.

set rs = conn.execute ("Select * from orders where orderID = '123456'")

if rs.eof then
  ..... ordren findes ikke
else
  ...... ordren findes - gør det med ordren du vil.
end if

//akj
Avatar billede brutus Nybegynder
23. oktober 2002 - 07:42 #3
oki, det vil jeg da prøve
Avatar billede brutus Nybegynder
23. oktober 2002 - 07:49 #4
er nok en skovl men dette giver fejl 424 object required ??

kriterie1 = "SELECT Stempling.medarbID, Stempling.maskinID, Stempling.ordreID, Stempling.dato, Stempling.time, Stempling.typeID, Stempling.stempelID, Stempling.bemanned, ArbejdsType.type FROM ArbejdsType INNER JOIN Stempling ON ArbejdsType.typeID = Stempling.typeID WHERE  medarbID = '" & medarb & "' and stempelID =  0  and ordreID = '" & ordrenr & "'"
Data1.RecordSource = kriterie1
If kriterie.EOF Then
MsgBox "ordren findes ikke"
Else
Data1.Refresh
Data1.Recordset.AddNew
Data1.Recordset("maskinID") = maskid + 1
osv..
Avatar billede medions Nybegynder
23. oktober 2002 - 07:53 #5
kriterie1 = "SELECT Stempling.medarbID, Stempling.maskinID, Stempling.ordreID, Stempling.dato, Stempling.time, Stempling.typeID, Stempling.stempelID, Stempling.bemanned, ArbejdsType.type FROM ArbejdsType INNER JOIN Stempling ON ArbejdsType.typeID = Stempling.typeID WHERE  medarbID = '" & medarb & "' and stempelID =  0  and ordreID = '" & ordrenr & "'"
Data1.RecordSource = kriterie1
If Data1.EOF Then
MsgBox "ordren findes ikke"
Else
Data1.Refresh
Data1.Recordset.AddNew
Data1.Recordset("maskinID") = maskid + 1

Tror du skal gøre sådan...!

//>Rune
Avatar billede dk_akj Nybegynder
23. oktober 2002 - 07:54 #6
Her er et lille eks fra msdn, det matcher det du mangler meget godt

//akj


Dim Rs As Recordset
Data1.DatabaseName = "BIBLIO.MDB"
Data1.RecordSource =  _
  "Select * From TITLES where [Year Published] = 1994"
Data1.Refresh
Set Rs = Data1.Recordset
If Rs.RecordCount > 0 Then
  Do Until Rs.EOF
      Debug.Print Rs!Title
      Rs.MoveNext
  Loop
Else
  MsgBox "No titles in 1994."
End If

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vb98/html/daprorecordsetx.asp
Avatar billede brutus Nybegynder
23. oktober 2002 - 07:57 #7
medion,, giver method or datamember not found på EOF ?
Avatar billede dk_akj Nybegynder
23. oktober 2002 - 07:59 #8
Prøv dette:

//akj

Dim Rs As Recordset

kriterie1 = "SELECT Stempling.medarbID, Stempling.maskinID, Stempling.ordreID, Stempling.dato, Stempling.time, Stempling.typeID, Stempling.stempelID, Stempling.bemanned, ArbejdsType.type FROM ArbejdsType INNER JOIN Stempling ON ArbejdsType.typeID = Stempling.typeID WHERE  medarbID = '" & medarb & "' and stempelID =  0  and ordreID = '" & ordrenr & "'"
Data1.RecordSource = kriterie1

Data1.Refresh
Set Rs = Data1.Recordset

If rs.EOF Then
MsgBox "ordren findes ikke"
Else
Data1.Recordset.AddNew
Data1.Recordset("maskinID") = maskid + 1
Avatar billede dk_akj Nybegynder
23. oktober 2002 - 08:01 #9
Eller:

Data1.Refresh
Set Rs = Data1.Recordset

If Rs.RecordCount < 1 Then
MsgBox "ordren findes ikke"
Else
Data1.Recordset.AddNew
Data1.Recordset("maskinID") = maskid + 1
Avatar billede brutus Nybegynder
23. oktober 2002 - 08:13 #10
giver data type mismatch in criteria expression ?
Avatar billede dk_akj Nybegynder
23. oktober 2002 - 08:20 #11
Det er fordi der er en fejl i din sql.

Din sql angiver at medarbId er en text og ordrenummer en text
stempel id er et tal .

Passer det med din DB ??

//akj
Avatar billede dk_akj Nybegynder
23. oktober 2002 - 08:24 #12
et lille tip.

Placer en textbox control på din form.
textsql.text = kriterie1

Kopier texten fra textsql og past den in i et sql query felt i access, se hvad fejl acces giver. Den er tit mere hjælpsom med fejlmeddelelser en vb.

Du kan også kopiere kriterie1 i debug mode.

//akj
Avatar billede brutus Nybegynder
23. oktober 2002 - 08:30 #13
medarbID er tekst (initialer) ordrenummer er tal, stempelID er tal?
og den virker, når bare der bliver tastet en ordre ind som eksisterer
Avatar billede dk_akj Nybegynder
23. oktober 2002 - 08:35 #14
... and ordreID = '" & ordrenr & "'"

Vil jeg ændre til :

... and ordreID = " & ordrenr

Hvorfor det virker hvis ordrenummer findes gør mig lidt forvirret.

//akj
Avatar billede brutus Nybegynder
23. oktober 2002 - 08:41 #15
hmmm hvis jeg gør som du foreslår kommer den med syntaks error og behandler ordrenummer som en streng
Avatar billede dk_akj Nybegynder
23. oktober 2002 - 08:43 #16
Har du prøvet at køre din sql i access ??


//akj
Avatar billede brutus Nybegynder
23. oktober 2002 - 08:46 #17
Hvis jeg stempler ind på ordre 10 stempler den fint ud på ordre 10 problemet er hvis jeg prøver at stemple ud på ordre 11 uden at være stemplet ind, så går den i fejl :-(
Avatar billede brutus Nybegynder
23. oktober 2002 - 08:47 #18
jeps, kører fint
Avatar billede dk_akj Nybegynder
23. oktober 2002 - 08:48 #19
Og du får fejlen: data type mismatch in criteria expression.

Kan du prøve at kopiere din sql (indholdet i kriterie1) og poste her ??
Avatar billede dk_akj Nybegynder
23. oktober 2002 - 08:49 #20
Kører den også fint med ordreId = 11 i access ??
Avatar billede brutus Nybegynder
23. oktober 2002 - 09:21 #21
så tror jeg sq det virker var de ' der skule fjernes, så nu ser det ud til at køre, forstår så ikke det ville køre hvis ordren er i db'en???
Avatar billede dk_akj Nybegynder
23. oktober 2002 - 09:23 #22
Fint, Jeg syntes også det var underligt at det virkede med 10'eren.

Tak for pts.
//akj
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester