Programando con Café

Programando con Café es el lugar de encuentro de todos sus tutoriales de programación que usted necesita en diferentes lenguajes de programación y base de datos

martes, enero 18, 2011

VB.Net - Cantidad de Lunes que tiene un Mes


"Si usa algún código del siguiente tutorial, den el icono de ME GUSTA del Facebook que se encuentra en su mano derecha, para que se vuelva Seguidor del Blog y también comentenos que tal les pareció el tutorial"

El siguiente metodo en Visual Basic.Net sirve para saber cuantos Lunes hay en un mes determinado, para asi poder saber cuantas semanas efectivas tiene un mes determinado.

Public Shared Function CantidadLunes(ByVal mes As Integer) As Integer
    Dim cantidad As Integer = 0
    Dim fechaRef As New Date(Year(Date.Now), mes, 1)
    While fechaRef.DayOfWeek <> DayOfWeek.Monday
        fechaRef = fechaRef.AddDays(1)
    End While
    Dim fecha As Date
    For i As Integer = 0 To 5
        fecha = fechaRef.AddDays(i * 7)
        If fecha.Month = mes Then
            cantidad = cantidad + 1
        Else
            Exit For
        End If
    Next
    Return cantidad
End Function

Ejemplo de la aplicación, cantidad de lunes del mes de enero me devuelve el valor de 5. Indicándome que tengo 5 semanas efectivas.

viernes, enero 07, 2011

Javascript - Usando el objeto navegador para detectar un cliente Firefox


"Si usa algún código del siguiente tutorial, den el icono de ME GUSTA del Facebook que se encuentra en su mano derecha, para que se vuelva Seguidor del Blog y también comentenos que tal les pareció el tutorial"

El objeto navegador resulta muy útil a la hora de utilizar elementos dependientes del navegador. Por ejemplo los div flotantes. Uno de los objetivos de cualquier diseñador que se respete será mantener la característica de multiplataforma en una página web. Sin embargo, como podemos ver, hay elementos que lucen bien en un navegador web X, pero que al ser interpretados por un navegador web Y se distorsionan, mueven de posición, alteran otros elementos, etc.
Para empezar, y para no perder los modales, vamos a dar los respectivos créditos a nuestra fuente. Como bien dice el título de este post, usaremos Mozilla Firefox como ejemplo de navegador cliente. Si quieren saber cómo detectar otros navegadores, recomendamos visitar la fuente antes citada.
Conozcamos las propiedades del objeto navegador:

PropiedadesDescripción
appCodeNameEl nombre en clave del navegador.
appNameEl nombre del navegador.
appVersionInformación de la versión para el navegador
cookieEnabledBooleano que indica si el navegador tiene las cookies habilitadas.
languageDevuelve el idioma predeterminado de la versión del navegador.
mimeTypes[]Un conjunto de todos los tipos MIME soportados por el cliente.
platform[]La plataforma de la computadora del cliente.
pluginsUn conjunto de todos los plug-ins instalados actualmente en el cliente.
systemLanguageDevuelve el idioma por defecto del sistema operativo.
userAgentCadena que se pasa por el navegador como agente de cabecera del usuario.
userLanguageDevuelve la configuración de idioma preferido de usuario.

En Firefox 2.0.0.13 por ejemplo, la propiedad userAgent dice lo siguiente:
UserAgent:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13
Como verán, al final de la cadena se encuentra el cliente navegador y su versión (Firefox/2.0.0.13). Lo que nos interesa de momento es obtener la versión. Es decir, en número después de "Firefox/2.0.0.13". En este caso hemos utilizado Expresiones Regulares, pero hay más formas de conseguirlo:

<script type="text/javascript">
if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //prueba para Firefox/x.x o Firefox x.x (ignorando los números restantes);
 var ffversion=new Number(RegExp.$1) //capturamos la x.x y la almacenamos como un número
 if (ffversion>=3)
  document.write("Estás usando Firefox 3.x o superior!")
 else if (ffversion>=2)
  document.write("Estás usando Firefox 2.x")
 else if (ffversion>=1)
  document.write("Estás usando Firefox 1.x")
}
else
 document.write("No estás usando Firefox")
