sql statement problem

there is error in dbFA.Execute line
what the problem
i'm trying to copy one value of FTLQTY in fa_tmplocation table to another in another FULQTY in another fa_usrlocation table

sql = "SELECT * FROM fa_usrlocation,fa_tmplocation"
Set l_rs = dbFA.OpenRecordset(sql, dbOpenDynaset)
dbFA.Execute "Update fa_usrlocation Set FULQTY = FTLQTY FROM fa_tmplocation WHERE FTLDEFCODE = '" & usr_defcode & "' AND FTLDEFGRP = '" & usr_defgrp & "' AND FULSTRLOC = FTLSTRLOC AND FULEDLOC = FTLEDLOC"

Set wrkODBC = DBEngine.CreateWorkspace("NWorkspace", "admin", "", dbUseODBC)
   wrkODBC.DefaultCursorDriver = dbUseODBCCursor
Set dbFA = wrkODBC.OpenDatabase("IS", _
        dbDriverNoPrompt, False, _
        "ODBC;DATABASE=;UID=a1;PWD=a2;DSN=Oracle")
khengAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
DavidMartinConnect With a Mentor Commented:
The problem is down to the database not knowing where to get the valuse from, you need to repeat the query for the replacement value.  The query should be similar to the following:

Update fa_usrlocation
Set FULQTY = ( select FTLQTY FROM fa_tmplocation where <repeat where clause> )
WHERE FTLDEFCODE = '" & usr_defcode & "' AND FTLDEFGRP = '" & usr_defgrp & "' AND FULSTRLOC = FTLSTRLOC AND FULEDLOC = FTLEDLOC"

0
 
viktornetCommented:
sql = "SELECT * FROM fa_usrlocation,fa_tmplocation"

should read

sql = "SELECT * FROM fa_usrlocation,fa_tmplocation;"

there must be a semicolon at the end of the SQL statment...

..-=ViKtOr=-..
0
 
khengAuthor Commented:
it's the same
still not working
0
 
MikeP090797Commented:
Try putting the table name before the fields:
dbFA.Execute "Update fa_usrlocation Set fa_usrlocation.FULQTY = fa_tmplocation.FTLQTY FROM fa_tmplocation WHERE fa_tmp.locationFTLDEFCODE = '" & usr_defcode & "' AND FTLDEFGRP = '" & usr_defgrp & "' AND FULSTRLOC = FTLSTRLOC AND FULEDLOC = FTLEDLOC"


What exactly are you trying to acheive here? This can go better in a single query I think
0
All Courses

From novice to tech pro — start learning today.