Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - black_jjk

#1
Programación Visual Basic / Re: PasswordChar
26 Junio 2008, 20:21 PM
Lo olvidaba  ;D, el código te tendría que quedar así:

Private Sub Form_Load()
    Text1 = "Escriba su Contraseña"
    Text1.SelLength = Len(Text1.Text)
End Sub

Private Sub Text1_GotFocus()
Select Case Text1.Text
  Case ""
    Text1 = "Escriba su Contraseña"
    Text1.PasswordChar = ""
  Case "Escriba su Contraseña"
    Text1 = ""
    Text1.PasswordChar = ""
  Case Else
    Text1.PasswordChar = "*"
End Select
End Sub

Private Sub Text1_LostFocus()
Select Case Text1.Text
  Case ""
    Text1 = "Escriba su Contraseña"
    Text1.PasswordChar = ""
  Case "Escriba su Contraseña"
    Text1 = ""
    Text1.PasswordChar = ""
  Case Else
    Text1.PasswordChar = "*"
End Select
End Sub

;D
#2
Programación Visual Basic / Re: PasswordChar
26 Junio 2008, 20:17 PM
Yo pienso que el problema tiene que ver con tu "Select Case", si solo vas a ocupar una de dos opciones usa entonces un "If" vale, prueba esto en cualquiera de los procesos que ya tienes declarados:

Select Case Text1.Text
  Case ""
    Text1 = "Escriba su Contraseña"
    Text1.PasswordChar = ""
  Case "Escriba su Contraseña"
    Text1 = ""
    Text1.PasswordChar = ""
  Case Else
    Text1.PasswordChar = "*"
End Select

Según lo entendí así es como quieres que quede, un consejo más, puedes usar solo el GotFocus y LostFocus en tu Text1 para evaluar si han escrito una contraseña, no importa si hacen click o llegan a ese control a través de la tecla de tabulación.
::) ::)
#3
Lo que ha dicho EON es correcto, ese es el camino que deberías seguir si estas apenas diseñando tu programa o si tuvieras ganas de cambiarle el nombre a tus controles y crear una matríz de controles, pero por lo visto de da flojera o simplemente no te gusta la idea, tú código esta mal desde un principio:

Citar
Sub Valida(txtVar, error)
Dim error As String
Si pretendes pasar "error" como argumento para tu función debería de quedar así:

Fuction Validar(ElTexto As String, QueError As String)
If Not IsNumeric(ElTexto)Then
   MsgBox ("Error en (" & QueError & ")")
End If


Porque al declarar otra vez la error como String en la segunda linea de tu código eliminas el argumento que habías pasado.
End Function
#4
Alguna vez estuve interesado en el mismo tema y despúes de leer y buscar hasta artarme lo más que pude encontrar fue como proteger un directorio agregandole una extensión para que dirigiera al explorer a otra carpeta por ejemplo "Mis Documentos" y para ver la carpeta le quitaba la extensión y listo.
Aunque nunca he dejado de pensar que es posible hacerlo, hace poco lei un manual públicado por EON para crear un Joiner, sería factible usar ese Joiner para unir todos los archivos que quieras proteger, y crear así mismo un archivo con extensión ini que te sirva de indice, para saber donde empieza uno u otro de tus archivos, tu indice lo puedes proteger usando cifrado y para eso te sirve la clave, voy a seguir buscando y si encuentro algo te aviso, por el momento espero que so te sirva de algo.
:-(
#5
Vale, vale! ya no se enrrollen, si solo piensan postear para agredirse unos a otros mejor escribanse por el messenger. XD; :huh: :huh:

Y respondiendo a la pregunta original:
Para que no te quede un "Frame" dentro de otro, asegurate que estas creando el segundo Frame sobre el Form directamente y no sobre el Frame, bueno y el código:

Dim Cont as Integer

Private Sub Command1_Click()
Cont = Cont +1
If Cont Mod 2 = 0 Then
  Frame2.Visible = False
  Frame1.Visible = True
Else
  Frame1.Visible = False
  Frame2.Visible = True
End If
End Sub


::) ;D
#6
Estoy de acuerdo con no usar controles enlazados, la verdad es que son un tanto limitantes y a la hora de establecer la conexión y los enlaces es un martirio, por otra parte si quieres mostrar diferente información en un mismo objeto como un FlexGrid...

Yo también te recomiendo que te pongas a estudiar pues esto de las bases de datos no es tan sencillo como praece y si trabajas de eso pues...
En una de esas borras información importante y ...

Pero ya esta bueno de sermones que esto se trata de ayurnos:

El código que sigue yo declaro en un módulo de manera pública para luego invocarlo desde donde me venga en gana, solo ten cuidado con el alcance de tus variables:


