Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ¿Como eliminar Una Tabla en una Base de datos De Access? (https://www.clubdelphi.com/foros/showthread.php?t=82932)

feliz-58 25-04-2013 16:42:05

¿Como eliminar Una Tabla en una Base de datos De Access?
 
Como puedo eliminar una tabla con una base de datos en MS Access, y que seleccione la tabla a borrar por un Combobox?

Los componentes son ADOtable y ADOconection.

Gracias :)









Saludos :D

ecfisa 25-04-2013 17:15:17

Hola feliz-58.

Código Delphi [-]
procedure TForm1.DeleteTable(const TableName: string);
const
   MSG = '¡Atención! se borrará la tabla %s ¿ Continua ?';
begin
  if MessageBox(Handle, PChar(Format(MSG,[TableName])), '', MB_ICONWARNING+MB_YESNO) = IDYES then
    with ADOQuery1 do
    begin
      Close;
      SQL.Text := 'DROP TABLE ' + TableName;
      ExecSQL;
    end;
end;

Llamada ejemplo:
Código Delphi [-]
  if ComboBox1.ItemIndex > -1 then
    DeleteTable(ComboBox1.Items[ComboBox1.ItemIndex]);

Saludos.

feliz-58 25-04-2013 17:27:39

Cita:

Empezado por ecfisa (Mensaje 459266)
Hola feliz-58.

Código Delphi [-]
procedure TForm1.DeleteTable(const TableName: string);
const
   MSG = '¡Atención! se borrará la tabla %s ¿ Continua ?';
begin
  if MessageBox(Handle, PChar(Format(MSG,[TableName])), '', MB_ICONWARNING+MB_YESNO) = IDYES then
    with ADOQuery1 do
    begin
      Close;
      SQL.Text := 'DROP TABLE ' + TableName;
      ExecSQL;
    end;
end;

Llamada ejemplo:
Código Delphi [-]
  if ComboBox1.ItemIndex > -1 then
    DeleteTable(ComboBox1.Items[ComboBox1.ItemIndex]);

Saludos.

Donde voy a Poner el Codigo base?

feliz-58 25-04-2013 17:56:14

¿Como eliminar Una Tabla en una Base de datos De Access Desde Delphi Con un Combobox?
 
Como puedo eliminar una tabla con una base de datos en MS Access, y que seleccione la tabla a borrar por un Combobox?

Los componentes son ADOtable y ADOconection.

Gracias :)

ecfisa 25-04-2013 17:58:09

Cita:

Empezado por feliz-58 (Mensaje 459269)
Donde voy a Poner el Codigo base?

Hola.

Si usas un TDataModule, sería un buen lugar para ubicarlo:
Código Delphi [-]
...
implementation

uses Windows, Forms;

procedure TtuDataModule.DeleteTable(const TableName: string);
const
   MSG = '¡Atención! se borrará la tabla %s ¿ Continua ?';
begin
  iif MessageBox(Screen.ActiveForm.Handle, PChar(Format(MSG,[TableName])), '',
                 MB_ICONWARNING+MB_YESNO) = IDYES then
    with ADOQuery1 do
    begin
      Close;
      SQL.Text := 'DROP TABLE ' + TableName;
      ExecSQL;
    end;
end;

Llamada desde un form:
Código Delphi [-]
...
implementation

uses uDataModule; // tuDataModule

procedure TForm1.btnBorraClick(Sender: TObject);
begin
  if ComboBox1.ItemIndex > -1 then
    tuDataModule.DeleteTable(ComboBox1.Items[ComboBox1.ItemIndex]);
end;

Saludos.

ElDioni 25-04-2013 18:02:26

Buenas.

tienes la respuesta en un hilo que has abierto con la misma pregunta.

http://www.clubdelphi.com/foros/showthread.php?t=82932

ecfisa 25-04-2013 18:05:51

Hola feliz-58

Supongo que ha sido una confusión, pero te ruego que no publiques la misma consulta en diferentes hilos. (combiné ambos en este)

