Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: E N T E R en Noviembre 10, 2013, 09:48:42 pm

Título: Volver a ejecutar una función si devuelve algo.
Publicado por: E N T E R en Noviembre 10, 2013, 09:48:42 pm
Tengo 2 funciones que quiero volver a ejecutar

1. GenerarCodigo = esto lo que hace es generar 15 letras aleatorias.
2. BuscarRegistro = esto lo que hace es buscar en la tabla si ya existe ese codigo que se genero.

Esta es la función BUSCAR_REGISTRO.

Código: (VB) [Seleccionar]
Public Function BUSCAR_REGISTRO(ByVal strQuery As String, ByVal xCampo As String) As String
                       
    StrSQL = strQuery
    rsADO.Open StrSQL, cnADO, adOpenStatic, adLockOptimistic, adCmdText
   
    Do Until rsADO.EOF
        With rsADO
            BUSCAR_REGISTRO = .Fields(xCampo)
            rsADO.MoveNext
        End With
    Loop
   
End Function


y Acá es lo que quiero volver a ejecutar si BUSCAR_REGISTRO encuentra en la tabla lo que genero GenerarCodigo.

Código: (VB) [Seleccionar]
Private Sub cmdNuevo_Click()
   
    Dim xRegistro As String
    xRegistro = ""
   
    lblFoto.Caption = GenerarCodigo ' GENERA 15 LETRAS ALEATORIAS
   
    xRegistro = BUSCAR_REGISTRO("SELECT * FROM articulos WHERE foto LIKE '%" & lblFoto.Caption & "%'", "foto")
   
    If xRegistro = "" Then
        'Adelante
    Else
        'Volver a generar un nuevo codigo aleatorio y si el que se genero se vuelve a encontrar que vuelva a generar hasta que no se encuentre.
    End If
       
End Sub
Título: Re:Volver a ejecutar una función si devuelve algo.
Publicado por: Albertomi en Noviembre 11, 2013, 12:04:10 pm
Estimado E N T E R




Prueba de está forma




Private Sub cmdNuevo_Click()
    Dim xRegistro As String
   
    xRegistro = "NULL"
    Do While xRegistro <> vbNullString
        lblFoto.Caption = GenerarCodigo ' GENERA 15 LETRAS ALEATORIAS
        xRegistro = BUSCAR_REGISTRO("SELECT * FROM articulos WHERE foto LIKE '%" & lblFoto.Caption & "%'", "foto")
    Loop
End Sub




Saludos, desde algún lugar de Lima - Perú
Título: Re:Volver a ejecutar una función si devuelve algo.
Publicado por: erbuson en Noviembre 11, 2013, 12:11:39 pm
¿ Es hoy día de inocentes o entiendo mal la pregunta o doy mal la respuesta ?

Código: (VB) [Seleccionar]
Do
  lblFoto.Caption = GenerarCodigo ' GENERA 15 LETRAS ALEATORIAS
  xRegistro = BUSCAR_REGISTRO("SELECT * FROM articulos WHERE foto LIKE '%" & lblFoto.Caption & "%'", "foto")
Loop While xRegistro <> ""   
Título: Re:Volver a ejecutar una función si devuelve algo.
Publicado por: E N T E R en Noviembre 11, 2013, 04:37:39 pm
Perfecto gracias a los 2 por el codigo.

Saludos...