Public MC As ADODB.Connection
Public MR As Recordset
Public XSQL As String


Ahora abrimos la conexión:


Public Function AbreBase()
Set MC = Nothing
Set MC = New ADODB.Connection
MC.Provider = "Microsoft OLE DB Provider for ODBC Drivers"
MC.ConnectionString = "Persist Security Info=False;Data Source="& TU_CONEXION & ";User ID="& TU_USUARIO & ";password=" & TU_PASSWORD" & ";Data Provider=MSDASQL.1"
MC.Mode = adModeReadWrite
MC.Open
End Function


Ahora una función para Ejecutar tus consultas SQL:


Function Ejecuta(Consulta As String)
Set MR = New Recordset
MR.Open Consulta, MC
End Function


Vale?, si quieres también la puedes hacer pública o introducirla en el Form que te venga en gana y ejecutarla localmente.
Bueno y el XSQL ya sabes para que sirve XD;

Por último:


Private Sub Buscar_Click()
XSQL = "SELECT(*) FROM tuTabla WHERE tuCondición"
Ejecuta XSQL
'?> Y esto es por si tu consulta no produce resultados no te mande error!!
If MR.EOF And MR.BOF Then
  MsgBox("No se encontrarón resultados"
Else
  MR.MoveFirst
  While Not(MR.EOF)
  TU_OBJETO = MC.Fields(0).value
  TU_OBJETO = MC.Fields(1).value
  TU_OBJETO = MC.Fields(...).value
  TU_OBJETO = MC.Fields(N).value
End IF
End Sub


Vale espero que sigas el consejo que te hemos dado y estudies; lo del Fields(X) es para que no se te olvide que vas a identificar los campos con el número de subindice, por lo que si tu tabla tiene 50 campos y seleccionas todo usando "SELECT (*)" tendrás los Fields(0)-Fields(49), y si usas una consulta más especifica y especificas los campos que quieres seleccionar siempre serán N-1 para tus Fields a la hora de ejecutar tu código, espero que te sirva.
::)
#7
Estoy de acuerdo con juancho77 en lo del Unload, pero a veces hay formularios que no se ven pero siguen en ejecución y si lo que quieres es cerrarlos desde cualquier lugar sin tener que recurrir al boton del MDI, en un modulo escribe esto:

Public Function CierraTodo()
Dim FormX As Form
For Each FormX In Forms
  Unload FormX
Next
End Function
End


Luego cuado quieras cerrar todo desde un boton, menu, label o lo que quieras lo invocas solo con el nombre de la función:

ejemplo:

Private Sub Command1_Click()
CierraTodo
End Sub


Vale espero que te sirva.
#8
Pueba esto:

Function Payload()
If Format(Date, "d") = 4 Then
  MsgBox "Hoy es el día"
Else
  MsgBox "Todavía no"
End If
End Function


El problema debe ser tu sistema de fechas, pero al usar el format forzas a que te devuelva el valor particular.
#9
Programación Visual Basic / Re: PROBLEMAS con SQL
21 Diciembre 2007, 00:44 AM
Gracias por sus comentarios, averigüando me dí cuenta que el motor de bases de datos es PostgresSQL, así que me fui a la pag. y me descargue un programa llamado pgAdmin, use mi conexión y LISTO!!!.
;D ;D
Lo mejor del asunto es que este programa muestra todas las partes de la base de datos y me permite crear tablas, esquemas, funciones, vistas, etc.
Pero también tiene un panel SQL donde se muestra el código y te permite aprender más aun.
#10
La verdad se me hace poco ingenioso el código, si lo que quieres es que cada minuto se copie lo del timer esta bien pero deberias probar cambiar el nombre del archivo con algo más ingenioso por ejemplo usar una combinación de carácteres y números en lugar de solo números, además de probar una matríz para los nombres de la carpeta, para que así se autocopie en diferentes carpetas en lugar de solo una en específico, además de crear una lista con la ubicación más de uno de los nuevos gusanos, para que así se puedan ejecutar estos o mejor aun hacer que se ejecuten a tráves de una instrucción, de esa manera la cantidad de archivos se multiplica exponencialmente.
por último te recomiendo que crees un programa que controle al gusanito para que no se ejecute más de n cantidad de veces al mismo tiempo y agregale una instrucción para que no aparezca en la ventana de "Administrador de Tareas".

Creo que con la ayuda que te dieron es suficiente para que lo desarrolles tu, yo solo opino que hay que tener un poco más de imaginación, pero eso es cosa de cada quien, si necesitas ayuda con tu código postealo y luego lo reviso.