</script>
Nótese que con esta expresión regular "/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)" no estamos capturando todos los números de la versión (por ejm: 2.0.0.13), sino únicamente los dos primeros dígitos (por ejm: 2.0).
Ahora, para dar una solución práctica al problema mencionado al principio de este post, debemos incrustar el html necesario para utilización de las css.

<script type="text/javascript">
if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
 var ffversion=new Number(RegExp.$1)
 if (ffversion>=3)
  document.write("<style type='text/css'>.cuadro{background-color: red; color: white;} </style>") //para FF 3.x o superior
 else if (ffversion>=2)
  document.write("<style type='text/css'>.cuadro{background-color: blue; color: white;}</style>") //para FF 2.x
 else if (ffversion>=1)
  document.write("<style type='text/css'>.cuadro{background-color: yellow; color: white;}</style>") //para FF 1.x
}
else
 document.write("<style type='text/css'>.cuadro{background-color: black; color:yellow;}</style>") //para otros navegadores web
</script>
De este modo, si cuando por ejemplo inserte texto en un div de esta manera: "<div class='cuadro'>Hola mundo xD</div>", tendrá un color de fondo diferente en cada versión de Firefox. Eso no es todo, también podemos sustituír el "<style type 'text/css'>...</style>" por un "<link rel="stylesheet" type="text/css" href="ruta_hoja_de_estilo.css" />" y de esa forma aplicar formato a los elementos dependiendo de cada versión de Firefox.

martes, enero 04, 2011

C++ - Método de Integración Runge - Kutta y Euler


"Si usa algún código del siguiente tutorial, den el icono de ME GUSTA del Facebook que se encuentra en su mano derecha, para que se vuelva Seguidor del Blog y también comentenos que tal les pareció el tutorial"

Este algoritmo sirve para aplicar los métodos de Integracion de Runge-Kutt y Euler y fue desarrollado en C++. Le puede servir a la gente que le gusta la programación orientadose a la matemática. Este algoritmo fue desarrollado para fines didácticos.




El código fuente de la aplicación en C++

#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
#include<math.h>

//Se debe ingresar X0=0; Y0=1; Xf=1; N=10

/**********************Se ingresa la funcion****************************/

float func(float x, float y){
  return 0.5*(1+x)*pow(y,2);
}

/**********************Reportar los Datos******************************/

void reportar(float x, float y, int i)
{cout<<setiosflags(ios::showpoint | ios::fixed);
  cout<<setiosflags(ios::right);
  cout.precision(4);
  cout<<setw(10)<<i<<setw(15)<<x<<setw(15)<<y<<endl;
}

/**********************Reportar los Datos******************************/

int menu()
{int opc;
  do
  {clrscr();
    cout<<setw(50)<<"SELECCIONE OPCION\n";
    cout<<setw(50)<<"-----------------\n"<<endl;
    cout<<"1.Metodo de Euler"<<endl;
    cout<<"2.Metodo de Runge -Kutta"<<endl;
    cout<<"3.Salir"<<endl;
    cout<<"\nSeleccione Opcion: ";cin>>opc;
  }while(opc<1 || opc>3);
  return opc;
}

/**********************Metodo de Euler******************************/

void Euler(){
  float x0,y0,xf,yf,h;
  int n,i;
  clrscr();
  cout<<setw(50)<<"Metodo de Integracion de Euler"<<endl;
  cout<<setw(50)<<"------------------------------"<<endl<<endl;
  cout<<"Ingrese el valor de x0: ";
  cin>>x0;
  cout<<"Ingrese el valor de y0: ";
  cin>>y0;
  cout<<"ingrese el valor de xf: ";
  cin>>xf;
  do{
    cout<<"Ingrese el numero de subintervalos a emplear: ";
    cin>>n;
  }while(n<=0);
  h=(xf-x0)/n;
  cout<<endl;
  cout<<setw(10)<<"I"<<setw(15)<<"Xi"<<setw(15)<<"Yi"<<endl;
  cout<<setw(10)<<"-"<<setw(15)<<"--"<<setw(15)<<"--"<<endl;
  for(i=1;i<=n;i++)
  { y0=y0+h*func(x0,y0);
    x0=x0+h;
    reportar(x0,y0,i);
  }
  cout<<"\nEl valor de Yf: "<<y0<<endl;
  getch();
}

/**********************Metodo de Runge Kutta******************************/

