Visual Basic - necesito ayuda

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

necesito ayuda

Publicado por merit velazquez (5 intervenciones) el 01/02/2006 23:43:56
Hola:

Estoy buscando alguna instrucción que me permita seleccionar todos los registros de una tabla y eliminarlos en un solo paso.

Ya intente realizarlo por registro pero me ocasiona muchos errores.

La idea que tengo es que quiero eliminar la información de todas las tablas cuando oprimo un botón y la fecha es el domingo después de las 7 de la mañana.

El codigo que tengo ahorita es el siguiente, pero me marca muchos errores.

Public Sub Rutina_elimina()
Dim db As Connection
Set db = New Connection
Directorio$ = Application.CurrentProject.Path

Open Directorio$ & "\Rtadll.dll" For Input As #5
Line Input #5, Ruta_tablas$
Close #5

db.CursorLocation = adUseClient
db.Open "Provider=Microsoft.Jet.Oledb.4.0;User ID=Admin;Password=;Data Source=" & Ruta_tablas$ & "\Boletera_bs.mdb;Persist Security Info=False"


'Abre la tabla para eliminar
Set adoPrimaryRS_HistIden = New Recordset
adoPrimaryRS_HistIden.Open "Select * from Hist_IProducto", db, adOpenStatic, adLockOptimistic

regresa:
On Error GoTo regresa
adoPrimaryRS_HistIden.Update

If adoPrimaryRS_HistIden.EOF Then
db.Close
Exit Sub
End If


adoPrimaryRS_HistIden.MoveFirst
adoPrimaryRS_HistIden.MoveNext

Do Until adoPrimaryRS_HistIden.EOF


adoPrimaryRS_HistIden.Requery
adoPrimaryRS_HistIden.Delete
adoPrimaryRS_HistIden.UpdateBatch
adoPrimaryRS_HistIden.MoveNext
If adoPrimaryRS_HistIden.EOF Then Exit Do
Loop
db.Close
End Sub
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
sin imagen de perfil

RE:necesito ayuda

Publicado por kdlc (226 intervenciones) el 02/02/2006 05:41:37
Por que no usas un comando y listo?
Ejemplo:

Dim cnn As ADODB.Connection
Dim cmm As ADODB.Command
Private Sub Command1_Click()
'para devolver el numero de registros afectados por el comando
Dim lngRowsAffected As Long
'variable coneccion
Dim strConn As String
'variable string comando
Dim strComm As String
'nombre de la tabla
Dim strTabla As String

'seteas la cadena de coneccion
strConn = "Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\Nwind.mdb;Uid=Admin;Pwd=;"

Set cnn = New ADODB.Connection
cnn.CursorLocation = adUseClient
'abres la coneccion
cnn.Open strConn

'la tabla que quieres borrar
strTabla = "Customers2"
' el comando a ejecutar
strComm = "DELETE from " & strTabla & ";"
Set cmm = New ADODB.Command
'que comando estamos ejecutando
cmm.CommandText = strComm
'le dices que coneccion utilizar
Set cmm.ActiveConnection = cnn
'ejecutas el comando
cmm.Execute lngRowsAffected
'el resultado
MsgBox CStr(lngRowsAffected) & " registros borrados.", vbInformation
'desechamos la conneccion y el comando
cnn.Close
Set cnn = Nothing
Set cmm = Nothing
End Sub

Esto solo borra una tabla, para borrar mas tienes que hacer un loop o simplemente traspasarla a una funcion donde acepte el nombre de la tabla que quieres borrar.
ojo con los contadores, que esto solo vacia la tabla no los resetea.

Suerte
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