Toon posts:

vbscript, max(ID), "odbc call failed"

Pagina: 1
Acties:
  • 188 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
ik wil telkens nieuwe records vanuit mijn outlook formulier naar mijn RFC tabel schrijven. Maar dan moet ik eerst MAX(ID) uit mijn RFC tabel ophalen en in de insert query gebruiken. Ik krijg de foutmelding "odbc call failed"

Voordat ik de ID in de code had toegepast kon ik de items (comboboxes) wel naar de RFC plaatsen. Hoe kan ik dat ID gedeelte oplossen????


Set MyDbEng = CreateObject("DAO.DBEngine.35")
Set MyWkSpace = MyDbEng.CreateWorkspace("WkSpace", "admin", "", 1)

MyDbEng.Workspaces.Append MyWkSpace

Set MyDbConn = MyWkSpace.OpenConnection("test", 1, False, "ODBC;DATABASE=test;UID=admin;PWD=;DSN=test")

Set MyRs = MyDbConn.OpenRecordset("SELECT MAX(ID) FROM RFC",2,1024,3)

MyDBConn.execute(" insert into RFC (Application, ID, Priority, Owner, ProjectPlanActivity, Category, Manhours, Status, IssuedBy, IssuedContact, DescriptionOfAction, Comments) values ('"+ ComboBox1.text +"','"+ GetID +"','"+ ComboBox5.text +"','"+ ComboBox6.text +"','"+ ComboBox7.text +"','"+ ComboBox8.text +"','"+ ComboBox9.text +"','"+ ComboBox10.text +"','"+ ComboBox11.text +"','" + TextBox1.text + "','"+ TextBox2.text + "','"+ TextBox3.text +"');")

MyRs.AddNew
'MyRs.Fields("ID") = MyRs
MyRs.Update
MyRs.Close

MyDBConn.Close

Verwijderd

Topicstarter
ik wil dus eerst MAX ID hebben en daarna met 1 verhogen voor de nieuwe record

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 29-08 12:08

gorgi_19

Kruimeltjes zijn weer op :9

Set MyRs = MyDbConn.OpenRecordset("SELECT MAX(ID) AS MaxID FROM RFC",2,1024,3)
en
code:
1
MyRs.Fields("ID") = MyRs("maxID") + 1

oid

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
krijg nog steeds die foutmelding odbc call failed

Verwijderd

Topicstarter
misschien niet via recordset ???

  • Tukk
  • Registratie: Januari 2002
  • Laatst online: 28-08 14:16

Tukk

De α-man met het ẞ-brein

Ik wil je graag helpen, maar wat is een RFC-tabel?

Mischien bedoel je dit
Visual Basic:
1
2
3
4
5
6
7
MyDBConn.execute(" insert into RFC (Application, ID, Priority, Owner, 
ProjectPlanActivity, Category, Manhours, Status, IssuedBy, IssuedContact, 
DescriptionOfAction, Comments) values ('"+ ComboBox1.text +"','"+ myRs.fields
(1).value + 1 +"','"+ ComboBox5.text +"','"+ ComboBox6.text +"','"+ 
ComboBox7.text +"','"+ ComboBox8.text +"','"+ ComboBox9.text +"','"+ 
ComboBox10.text +"','"+ ComboBox11.text +"','" + TextBox1.text + "','"+ 
TextBox2.text + "','"+ TextBox3.text +"');")


twee puntjes,
1. je kan je oude bericht nog aapassen, je hoeft niet nog een bericht er onder te plaatsen.
2. Ik neem aan dat dit VBA is en niet vbscript, toch?

Q: How many geeks does it take to ruin a joke? A: You mean nerd, not geek. And not joke, but riddle. Proceed.


Verwijderd

Topicstarter
mijn tabel heet noem ik gewoon RFC. en het is vbscript.
Ik heb net dat myRs.Fields(1).value+1 gebruikt en die gaf de foutmelding ")" expected.
okee maar ik heb evenveel ( en )

zie:
MyDBConn.execute(" insert into RFC (Application, Priority, Owner, ProjectPlanActivity, Category, Manhours, Status, IssuedBy, IssuedContact, DescriptionOfAction, Comments) values ('"+ ComboBox1.text +"',"'+ MyRs.fields(1).value + 1 +"','"+ ComboBox5.text +"','"+ ComboBox6.text +"','"+ ComboBox7.text +"','"+ ComboBox8.text +"','"+ ComboBox9.text +"','"+ ComboBox10.text +"','"+ ComboBox11.text +"','" + TextBox1.text + "','"+ TextBox2.text + "','"+ TextBox3.text +"');")

Verwijderd

Topicstarter
de error ")" expected is ontstaan nadat ik MyRs.fields(1).value + 1
of als ik MyRs.Fields("ID") = MyRs("maxID") + 1
en daarna MyRs.Fields("ID") in de insert query stopt

  • Tukk
  • Registratie: Januari 2002
  • Laatst online: 28-08 14:16

Tukk