void Kutta(){
  float x0,y0,xf,yf,h,k1,k2,k3,k4;
  int n,i;
  clrscr();
  cout<<setw(50)<<"Metodo de Runge - Kutta"<<endl;
  cout<<setw(50)<<"-----------------------"<<endl<<endl;
  cout<<"Ingrese el valor de x0: ";
  cin>>x0;
  cout<<"Ingrese el valor de y0: ";
  cin>>y0;
  cout<<"ingrese el valor de xf: ";
  cin>>xf;
  do{
    cout<<"Ingrese el numero de subintervalos a emplear: ";
    cin>>n;
  }while(n<=0);
  h=(xf-x0)/n;
  cout<<endl;
  cout<<setw(10)<<"I"<<setw(15)<<"Xi"<<setw(15)<<"Yi"<<endl;
  cout<<setw(10)<<"-"<<setw(15)<<"--"<<setw(15)<<"--"<<endl;
  for(i=1;i<=n;i++)
  { k1=func(x0,y0);
    k2=func(x0+h/2,y0+h*k1/2);
    k3=func(x0+h/2,y0+h*k2/2);
    k4=func(x0+h,y0+h*k3);
    y0=y0+(k1+2*k2+2*k3+k4)*h/6;
    x0=x0+h;
    reportar(x0,y0,i);
  }
  cout<<"El valor de Yf: "<<y0<<endl;
  getch();
}

/**********************Terminar******************************/

void terminar()
{cout<<"\t\t\t\tSalir del Programa\n";
cout<<"\t\t\t\t------------------\n\n";
cout<<"Gracias por usar el programa"<<endl<<endl;
}

/**********************Funcion Principal******************************/

void main (void)
{int opc;
do
{clrscr();
  opc=menu();
  clrscr();
  switch(opc)
  {case 1: clrscr();Euler(); break;
    case 2: clrscr();Kutta();break;
    case 3: clrscr();terminar();break;
  }
  getch();
}
while(opc!=3);
getch();
}

domingo, enero 02, 2011

Java - Web Services en Java - Comunicar Java con VB.Net parte II


"Si usa algún código del siguiente tutorial, den el icono de ME GUSTA del Facebook que se encuentra en su mano derecha, para que se vuelva Seguidor del Blog y también comentenos que tal les pareció el tutorial"

1. Entorno


  • Visual Studio 2010
  • JDK 6 Update 21
  • Netbeans 6.9.1
  • Apache Tomcat
  • MySQL 5.0.

2. Introducción


El ejemplo que se mostrara a continuación sirve para consumir un servicio web que esta en Java desde una aplicacion de escritorio que esta en Visual Basic.Net. Para ver como construir el servicio web entrar a la siguiente PAGINA

3. Desarrollo


3.1. Crear proyecto en Visual Studio 2010

Debemos de crear un proyecto en Visual Studio 2010 del tipo Windows y con el lenguaje Visual Basic. Al cual lo llamaremos "AplicacionWebServiceEnNet"















3.2. Diseño del Formulario

Diseñamos el siguiente formulario












El cual recibe los siguiente nombres los componentes del formulario

  • txtCodigo --> TextBox
  • txtNombre --> TextBox
  • txtApellido --> TextBox
  • cboTipo --> ComboBox (Con tres Items: Estudiante UPAO, Estudiate Otro, Profesional, JPC)
  • dtpFechaNacimiento --> DateTimePicker
  • btnNuevo --> Button
  • btnModificar --> Button
  • btnEliminar --> Button
  • btnModificar --> Button

3.3. Agregando Servicio Web

En la Parte I del Tutorial (si desean verlo visitar el siguiente LINK) testeamos el servicio Web hecho en Java y este servicio Web nos devuelve un dirección electrónica (URL) que termina con WSDL. Esta dirección electrónica es la que debemos de agregar como referencia a nuestra aplicación.









Para agregar el servicio web a nuestro proyecto en Visual Studio debemos de ir a la parte de "Explorador de Soluciones" y a nuestro proyecto hacemos clic derecho y seleccionamos la opción de "Agregar referencia web"


















Cuando hacemos clic en la opción anterior nos sale que debemos de poner la URL de nuestro Web Service, y entonces ahí pegamos nuestra dirección electrónica y presionamos el botón de color verde.

















Al presionar el boton verde nos mostrara todos los Web Method que hemos creado en Java y a nuestra referencia le ponemos como nombre  "WebReference"

















Y veremos que al presionar el botón "Agregar Referencia" en nuestro proyecto se agrego la referencia a nuestro servicio web.














3.4. Codificando el formulario

3.4.1. Métodos de soporte

Debemos de crear unos métodos que den soporte a la aplicación, como el de limpiar todo el formulario y habilitar los controles.

'Metodo q permite Hablitar o Deshabilitar Controles
Private Sub estadoComponentes(ByVal flag As Boolean)
 Me.txtNombre.ReadOnly = Not flag
 Me.txtApellido.ReadOnly = Not flag
 Me.cboTipo.Enabled = flag
 Me.dtpFechaNacimiento.Enabled = flag
 If flag Then
     Me.txtNombre.Focus()
 End If
End Sub

'Limpia todos los controles
Private Sub limpiar()
 Me.txtCodigo.Text = ""
 Me.txtNombre.Text = ""
 Me.txtApellido.Text = ""
 Me.cboTipo.SelectedIndex = 0
 Me.dtpFechaNacimiento.Value = Now
End Sub

3.4.2. Métodos para llamar al Servicio Web

Vamos a crear cuatros métodos que serán los encargados de llamar a nuestro Web Method que creamos en Java. Recordar que a la referencia web lo llamamos "WebReference"

'Metodo utilizado para insertar un participante
Private Sub insertarParticipante()
  'Crea la referencia al web service de java
  Dim jws As New WebReference.WebServiceJavaService
  Dim nombre As String = Me.txtNombre.Text.Trim.ToUpper
  Dim apellido As String = Me.txtApellido.Text.Trim.ToUpper
  Dim fechaNacimiento As String = CStr(Me.dtpFechaNacimiento.Value)
  Dim tipoParticipante As Integer = Me.cboTipo.SelectedIndex
  'Llama al metodo insertar persona del web service que esta en java
  'Si devuelve verdadero es porque se inserto ese dato
  Dim rpta As Boolean = jws.insertarPersona(nombre, apellido, fechaNacimiento, tipoParticipante)
  If rpta Then
    MessageBox.Show("Se inserto al participante de forma correcta", "MENSAJE", MessageBoxButtons.OK, MessageBoxIcon.Information)
  Else
    MessageBox.Show("No se pudo insertar al participanete", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)
  End If
End Sub

'Metodo utilizado para actualizar los datos del participante
Private Sub actualizarParticipante()
  'Crea la referencia al web service de java
  Dim jws As New WebReference.WebServiceJavaService
  Dim codigo As Integer = CInt(Me.txtCodigo.Text.Trim)
  Dim nombre As String = Me.txtNombre.Text.Trim.ToUpper
  Dim apellido As String = Me.txtApellido.Text.Trim.ToUpper
  Dim fechaNacimiento As String = CStr(Me.dtpFechaNacimiento.Value)
  Dim tipoParticipante As Integer = Me.cboTipo.SelectedIndex
  'Llama al metodo actualizar persona del web service que esta en java
  'Si devuelve verdadero es porque se actulizo ese dato
  Dim rpta As Boolean = jws.actualizarPersona(codigo, nombre, apellido, fechaNacimiento, tipoParticipante)
  If rpta Then
    MessageBox.Show("Se actualizo al participante de forma correcta", "MENSAJE", MessageBoxButtons.OK, MessageBoxIcon.Information)
  Else
    MessageBox.Show("No se pudo actualizar al participanete", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)
  End If
End Sub

'Metodo utilizado para eliminar un participante
Private Sub eliminarParticipate()
  'Crea la referencia al web service de java
  Dim jws As New WebReference.WebServiceJavaService
  Dim codigo As Integer = CInt(Me.txtCodigo.Text.Trim)
  'Llama al metodo eliminar persona del web service que esta en java
  'Si devuelve verdadero es porque se elimino ese dato
  Dim rpta As Boolean = jws.eliminarPersona(codigo)
  If rpta Then
    MessageBox.Show("Se elimino al participante de forma correcta", "MENSAJE", MessageBoxButtons.OK, MessageBoxIcon.Information)
  Else
    MessageBox.Show("No se pudo eliminar al participanete", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)
  End If
End Sub

'Metodo utilizado para buscar un participante por su codigo
Private Sub buscarParticipante()
  'Crea la referencia al web service de java
  Dim jws As New WebReference.WebServiceJavaService
  Dim codigo As Integer = CInt(Me.txtCodigo.Text.Trim)
  'Llama al metodo buscarPersonaCodigo del web service que esta en java
  'Si devuelve verdadero es porque se encontro ese dato
  Dim rpta As Boolean = jws.buscarPersonaCodigo(codigo)
  If rpta Then
    'Establece los valores a los controles del formulario
    Me.txtNombre.Text = jws.getNombre
    Me.txtApellido.Text = jws.getApellido
    Me.dtpFechaNacimiento.Value = CDate(jws.getFechaNacimiento)
    Me.cboTipo.SelectedIndex = jws.getTipo
    Call Me.estadoComponentes(True)
  Else
    MessageBox.Show("No existe participante con ese codigo", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)
    Call Me.limpiar()
    Call Me.estadoComponentes(False)
  End If
End Sub

3.4.3. Codificando los eventos del formulario

Vamos a codificar los eventos click de los botones y load del formulario

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  Me.cboTipo.SelectedIndex = 0
  Call Me.estadoComponentes(False)
End Sub

Private Sub btnNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNuevo.Click
  Call Me.estadoComponentes(True)
  Call Me.limpiar()
End Sub

Private Sub btnModificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnModificar.Click
  Dim cod As String = InputBox("Ingrese codigo", "Consultar")
  If cod <> "" Then
    Me.txtCodigo.Text = cod
    Call Me.buscarParticipante()
  End If
End Sub

Private Sub btnGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGuardar.Click
  If Me.txtCodigo.Text.Length = 0 Then
    Call Me.insertarParticipante()
  Else
    Call Me.actualizarParticipante()
  End If
  Call Me.limpiar()
  Call Me.estadoComponentes(False)
End Sub

Private Sub btnEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEliminar.Click
  If (Me.txtCodigo.Text.Length > 0) Then
    Call Me.eliminarParticipate()
    Call Me.limpiar()
    Call Me.estadoComponentes(False)
  Else
    MessageBox.Show("No busco a la persona a eliminar", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Warning)
  End If
End Sub

4. Ejemplo de la Aplicación


Java - Obtener información pagina Web


"Si usa algún código del siguiente tutorial, den el icono de ME GUSTA del Facebook que se encuentra en su mano derecha, para que se vuelva Seguidor del Blog y también comentenos que tal les pareció el tutorial"

El siguiente código sirve para obtener la información de una pagina web. Como su protocolo, puerto que utiliza, codigo html, etc. El ejemplo lo coloque en un método main para que sea mas rápido su ejecución

public static void main(String[] args){
        try {
            Scanner sc=new Scanner(System.in);
            System.out.println("Ingrese URL completa:");
            String pagina=sc.nextLine();
            URL url = new URL(pagina);
            System.out.println("Protocolo: "+url.getProtocol());
            System.out.println("Host: "+url.getHost());
            System.out.println("Fichero: "+url.getFile());
            System.out.println("Puerto: "+url.getPort());
            System.out.println("Path: "+url.getPath());
            System.out.println("Query: "+url.getQuery());
            System.out.println("Puerto por defecto: "+url.getDefaultPort());
            //Codigo HTML de la pagina
            System.out.println("\n\n\t\tCodigo HTML de la pagina");
            System.out.println("\t\t------------------------\n\n");
            InputStreamReader reader=new InputStreamReader(url.openStream());
            BufferedReader in= new BufferedReader(reader);
            String inputLine;
            while((inputLine=in.readLine())!=null)
                System.out.println(inputLine);
            in.close();
            
    } catch (Exception ex) {
            ex.printStackTrace();
     }
}

sábado, enero 01, 2011

Java - Ajedrez en Java (Netbeans)


"Si usa algún código del siguiente tutorial, den el icono de ME GUSTA del Facebook que se encuentra en su mano derecha, para que se vuelva Seguidor del Blog y también comentenos que tal les pareció el tutorial"

A continuación les paso el código de como poder crear un ajedrez en Java. Ustedes lo pueden mejorar a su manera, solo les doy la lógica de como poder desarrollarlo. Suerte en la mejora del ajedrez. Lo pueden descargar de AQUI

Pantallas del Ajedrez


Debemos de presionar nuevo juego para comenzar la partida


