Saludos y gracias por tu colaboración :)

feliz-58 25-04-2013 18:10:00

Cita:

Empezado por ecfisa (Mensaje 459279)
Hola feliz-58

Supongo que ha sido una confusión, pero te ruego que no publiques la misma consulta en diferentes hilos. (combiné ambos en este)

Saludos y gracias por tu colaboración :)

Lo siento, pero no tengo idea de lo que me disjiste que haga XD no tengo experiencia con los Modulos de datos :/ me explicas como?

ecfisa 25-04-2013 18:29:17

Cita:

Empezado por feliz-58 (Mensaje 459280)
Lo siento, pero no tengo idea de lo que me disjiste que haga XD no tengo experiencia con los Modulos de datos :/ me explicas como?

Hola.

Te adjunto un pequeño demo basado en dbdemos.mdb. Para usarlo con tu base de datos, deberás modificar la propiedad ConnectionString del TADOConnection por la ruta donde se halle.

Saludos. :)

feliz-58 25-04-2013 19:12:08

Cita:

Empezado por ecfisa (Mensaje 459281)
Hola.

Te adjunto un pequeño demo basado en dbdemos.mdb. Para usarlo con tu base de datos, deberás modificar la propiedad ConnectionString del TADOConnection por la ruta donde se halle.

Saludos. :)

el query tiene algun codigo? porque me sale en blanco en la propiedad SQL?

feliz-58 25-04-2013 19:20:56

Cita:

Empezado por ecfisa (Mensaje 459281)
Hola.

Te adjunto un pequeño demo basado en dbdemos.mdb. Para usarlo con tu base de datos, deberás modificar la propiedad ConnectionString del TADOConnection por la ruta donde se halle.

Saludos. :)

el query tiene algun codigo? porque me sale en blanco en la propiedad SQL?

o sera otra cosa porque me sale un error, miralo:

feliz-58 25-04-2013 19:22:14

1 Archivos Adjunto(s)
aqui estan los dos errores

ecfisa 25-04-2013 19:36:08

Cita:

Empezado por feliz-58 (Mensaje 459287)
el query tiene algun codigo? porque me sale en blanco en la propiedad SQL?

o sera otra cosa porque me sale un error, miralo:

Hola.

No, el query no tiene código SQL en diseño, sólo en que se le asigna en el procedimiento. Acabo de probarlo y funciona perfectamente, no me explico ese error que te está dando. :confused:

Aunque por las dudas y por el tipo de error, revisa que en: Project -> Options -> Forms -> Auto-create forms, el DataModule esté situado en primer término.

Es decir que si haces: Project -> View source, tendrías que ver algo parecido a:
Código Delphi [-]
program Project2;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {DataModule2: TDataModule};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TDataModule2, DataModule2); // Primero el DataModule
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
(Aunque no comprendo como podría haberse cambiado el órden ya que en el adjunto figura el correcto...)

Saludos.

feliz-58 25-04-2013 19:45:38

Cita:

Empezado por ecfisa (Mensaje 459291)
Hola.

No, el query no tiene código SQL en diseño, sólo en que se le asigna en el procedimiento. Acabo de probarlo y funciona perfectamente, no me explico el error. :confused:

Aunque por las dudas y por el tipo de error, revisa que en: Project -> Options -> Forms -> Auto-create forms, el DataModule esté situado en primer término.

Es decir que si haces: Project -> View source, tendrías que ver algo parecido a:
Código Delphi [-]
program Project2;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {DataModule2: TDataModule};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TDataModule2, DataModule2); // Primero el DataModule
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
(Aunque no comprendo como podría haberse cambiado el órden ya que en el adjunto figura el correcto...)

Saludos.

Excelente Eres un Genio :) lo resolvi, cambie el orden y lo puse de primero incluso hasta que el de inicio de sesion :) Muchisisimas Gracias :) :D v:-)vv:-)v||-||#:-)#


La franja horaria es GMT +2. Ahora son las 23:46:41.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi