Ayuda con código de programa implementado en Visual Basic para borrar tabla de base de datos

Hola espero y me puedas ayudar creo que es algo simple pero esto de programar no se me da muy bien je je mira el problema es este tengo esto:
For Each T In DBEngine(0)(0).TableDefs
If sNameTable = T.Name Then
sSQL = "drop table chartis21"
cnnActiva.Execute sSQL
End If
If SnameTable1 = T.Name Then
sSQL = "drop table dublin21"
cnnActiva.Execute sSQL
  Exit For
  End If
Next T
Cuando el IF es verdadero todo va bien pero cuando es falso falla lo que quiero que haga es que cuando sea falso no haga nada ni marque error. Espero y me puedas ayudar con esto muchas gracias..

1 respuesta

Respuesta
1
Creo que el problema es por que no hay relación entre ninguno de los dos. Se ejecutan separados y no se si es lo que quieres.
For Each T In DBEngine(0)(0).TableDefs 
If sNameTable = T.Name Then 
sSQL = "drop table chartis21" 
cnnActiva.Execute sSQL 
else 
"que no haga nada"
End If 
If SnameTable1 = T.Name Then 
sSQL = "drop table dublin21" 
cnnActiva.Execute sSQL
else
"que no haga nada" 
exit forend if 
Next T
Ya si los quieres anidar es otro tema
Se me hace que si había que juntarlos, lo que pretendo con eso es, tengo dos objetos y quiero que verifique si existe alguno lo borre. De momento si no existe el primero no borra nada. Espero haberme explicado bien
Pues no termino de entender muy bien el problema :-(
El código está puesto para:
Si el primero existe=> Lo borra
si el 2 existe=> Lo borra.
Siempre ejecuta los dos IF al margen de lo que haga en cada uno.
Si acaso deberías poner una transacción por delante y detrás dl bucle por que quizás cuando borras el primero el t.name se quede sin valor y por eso falla.
Usa
conactiva. Begintrans.
for....
...next 
conactiva.committrans
Con eso el cambio en la BD no se realiza hasta el final.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas