Esta es mi primer consulta en el foro. He estado intentando replicar el programa que desarrolla Mauricio en su guìa "AprendiendoOOoBasic".
Llegado al momento de tener que generar una Macro que me permita, a travez de su ejecuciòn, actualizar registros en una base de datos he tenido inconvenientes.
El còdigio que he creado es el siguiente:
Código: Seleccionar todo
Sub cmdActualizar_Clic()
Dim sSQL As String
iSel = lstClientes.getSelectedItemPos
sClave = txtClave.getText
sNombre = txtNombre.getText
sInfo = "Si actualiza los datos del cliente " & sNombre & " con clave " & sClave & " los datos sobreescritos no podrán recuperarse " & Chr(13) & Chr(13) & "¿Está seguro de continuar?"
iRes = MsgBox( sInfo, 36,"Actualizar cliente" )
If iRes = 6 Then
If ValidarDatos() Then
sSQL = "UPDATE ""Clientes"" SET ""Nombre"" =" & sNombre & " WHERE ""Id"" = " & sClave
Call ActualizarDatos( oDatos, sSQL )
'Activamos y desactivamos los demás controles necesarios
cmdEditar.setEnable( True )
cmdEliminar.setEnable( True )
lstClientes.setEnable( True )
cmdNuevo.setEnable( True )
cmdSalir.setEnable( True )
cmdGuardar.setEnable( False )
cmdCancelar.setEnable( False )
'Desactivamos los cuadros de texto
Call ActivarCuadrosTexto( False )
lstClientes.removeItems( 0, lstClientes.getItemCount )
' olstClientes.removeItems( 0, olstClientes.getItemCount )
Call TraerClientes( oDatos )
End If
EndIf
End Sub
Cuando lo acciono (lo he asociado a un boton) me larga el error siguiente:
"Error en tiempo de ejecuciòn de BASIC.
Se ha producido una excepciòn
Type: com.sun.star.sdbc.SQLException
Message: Column not found: NuevoNombre"
donde "NuevoNombre" es el dato que vendrìa a reemplazar al anterior y se encuentra en un textbox dentro del cuadro de dialogo desde el que manejo la base de datos en Calc.
Supongo que mi error se encuentra en la setencia sSQL:
sSQL = "UPDATE ""Clientes"" SET ""Nombre"" =" & sNombre & " WHERE ""Id"" = " & sClave
ya que si la reemplazo por
sSQL = "UPDATE ""Clientes"" SET ""Nombre""='Charly' WHERE ""Id""=" & sClave
funciona perfectamente.
La diferencia es que en esta ultima sentencia sSQL el nombre esta fijo en 'Charly' mientras que lo que yo necesitarìa es que se pueda extraer desde el textBox.
He intentado buscar en el foro algo parecido o el codigo anexo que Mauricio menciona en su manual que viene adjunto al mismo pero no encontrado ni uno ni lo otro.
Desde ya muchas gracias!
Saludos para toda la comunidad!