3ENGINE

Programación y otros cachivaches

Etiqueta: programacion

Página 3/20

Tecnologia

Cómo mostrar un cuadro de dialogo para abrir un archivo en Microsoft Access


La versión de Microsoft Office Access 2003 y posteriores implementan el método FileDialog para mostrar un cuadro de dialogo para abrir un archivo en Microsoft Access.

Para poder hacer uso del método es importante referenciar a la Biblioteca de objetos de Microsoft Office XX.0, donde XX es el nombre de la versión interna instalada en tu PC de Office. Office11 es el nombre interno de Office 2003, Office12 de Office 2007 y Office14 para Office 2010 (Microsoft se saltó la version 13, simplemente porque el 13 es un número de mala suerte):

mostrar un cuadro de dialogo para abrir un archivo en Microsoft Access

Existen cuatro tipos de diálogos aunque no todos están soportados por Microsoft Access:

  • 1: msoFileDialogOpen (ppen dialog box)
  • 2: msoFileDialogSaveAs (save As dialog box)
  • 3: msoFileDialogFilePicker (picker dialog box)
  • 4: msoFileDialogFolderPicker (folder picker dialog box)

Ejemplo de código para seleccionar un archivo EXCEL:

  
  Dim OpenDialog As Object
  Set OpenDialog = Application.FileDialog(3) ' = msoFileDialogFilePicker (picker dialog box)
  OpenDialog.AllowMultiSelect = False
  OpenDialog.Title = "Seleccioni un document EXCEL..."
  OpenDialog.Filters.Clear
  OpenDialog.Filters.Add "EXCEL Files", "*.xlsm;*.xls;*.xlsx"
  OpenDialog.Filters.Add "All Files", "*.*"
  OpenDialog.Show

  MsgBox "Numero de archivos seleccionados: " & OpenDialog.SelectedItems.Count
  MsgBox OpenDialog.SelectedItems(1)

Ejemplo de código para seleccionar varios archivos EXCEL:

 
  Dim OpenDialog As Object
  Set OpenDialog = Application.FileDialog(3) ' = msoFileDialogFilePicker (picker dialog box)
  OpenDialog.AllowMultiSelect = True
  OpenDialog.Title = "Seleccioni un document EXCEL..."
  OpenDialog.Filters.Clear
  OpenDialog.Filters.Add "EXCEL Files", "*.xlsm;*.xls;*.xlsx"
  OpenDialog.Filters.Add "All Files", "*.*"
  OpenDialog.Show

  MsgBox "Numero de archivos seleccionados: " & OpenDialog.SelectedItems.Count
  For Each SelectedItem In OpenDialog.SelectedItems
        MsgBox SelectedItem
  Next



Tecnologia

Access 2010: solución al error «You do not have exclusive access to the database at this time»


Al trabajar con Access 2010 puede aparece un mensaje de error You do not have exclusive access to the database all this time como este:

You do not have exclusive access to the database at this time

Pero el problema es que este mensaje de error a veces se produce incluso aunque haya un único usuario en la base de datos. Para resolver este error te propongo dos posibles soluciones.

Solución 1

Ir al apartado Configuración del Cliente (Client Settings) dentro del Opciones (Access Options) y en la sección Avanzadas (Advanced) seleccionar el modo Compartido (Shared):

You do not have exclusive access to the database at this time

Solución 2

Si la primera solución no fue efectiva o ya tenias seleccionado el modo compartido. Entonces es posible que tu base de datos Access esté corrompida. Para intentar recuperar lo que haremos es importar la base de datos a una nueva base de datos Access en blanco:

Primero crear una base de datos en blanco, vete a la pestaña Datos Externos (External Data) y selecciona la opción de importar de una base de datos Access:

You do not have exclusive access to the database at this time

Selecciona la base de datos que da problemas:

You do not have exclusive access to the database at this time

Y por último importa todos los objetos:

You do not have exclusive access to the database at this time

 




Tecnologia

Cómo descargar una imagen de una página y mostrarla en un Winform de .NET


A veces puede interesar descargar de internet imágenes u otros recursos a local. Aquí te explico cómo descargar una imagen de una página y mostrarla en un Winform de .NET con la particularidad que en ningún momento guardamos la imagen en disco:

Código para descargar una imagen de una página y mostrarla en un Winform:

private void buttonCargar_Click(object sender, EventArgs e)
{
string[] imagenes = new string[] 
{"https://i.ytimg.com/vi/r5zVP6tmvRQ/mqdefault.jpg", 
 "https://i.ytimg.com/i/ZJ7m7EnCNodqnu5SAtg8eQ/1.jpg",
 "https://i.ytimg.com/vi/oY6ZMx_lVks/default.jpg",
 "https://i.ytimg.com/vi/REd0FYX8Zno/default.jpg",
 "https://i.ytimg.com/vi/ZJxN1swBnhg/default.jpg"};

using (WebClient client = new WebClient())
{
this.imageList.ColorDepth = ColorDepth.Depth32Bit;
this.imageList.ImageSize = new Size(60, 50);

foreach (var imagen in imagenes)
{
Byte[] byteImage = client.DownloadData(imagen);
MemoryStream memoryStream = new MemoryStream(byteImage);
Image image = Image.FromStream(memoryStream);
this.imageList.Images.Add(image);

ListViewItem item = new ListViewItem();
item.ImageIndex = imageList.Images.Count - 1;
item.SubItems.Add(imagen);
this.listView.Items.Add(item);
}
}
}

Del ejemplo tenemos una lista de cinco imágenes a descargar:

  • 12-13: indica la profundidad de color y tamaño de la imagen a guardar en imageList
  • 17-20: descarga la imagen y la guarda en imageList
  • 22-25: añadir la imagen y la url en listView

El resultado es el siguiente:

descargar una imagen de una página y mostrarla en un Winform

Podeis obtener las fuentes del ejemplo desde aquí .




Tecnologia

Cómo añadir un video de Youtube en un Winform de .NET


Pasos para añadir un video de Youtube a un Winform de .NET

1. Añadir una referencia a la libreria Shockwave Flash. Para ello, ir la opción Agregar referencia, pestaña COM y seleccionar el componente Shockwave Flash:

añadir un video de Youtube en un Winform 1

Ahora nuestro proyecto tienen una referencia ShockwaveFlashObjects

añadir un video de Youtube en un Winform 2

2. Añadir al cuadro de herramientas el control Shockwave Flash Object. Para ello, ir al cuadro de herramientas, click derecho del ratón y seleccionar la opción Elegir elementos. Una vez se abra el diálogo (tarda un poco) ir a la pestaña Componentes COM y seleccionar el componente Shockwave Flash Object:

añadir un video de Youtube en un Winform 3

Si todo ha ido bien, aparecerá en el cuadro de herramientas un nuevo elementos:

añadir un video de Youtube en un Winform 4

3. Añadir el control Shockwave Flash Object a un formulario y un botón que necesitaremos para hacer una prueba. Añadir el siguiente código al evento click del botón:

        
private void bPlay_Click(object sender, EventArgs e)
{
   axShockwaveFlash1.LoadMovie(0, "http://www.youtube.com/v/VzEHmcABGUU");
   axShockwaveFlash1.Play();
}

4. Si todo ha ido bien este será el resultado:

añadir un video de Youtube en un Winform 5