Visual Basic - Error al borrar registros

Life is soft - evento anual de software empresarial
 
Vista:

Error al borrar registros

Publicado por Antonio Belando (93 intervenciones) el 21/08/2009 09:39:18
Hola, a todos.
En el siguiente código me da un ERROR DE COMPILACIÓN en la instrucción "Truncate" , me dice VARIABLE NO DEFINIDA en el nombre de la tabla cuyos registros quiero borrar:

Set rsLinPed = New ADODB.Recordset
With rsLinPed
'Obliga a cerrar el RecordSet caso de estar abierto, para abrirlo seguidamente sin que de error
If .State Then .Close
.Open "SELECT Cod, Con, Cant, Prec, Totl " & _
"FROM Line_Ped Order by Cod", g_db, adOpenDynamic, adLockOptimistic
If .RecordCount > 0 Then
MsgBox "Se van a borrar los registros de Line_Ped.", vbInformation
TRUNCATE Line_ped
rsLinPed.Update
End If
'Pasamos los datos a la DataGrid
Set DGLinPed.DataSource = rsLinPed
DGLinPed.Refresh
rsLinPed.MoveLast
End With

NOTAS:
----------
A) Si en lugar de TRUNCATE Line_Ped, pongo DELETE FROM Line_Ped me da error de sintaxis al ejecutar; y error de compilación, se esperaba: fin de la instrucción y me destaca Line_Ped, al escribir el código.

B) Y si pongo:
.Execute "DELETE FROM Line_ped"
Me da otro error de compilación, en este caso:
"NO SE ENCONTRÓ EL MÉTODO O EL MIEMBRO DE DATOS"
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error al borrar registros

Publicado por Rolando  (115 intervenciones) el 21/08/2009 15:43:48
Te dejo dos funciones para que pruebes solo reemplaza en cn con tu cadena de conexion

La primera funcion te devuelve lista de tegristros :
Ejemplo:

set rsLinPed = fRetornaRS ( "select * from Line_Ped ")

if rsLinPed.recordcount>0 then
MsgBox "Se van a borrar los registros de Line_Ped.", vbInformation
pEjecutaSQL (" delete from Line_Ped ")
end if

Public Function fRetornaRS(GsSentenciaSQL As String) As ADODB.Recordset
Dim Cmd As New ADODB.Command
Dim rs As New ADODB.Recordset
On Error GoTo Msj_error
rs.CursorLocation = adUseClient

With Cmd
.ActiveConnection = cn
.CommandType = adCmdText
.CommandText = GsSentenciaSQL
.Execute
End With

rs.Open Cmd, , adOpenDynamic, adLockOptimistic
Set fRetornaRS = rs
Set rs = Nothing
Set Cmd = Nothing

Msj_error:
If Err.Number <> 32755 Then
If Len(Err.Description) > 1 Then MsgBox "Ocurrió el Siguiente Error:" + Chr(13) + Err.Description, vbCritical, "SISTEMA"
End If

End Function

Public Sub pEjecutaSQL(GsSentenciaSQL As String)
On Error GoTo Msj_error
Dim Cmd As New ADODB.Command
With Cmd
.ActiveConnection = cn
.CommandType = adCmdText
.CommandText = GsSentenciaSQL
.Execute
End With
Set Cmd = Nothing

Msj_error:
If Err.Number <> 32755 Then
If Len(Err.Description) > 1 Then MsgBox "Ocurrió el Siguiente Error:" + Chr(13) + Err.Description, vbCritical, "SISTEMA"
End If
End Sub

Saludos

Rolando Lau
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error al borrar registros

Publicado por Antonio Belando (93 intervenciones) el 21/08/2009 16:29:30
Gracias Rolando por tu ayuda, lo probaré.
Saludos cordiales.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error al borrar registros

Publicado por jaime guerrero (361 intervenciones) el 21/08/2009 23:36:53
truncate, delete from directo en visual basic 6??? tio, tas mesclando las cosas

truncate y delete from son de transac sql.

si vas a borrar informacion

desde el objeto connection o del objeto commad

cn.execute "truncate table tabla"

o

cn.execute "delete from tabla"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar