update sirve registro que para ejemplos datos consultas consulta actualizar actualizacion sql ms-access access-vba ms-access-2013 select-case

sirve - sql ejemplos



MS Access VBA consulta SQL depuraciĆ³n seleccionar caso (1)

Veo al menos dos problemas con su declaración SQL:

Primero, Access SQL no admite la palabra clave CASE . Si estaba pensando en el CASE ... WHEN construye en T-SQL (Microsoft SQL Server), entonces el equivalente en Access SQL es la función Switch() (ref: aquí ). Puede pensar en la función Switch() como haciendo

Switch(when1, then1, when2, then2, ...)

En segundo lugar, hasta donde yo sé, Access SQL solo admite el punto ( . ) Como el símbolo decimal y la coma ( , ) como separador de lista, incluso si las configuraciones regionales en su máquina especifican otros valores (por ejemplo, coma ( , ) como el decimal símbolo y punto y coma ( ; ) como el separador de lista). En otras palabras, estoy bastante seguro de que

left(KU.man_year_source;3)

nunca funcionará; necesitarás usar

left(KU.man_year_source,3)

en lugar.

En MS Access 2013 VBA obtengo un error de sintaxis en esta cadena SQL:

strSQL = "INSERT INTO [man_year] ( man_year_val, year_int, main_research_area, organisation, man_year_source ) SELECT KU.[2007], ''2007'' AS Expr1, " _ & "select case right(left(KU.man_year_source;6);2) like ''Hu'' 3 case right(left(KU.man_year_source;6);2) like ''Sa'' 1 case right(left(KU.man_year_source;6);2) like ''Te'' 2 case right(left(KU.man_year_source;6);2) like ''Su'' 4 case right(left(KU.man_year_source;6);2) like ''Ud'' 5 AS Expr2, " _ & "4 AS Expr3, " _ & "select switch" _ & "(left(KU.man_year_source;3) like ''1. ''; 1;" _ & "left(KU.man_year_source;3) like ''1.1''; 4;" _ & "left(KU.man_year_source;3) like ''1.2''; 5;" _ & "left(KU.man_year_source;3) like ''1.3''; 6;" _ & "left(KU.man_year_source;3) like ''1.4''; 7;" _ & "left(KU.man_year_source;3) like ''1.5''; 8;" _ & "left(KU.man_year_source;3) like ''1.6''; 9;" _ & "left(KU.man_year_source;3) like ''2. ''; 2;" _ & "left(KU.man_year_source;3) like ''2.1''; 47;" _ & "left(KU.man_year_source;3) like ''2.2''; 48;" _ & "left(KU.man_year_source;3) like ''2.3''; 49;" _ & "left(KU.man_year_source;3) like ''2.4''; 50;" _ & "left(KU.man_year_source;3) like ''2.5''; 51;" _ & "left(KU.man_year_source;3) like ''2.6''; 52;" _ & "left(KU.man_year_source;3) like ''3. ''; 3;" _ & "left(KU.man_year_source;3) like ''3.1''; 53;" _ & "left(KU.man_year_source;3) like ''3.2''; 54;" _ & "left(KU.man_year_source;3) like ''3.3''; 55;" _ & "left(KU.man_year_source;3) like ''3.4''; 56;" _ & "left(KU.man_year_source;3) like ''3.5''; 57;" _ & "left(KU.man_year_source;3) like ''3.6''; 58) from KU;"

Aparece el error en la parte CASE, pero eso puede deberse a que todavía no ha llegado a la parte SWITCH. :-) ¿Alguien puede ayudarme? No puedo encontrar el error.

Mejor pmelch