De α-man met het ẞ-brein

Dat Getid dat je gebruikt in je code, waar vul je die?
Als je nu het volgende gebruikt?

code:
1
2
3
4
5
6
7
8
9
10
11
Set MyRs = MyDbConn.OpenRecordset("SELECT MAX(ID) AS MAX_ID FROM RFC",2,1024,3)

GetID =  MyRs("MAX_ID")

MyDBConn.execute(" insert into RFC (Application, ID, Priority, Owner, 
ProjectPlanActivity, Category, Manhours, Status, IssuedBy, IssuedContact, 
DescriptionOfAction, Comments) values ('"+ ComboBox1.text +"','"+ GetID +"','"+ 
ComboBox5.text +"','"+ ComboBox6.text +"','"+ ComboBox7.text +"','"+ 
ComboBox8.text +"','"+ ComboBox9.text +"','"+ ComboBox10.text +"','"+ 
ComboBox11.text +"','" + TextBox1.text + "','"+ TextBox2.text + "','"+ 
TextBox3.text +"');")

Q: How many geeks does it take to ruin a joke? A: You mean nerd, not geek. And not joke, but riddle. Proceed.


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 29-08 22:51

D2k

amiga: ga nou eens de code tags gebruiken svp

Doet iets met Cloud (MS/IBM)


Verwijderd

Topicstarter
met jouw code krijg ik type mismatch: "[straing: "insert into RFC (Ap"]"

nou ik probeer eerst die MAX ID op te halen en daarna met 1 ophogen en in een variabele inproppen. met die insert query wil ik die variabele in mijn RFC tabel gooien.

Verwijderd

Topicstarter
wat is er nou mis met de tags d2k ?

Verwijderd

Topicstarter
Set MyDbConn = MyWkSpace.OpenConnection("test", 1, False, "ODBC;DATABASE=test;UID=admin;PWD=;DSN=test")

Set MyRs = MyDbConn.OpenRecordset("SELECT MAX(ID) AS RFC_ID FROM RFC",2,1024,3)
MAX_ID = (MyRs.Fields("RFC_ID") + 1)
MyRs.Close

MyDBConn.execute(" insert into RFC (Application, ID, Priority, Owner, ProjectPlanActivity, Category, Manhours, Status, IssuedBy, IssuedContact, DescriptionOfAction, Comments) values ('"+ ComboBox1.text +"',& MAX_ID &,'"+ ComboBox5.text +"','"+ ComboBox6.text +"','"+ ComboBox7.text +"','"+ ComboBox8.text +"','"+ ComboBox9.text +"','"+ ComboBox10.text +"','"+ ComboBox11.text +"','" + TextBox1.text + "','"+ TextBox2.text + "','"+ TextBox3.text +"');")

MyDBConn.Close
Set MyDBConn = Nothing
Set MyWrkSpace = Nothing
Set MyDBEng = Nothing
End Sub

error odbc call failed voor de zoveelste keer.... wordt nu echt moe van dit.

  • ferdivaneeten
  • Registratie: Juni 2001
  • Laatst online: 26-08-2025

ferdivaneeten

zo gaat dat

Met de [ code ] tag zie je het verschil tussen de aanhalingstekens beter.
Gebruik eens & als string concatenator, en bij MAX_ID hierboven klopt het niet helemaal...
code:
1
2
3
4
5
6
7
MyDBConn.execute("insert into RFC (Application, ID, Priority, Owner,
ProjectPlanActivity, Category, Manhours, Status, IssuedBy,
IssuedContact, DescriptionOfAction, Comments) values ('" &
ComboBox1.text & "',"  & MAX_ID & ",'" & ComboBox5.text & "','" & 
ComboBox6.text & "','" & ComboBox7.text  & "','" & ComboBox8.text  & "','" &
ComboBox9.text & "','" & ComboBox10.text & "','" & ComboBox11.text & "','" &
TextBox1.text  & "','" & TextBox2.text   & "','" & TextBox3.text   & "');")

Verwijderd

Topicstarter
alle + tekens naar & veranderd en nog steeds niet opgelost

  • Tukk
  • Registratie: Januari 2002
  • Laatst online: 28-08 14:16

Tukk

De α-man met het ẞ-brein

ok,

nog een aanpassing in je code.
Deze maakt de code meteen wat mooier...

Stop het insert-statement eerst in een string.
Iets van :

code:
1
2
3
4
dim lsSQL as string
ls SQL = "insert into <KNIP>"
msgbox  lsSQL
MyDBConn.execute(lssql)


Laat dan eens zien wat de sql-query inhoud voor dat je de query uitoert.
Het ziet er wat mooier uit en het is dus makkelijker debuggen.

Kopieer de code van het sql-statement en voer deze eens uit op de database (acces, oracle?) met een Database client.

Wertk de code dan wel?
Krijg

Q: How many geeks does it take to ruin a joke? A: You mean nerd, not geek. And not joke, but riddle. Proceed.

Pagina: 1