El rojo es el que empieza el movimiento


















Valida que los movimientos sean validos

VBScript - Crear usuarios, unidades organizativas para Windows Server por codigo


"Si usa algún código del siguiente tutorial, den el icono de ME GUSTA del Facebook que se encuentra en su mano derecha, para que se vuelva Seguidor del Blog y también comentenos que tal les pareció el tutorial"

VBScript es un lenguaje que apoya a la administración de servidores que corren bajo la plataforma Windows. El siguiente código sirve para darles una introducción de como crear unidades organizativas, sub unidades organizativas, crear usuarios, eliminar usuarios de toda una unidad organizativa y eliminar cierto usuario especifico. El dominio en el cual se ejecuta la sentencia es "hwongu.net".

set odom=getobject("LDAP://dc=hwongu,dc=net")
do
 msgbox(" ***** MENU PARA CREAR UNA ESTRUCTURA DE OUS ***** " & vbcrlf & _
       vbcrlf & "[1] Crear unidades organizativas " & vbcrlf & _
     vbcrlf & "[2] Crear sub ou " & vbcrlf & _
     vbcrlf & "[3] Crear Cuenta de Usuarios " & vbcrlf & _
     vbcrlf & "[4] Eliminar todos Usuarios en una unidad organizativa" & vbcrlf & _
     vbcrlf & "[5] Eliminar Usuarios especifico en una unidad organizativa" & vbcrlf & _
    vbcrlf & "[6] Salir del programa " & vbcrlf   )
 opcion=inputbox("Ingrese una opcion [1-6]")
 Select Case opcion
    Case "1"
        Do
         set odom=getobject("LDAP://dc=hwongu,dc=net")
         nombre=inputbox("Ingrese nombre de la unidad organizacional")
         set ou=odom.create("OrganizationalUnit", "ou=" & nombre)
         ou.setinfo
         resp=inputbox("Desea seguir creando unidades(S/N)")    
        Loop While resp="s"
    Case "2"
        nombre=inputbox("Ingrese nombre de la unidad organizacional")
        set odom=getobject("LDAP://" & nombre & ",dc=hwongu,dc=net")
        Do
         nombre=inputbox("Ingrese nombre de la sub unidad organizacional")
         set ou=odom.create("OrganizationalUnit", "ou=" & nombre)
         ou.setinfo
         resp=inputbox("Desea seguir creando sub unidaddes S/N")    
        Loop While resp="s"
    Case "3"
        nombre=inputbox("Ingrese nombre de la unidad organizacional")
        set odom=getobject("LDAP://" & nombre & ",dc=hwongu,dc=net")
        Do
         nuser=inputbox("ingrese el nombre del usuario")
         set ouser=odom.create("user", "cn=" & nuser)
         ouser.setinfo
         resp=inputbox("Desea seguir creando usuarios s/n")
        Loop While resp="s"
    Case "4"
        Const ADS_SCOPE_ONELEVEL = 1
        Set objConnection = CreateObject("ADODB.Connection")
        Set objCommand =   CreateObject("ADODB.Command")
        objConnection.Provider = "ADsDSOObject"
        objConnection.Open "Active Directory Provider"
        Set objCommand.ActiveConnection = objConnection
        objCommand.Properties("Page Size") = 1000
        objCommand.Properties("Searchscope") = ADS_SCOPE_ONELEVEL 
        nombre=inputbox("Ingrese nombre de la unidad organizacional contenedora")
        objCommand.CommandText ="SELECT Name FROM 'LDAP://" & nombre & ",dc=hwongu,dc=net' WHERE objectCategory='user'"  
        Set objRecordSet = objCommand.Execute
        objRecordSet.MoveFirst
        Do Until objRecordSet.EOF
         usuario=objRecordSet.Fields("Name").Value
         set odom=getobject("LDAP://" & nombre & ",dc=hwongu,dc=net")
         odom.Delete "User", "cn=" & usuario
         objRecordSet.MoveNext
        Loop
    case "5"
        nombre=inputbox("Ingrese nombre de la unidad organizacional")    
        usuario=inputbox("Ingrese nombre de usuario a eliminiar")        
        Set odom=getobject("LDAP://" & nombre & ",dc=hwongu,dc=net")
        odom.Delete "User", "cn=" & usuario
 End Select
Loop While opcion<>6