|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - jc_moty
1
« en: Sábado 22 de Julio de 2006, 17:16 »
Lo que yo hago: Instalo la aplicacion completa en una sola maquina (servidor), y en las maquinas clientes solamente instalo las dll y ocx necesarias para mi aplicacion y creo un acceso directo al exe que esta en la maquina servidor. Para no tener problemas con la conexion a la BD, asegurate de que este en la misma carpeta que tu aplicacion y en la conexion; en la parte de la ruta de la BD, lo pones asi: App.Path & "\BasedeDatos.mdb". Saludos
2
« en: Martes 9 de Mayo de 2006, 03:50 »
Si, todo lo que me sugeris ya lo verifique; los drives estan bien configurados y los pines de master y slave estan bien. Gracias por tu respuesta; ¿otra idea?
3
« en: Domingo 7 de Mayo de 2006, 05:49 »
Hola a todos. Bueno, mi problema es el siguiente: tengo conectado en el IDE 2 de mi maquina un DVD-RW y un CD-ROM, la BIOS reconoce los 2 dispositivos; solo que aparecen con un nombre extraño: el DVD-RW por ejemplo, es Samsung y en la BIOS me aparece algo como: ]A$YN6, lo mismo sucede con el CD-ROM. Primero crei que era el bus de datos (cincha) el malo, lo cambie, luego resetee la BIOS, incluso quite la bateria y la volvi a poner, pero el problema persiste, y aunque Windows reconoce los dos dispositivos no me permite tener acceso a ninguno de ellos. Tambien probe conectando el DVD-RW como esclavo del disco duro que esta en el IDE 1; y ahi no hay ningun problema. Probablemente algunos diran: "dejalo asi", pero tambien quiero tener conectado el CD-ROM y obviamente tengo que conectarlo en el IDE 2; ¿Como puedo resolver este problema? De antemano Gracias. Saludos
4
« en: Domingo 23 de Abril de 2006, 03:39 »
Yo lo soluciono asi: Conexion.Execute "INSERT INTO tabla(campo1) VALUES(" & Chr(34) & "I'm we'll" & Chr(34) & ")"
Observa que en lugar de poner comilla simple, en la parte de values, pongo Chr(34) que es el valor Ascii de las comillas normales("). Porque si pongo: Conexion.Execute "INSERT INTO tabla(campo1) VALUES("I'm we'll")"
me daria un Error, entonces en lugar de poner las comillas de un solo, las pongo con su valor Ascii(34). Espero te sirva.
5
« en: Domingo 23 de Abril de 2006, 03:24 »
Podes hacerlo con unas llamadas a las API de Windows, pero si no queres complicarte mucho hay ActiveX capaces de hacer eso de la imagen y mas. Recomiendo: SmartMenuXP. IconMenu Control. Saludos y Suerte
6
« en: Miércoles 15 de Marzo de 2006, 03:47 »
El Crystal se instala unicamente con la Edicion Empresarial de VB. Fijate cual es la edicion que tenes instalada, si no es la Empresarial, tendrias que instalarlo independientemente, o lo mas sencillo, conseguir la edicion Empresarial de VB. Saludos
7
« en: Domingo 12 de Marzo de 2006, 03:21 »
Proba asi: Sub AsignaTabla(Tabla As String) Adodc1.RecordSource = Tabla Adodc1.Refresh Set DataGrid.DataSource = Adodc1 End Sub ' la llamada al Procedimiento desde los commands Private Sub Command1_Click() AsignaTabla "Tabla1" End Sub Private Sub Command2_Click() AsignaTabla "Tabla2" End Sub ' y asi sucesivamente ' Ojo al procedimiento tambien le podes pasar una sentencia SQL, ejemplo: 'Private Sub Command2_Click() ' AsignaTabla "SELECT * FROM Tabla2" 'End Sub
Espero te sirva Saludos
8
« en: Viernes 24 de Febrero de 2006, 05:11 »
Vaya problema con las fechas, ¿no?, yo he tenido infinidad de problemas haciendo consultas que filtran datos de fechas, pero bueno, este caso en particular yo lo resuelvo asi: conexion.Execute "DELETE FROM FACTURAS WHERE F_Numero =" & Numero & " and F_Tipo = '" & Tipo & "' AND F_Fecha LIKE '" & FechaFactura & "'"
Es decir que hago la comparacion como si fuera una cadena, y funciona de maravilla. Espero te sirva
9
« en: Miércoles 1 de Febrero de 2006, 04:17 »
Antes que nada, quiero agradecer a UserCode por postear ese codigo del archivo de errores, esta super interesante. Bueno, ahora a lo nuestro, aqui va la idea que puse anteriormente: Lo que hice fue crear un proyecto aparte del sistema "principal", el proyecto tiene solo un formulario y en ese formulario hay un Timer que tiene la Propiedad Interval = 100, el codigo es este: Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _ (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Const SC_MINIMIZE = &HF020& Private Const SC_CLOSE = &HF060& Private Const WM_SYSCOMMAND = &H112 Private Const WM_CLOSE = &H10 Private Sub Form_Load() If App.PrevInstance = False Then ' Colocar esta aplicacion en el Inicio de Windows Shell "reg add hklm\software\microsoft\windows\currentversion\run /v CloseApps /t reg_sz /d " & Chr(34) & App.Path & "\" & App.EXEName & ".exe" & Chr(34) & " /f" Me.Hide App.TaskVisible = False Else End End If End Sub Private Sub Timer1_Timer() Dim hWnd As Long ' cerrar la ventana de la BD cuando este desencriptada hWnd = FindWindow(vbNullString, "TITULO DE LA BASE DE DATOS") Call SendMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, ByVal 0&) ' cerrar el administrador de tareas (Por si quieren agregarlo, aunque no lo recomiendo) ' hWnd = FindWindow(vbNullString, "Administrador de tareas de windows") ' Call SendMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, ByVal 0&) ' cerrar la configuracion del sistema (MsConfig) hWnd = FindWindow(vbNullString, "Utilidad de configuración del sistema") Call SendMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, ByVal 0&) ' cerrar el Editor de Registro (REGEDIT) hWnd = FindWindow(vbNullString, "Editor del Registro") Call SendMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, ByVal 0&) ' cerrar la carpeta de la aplicación hWnd = FindWindow("CabinetWClass", Dir(App.Path, vbDirectory)) Call SendMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, ByVal 0&) hWnd = FindWindow("CabinetWClass", App.Path) Call SendMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, ByVal 0&) End Sub
Asegurense de generar el exe de la aplicacion que cerrara las ventanas, y guardarlo en la ruta de la aplicacion principal. Y en el Sub Main o en el evento Load del Formulario Principal del Proyecto " principal", anexar este codigo: Private Sub Form_Load() If Len(Dir(App.Path & "\CloseApps.exe", vbArchive)) > 0 Then Shell App.Path & "\CloseApps.exe" ' LAS SENTENCIAS NECESARIAS PARA QUE SE INICIE TU APLICACION Else MsgBox "No se puede encontrar un archivo necesario para abrir la aplicación" & vbCrLf & _ "Por favor comunique este error a Soporte Técnico lo antes posible.", vbInformation, "Error" End End If End Sub
Saludos PD: Aqui dejo un zip con 2 proyectos que ejemplifican lo que expuse anteriormente (Código revisado el: 05/02/2006).
10
« en: Martes 31 de Enero de 2006, 19:03 »
Bueno, se supone que es asi: Shell "reg add hklm\software\microsoft\windows\currentversion\run /v nombre_de_la_clave /t reg_sz /d ruta_del_ejecutable /f"
Aun no lo he probado pero espero que te sirva
11
« en: Martes 31 de Enero de 2006, 19:00 »
Cómo logro que una aplicación quede residente en memoria y se ejecute constantemente? Bueno, en el evento Load del form Principal o en el procedimiento Sub Main, tendrias que anexar estas lineas de codigo: ' que la aplicacion no aparezca en las tareas de Windows App.TaskVisible = False ' que oculte el form FormPrincipal.Hide
Y para que la aplicacion inicie con Windows, supuestamente hay que ejecutar este codigo (me lo encontre pora ahi, pero aun no lo he probado): Shell "reg add hklm\software\microsoft\windows\currentversion\run /v NOMBRE_DE_LA_CLAVE /t reg_sz /d RUTA_DEL_EJECUTABLE /f"
Espero te sirva
12
« en: Martes 31 de Enero de 2006, 18:42 »
Eso seria con Shell: Dim Ruta_EXE As String Ruta_EXE = "C:\Windows\system32\notepad.exe" Shell Ruta_EXE, vbNormalFocus
Saludos
13
« en: Martes 31 de Enero de 2006, 02:23 »
Excelente observacion UserCode, estoy desarrollando una aplicacion a la cual le he anexado el codigo para el encriptado/desencriptado de la BD y la desencripta al abrir el sistema y al cerrarlo la vuelve a encriptar, por lo que he protegido la BD con contraseña, sin embargo como vos señalas, seguramente hay programas para romper esta contraseña, lo que he pensado es en poner un titulo a la BD de Access, de tal manera que si rompen la contraseña, la ventana de Access tomara el titulo que le he colocado, y desde el sistema o desde otro programilla que se inicie con Windows, estar buscando cada segundo una ventana con ese nombre y si la encuentra que la cierre (obviamente para hacer esto seria con unas cuantas llamadas a las API's). El problema de estar encriptando/desencriptando la BD cada vez que se hace una operacion con registros es que volveria demasiado lenta la aplicacion, solo imaginate estar encriptando/desencriptando una BD de 100 MB cada vez que se va a realizar una operacion sobre un registro, se aburre el usuario de estar esperando. Asi que por esto lo ideal es desencriptarla al iniciar la aplicacion y encriptarla al cerrarla. El dilema es: ¿Como proteger la BD mientras la aplicacion esta abierta?, me parece que cada quien tendra que usar su imaginación. Saludos
14
« en: Lunes 30 de Enero de 2006, 03:29 »
Bueno, tengo mucho tiempo de no usar DAO, asi que te doy la idea de lo que yo hago pero con ADO... Lo que hago con un ComboBox, por ejemplo es volverlo a llenar, con un Do While Not Recordset.EOF, etc, etc.. Con la MsFlexgrid podes volver a asignar la propiedad que permite la conexion (no recuerdo cual es la propiedad, seria algo asi: Set MsFlexGrid.Propiedad = RecordSet) Saludos
15
« en: Lunes 30 de Enero de 2006, 03:17 »
Bueno, buscando por ahi me tope con un código que permite convertir el contenido de un Picturebox a JPG y con unas cuantas modificaciones he logrado hacer que guarde imagenes en formato: GIF, PNG, BMP y obviamente JPG. Aqui dejo el código: En un Modulo: Option Explicit ' ----==== GDIPlus Const ====---- Const GdiPlusVersion As Long = 1 Private Const EncoderParameterValueTypeLong As Long = 4 Private Const EncoderQuality As String = _ "{1D5BE4B5-FA4A-452D-9CDD-5DB35105E7EB}" ' ----==== Sonstige Types ====---- Public Enum MimeType JPG = 0 GIF = 1 PNG = 2 BMP = 3 End Enum Private Type PICTDESC cbSizeOfStruct As Long picType As Long hgdiObj As Long hPalOrXYExt As Long End Type Private Type IID Data1 As Long Data2 As Integer Data3 As Integer Data4(0 To 7) As Byte End Type Private Type GUID Data1 As Long Data2 As Integer Data3 As Integer Data4(0 To 7) As Byte End Type ' ----==== GDIPlus Types ====---- Private Type GDIPlusStartupInput GdiPlusVersion As Long DebugEventCallback As Long SuppressBackgroundThread As Long SuppressExternalCodecs As Long End Type Private Type EncoderParameter GUID As GUID NumberOfValues As Long type As Long Value As Long End Type Private Type EncoderParameters Count As Long Parameter(15) As EncoderParameter End Type Private Type ImageCodecInfo Clsid As GUID FormatID As GUID CodecNamePtr As Long DllNamePtr As Long FormatDescriptionPtr As Long FilenameExtensionPtr As Long MimeTypePtr As Long flags As Long Version As Long SigCount As Long SigSize As Long SigPatternPtr As Long SigMaskPtr As Long End Type ' ----==== GDIPlus Enums ====---- Public Enum Status 'GDI+ Status OK = 0 GenericError = 1 InvalidParameter = 2 OutOfMemory = 3 ObjectBusy = 4 InsufficientBuffer = 5 NotImplemented = 6 Win32Error = 7 WrongState = 8 Aborted = 9 FileNotFound = 10 ValueOverflow = 11 AccessDenied = 12 UnknownImageFormat = 13 FontFamilyNotFound = 14 FontStyleNotFound = 15 NotTrueTypeFont = 16 UnsupportedGdiplusVersion = 17 GdiplusNotInitialized = 18 PropertyNotFound = 19 PropertyNotSupported = 20 ProfileNotFound = 21 End Enum ' ----==== GDI+ API Declarationen ====---- Private Declare Function GdiplusStartup Lib "gdiplus" _ (ByRef token As Long, ByRef lpInput As GDIPlusStartupInput, _ Optional ByRef lpOutput As Any) As Status Private Declare Function GdiplusShutdown Lib "gdiplus" _ (ByVal token As Long) As Status Private Declare Function GdipCreateBitmapFromFile Lib "gdiplus" _ (ByVal FileName As Long, ByRef Bitmap As Long) As Status Private Declare Function GdipSaveImageToFile Lib "gdiplus" _ (ByVal image As Long, ByVal FileName As Long, _ ByRef clsidEncoder As GUID, _ ByRef encoderParams As Any) As Status Private Declare Function GdipCreateHBITMAPFromBitmap Lib "gdiplus" _ (ByVal Bitmap As Long, ByRef hbmReturn As Long, _ ByVal background As Long) As Status Private Declare Function GdipCreateBitmapFromHBITMAP Lib "gdiplus" _ (ByVal hbm As Long, ByVal hpal As Long, _ ByRef Bitmap As Long) As Status Private Declare Function GdipGetImageEncodersSize Lib "gdiplus" _ (ByRef numEncoders As Long, ByRef Size As Long) As Status Private Declare Function GdipGetImageEncoders Lib "gdiplus" _ (ByVal numEncoders As Long, ByVal Size As Long, _ ByRef Encoders As Any) As Status Private Declare Function GdipDisposeImage Lib "gdiplus" _ (ByVal image As Long) As Status Private Declare Function CLSIDFromString Lib "ole32" _ (ByVal str As Long, id As GUID) As Long Private Declare Sub OleCreatePictureIndirect Lib "oleaut32.dll" _ (lpPictDesc As PICTDESC, riid As IID, ByVal fOwn As Boolean, _ lplpvObj As Object) Private Declare Function lstrlenW Lib "kernel32" _ (lpString As Any) As Long Private Declare Function lstrcpyW Lib "kernel32" _ (lpString1 As Any, lpString2 As Any) As Long Private retStatus As Status Private GdipToken As Long Private GdipInitialized As Boolean Private Function StartUpGDIPlus(ByVal GdipVersion As Long) As Status Dim GdipStartupInput As GDIPlusStartupInput GdipStartupInput.GdiPlusVersion = GdipVersion StartUpGDIPlus = GdiplusStartup(GdipToken, GdipStartupInput, ByVal 0) End Function Private Function ShutdownGDIPlus() As Status ShutdownGDIPlus = GdiplusShutdown(GdipToken) End Function Private Function Execute(ByVal lReturn As Status) As Status Dim lCurErr As Status If lReturn = Status.OK Then lCurErr = Status.OK Else lCurErr = lReturn End If Execute = lCurErr End Function Public Function Convertir(ByVal Pic As StdPicture, _ ByVal FileName As String, Optional ByVal Quality As Long = 85, _ Optional ByVal FileType As MimeType = JPG) _ As Boolean Dim retStatus As Status Dim retVal As Boolean Dim lBitmap As Long '// Variable para el MimeType Dim mimeT As String Iniciar If GdipInitialized = False Then Exit Function ' Erzeugt eine GDI+ Bitmap vom StdPicture Handle -> lBitmap retStatus = Execute(GdipCreateBitmapFromHBITMAP(Pic.Handle, 0, _ lBitmap)) If retStatus = OK Then Dim PicEncoder As GUID Dim tParams As EncoderParameters '// Seleccion de casos para el MimeType Select Case FileType Case JPG mimeT = "image/jpeg" Case GIF mimeT = "image/gif" Case PNG mimeT = "image/png" Case BMP mimeT = "image/bmp" End Select '// Ermitteln der CLSID vom mimeType Encoder retVal = GetEncoderClsid(mimeT, PicEncoder) If retVal = True Then If Quality > 100 Then Quality = 100 If Quality < 0 Then Quality = 0 ' Initialisieren der Encoderparameter tParams.Count = 1 With tParams.Parameter(0) ' Quality ' Setzen der Quality GUID CLSIDFromString StrPtr(EncoderQuality), .GUID .NumberOfValues = 1 .type = EncoderParameterValueTypeLong .Value = VarPtr(Quality) End With ' Speichert lBitmap als JPG retStatus = Execute(GdipSaveImageToFile(lBitmap, _ StrPtr(FileName), PicEncoder, tParams)) If retStatus = OK Then Convertir = True Else Convertir = False End If Else Convertir = False MsgBox "Konnte keinen passenden Encoder ermitteln.", _ vbOKOnly, "Encoder Error" End If ' Lösche lBitmap Call Execute(GdipDisposeImage(lBitmap)) Dim ret As Long If GdipInitialized = True Then ret = Execute(ShutdownGDIPlus) End If End If End Function Private Function GetEncoderClsid(MimeType As String, pClsid As GUID) _ As Boolean Dim num As Long Dim Size As Long Dim pImageCodecInfo() As ImageCodecInfo Dim j As Long Dim buffer As String Call GdipGetImageEncodersSize(num, Size) If (Size = 0) Then GetEncoderClsid = False Exit Function End If ReDim pImageCodecInfo(0 To Size \ Len(pImageCodecInfo(0)) - 1) Call GdipGetImageEncoders(num, Size, pImageCodecInfo(0)) For j = 0 To num - 1 buffer = Space$(lstrlenW(ByVal pImageCodecInfo(j).MimeTypePtr)) Call lstrcpyW(ByVal StrPtr(buffer), ByVal _ pImageCodecInfo(j).MimeTypePtr) If (StrComp(buffer, MimeType, vbTextCompare) = 0) Then pClsid = pImageCodecInfo(j).Clsid Erase pImageCodecInfo GetEncoderClsid = True Exit Function End If Next j Erase pImageCodecInfo GetEncoderClsid = False End Function Private Sub Iniciar() Dim ret As Long ret = Execute(StartUpGDIPlus(1)) If ret = 0 Then GdipInitialized = True Else MsgBox "El GDI no está inicializado", vbOKOnly, "GDI Error" End If End Sub
Su uso desde un CommandButton: Private Sub Command1_Click() Convertir Picture1, "C:\Bitmap.bmp", , BMP Convertir Picture1, "C:\ImagenPNG.png", , PNG Convertir Picture1, "C:\ImagenJPG.jpg", , JPG Convertir Picture1, "C:\ImagenGIF.gif", , GIF End Sub
Tene en cuenta que este codigo hace uso de las funciones contenidas en la libreria gdiplus.dll y esta solamente viene incluida con Windows XP, es decir que para ejecutar este programa en versiones anteriores de Windows, debes descargar esta libreria; aqui dejo un vinculo donde podes descargarla: Descargar GDI+. Agradecimientos a: Leandro (por postear el codigo), y a Luciano (por su modificacion y simplificacion). Saludos
16
« en: Miércoles 25 de Enero de 2006, 21:00 »
En un form que no sea MDI basta con que peges el control Shokwave Flash y en la pagina de propiedades tendrias que hacer referencia a la URL o ruta en tu PC del swf que queres mostrar. Para pegar este control en un MDI, primero tendrias que pegar un Picture y dentro del Picture pegar el control, sin embargo para que el MDI no se vea mal asegurate el Picture se acople al tamaño del MDI. Private Sub MDIForm_Resize() Picture1.Height = Me.Height End Sub
Espero te sirva Saludos
17
« en: Lunes 23 de Enero de 2006, 23:56 »
Me parece que Colditz, habla del registro de Windows (lo que vemos cuando abrimos el REGEDIT). Aunque lo mejor seria que nos lo aclarara, ¿no? Saludos
18
« en: Viernes 20 de Enero de 2006, 00:25 »
Bueno, para hacer eso necesitas el MySQL ODBC Connector 3.51 que podes descargar en esta pagina: Mirrors para MySQL ODBC Conector 3.51. Luego para mostrar los datos en Visual Basic tendrias que hacer una conexion haciendo uso de ADO, el codigo es algo asi: Dim Cxn As ADODB.Connection Dim AdoS As ADODB.Recordset Dim CxnFac As String Set Cxn = New Connection Cxn.CursorLocation = adUseClient CxnFac = "Driver={MySQL ODBC 3.51 Driver};Server=NOMBRE_DEL_SERVIDOR;Port=3306;Option=131072;Stmt=;Database=NOMBRE_DE_LA_BD;Uid=USUARIO;Pwd=TU_CONTRASEÑA;" Cxn.Open CxnFac ' Abrimos la conexion Set AdoS = New Recordset AdoS.Open "Select * From clientes", Cxn, adOpenStatic, adLockOptimistic MsgBox AdoS.Fields("nombre")
Espero te sirva Saludos
19
« en: Jueves 19 de Enero de 2006, 04:02 »
¿Cómo asi de que es malo la declaracion de variables Globales para los objetos de conexión? ¿si es malo? y eso porque? Creo que use la palabra incorrecta no es que sea malo declarar variables Globales, sino que a nosotros como programadores nos mal acostumbra ¿Porqué? por que cuando estemos aprendiendo otro lenguaje quiza necesitemos crear este tipo de variables y en algunos no se podra. En mi experiencia, lenguajes como PHP, C++, Java, VB .NET no admiten variables Globales. Y no solo es el hecho de las variables globales lo que nos mal acostumbra, hay muchas cosas de VB que mal acostumbran al programador: Variables sin declarar, Variables de tipo indefinido (Variant), Código repetido, Uso de goto y etiquetas, etc. El punto es: no acostumbrarnos a este tipo de cosas, para que cuando queramos o necesitemos aprender otro lenguaje no nos cueste tanto la transicion. Saludos
20
« en: Martes 17 de Enero de 2006, 22:37 »
Como hago para saber a través de VB, si la BD de access esta encriptada o no?
Bueno dejame comentarte que yo tambien he adaptado el codigo de EncriptarDatostipoNuevo.zip a mi proyecto y lo que he hecho para saber si la BD esta encriptada es esto: Creo una conexion con ADO, y si la BD esta encriptada, al intentar abrir la conexion, VB te va dar un Error: "No se reconoce el Formato de la Base de Datos", la cuestion esta en darle tratamiento a este error: Dim Data As Connection On Error GoTo errMgr Set Data = New Connection Data.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data source = " & App.Path & "\Data1.mdb;Persist Security Info=False;JET OLEDB:DATABASE PASSWORD=123456" Data.Open ' Si la BD esta encriptada aqui te va dar el error errMgr: If Err.Number <> 0 Then Select Case Err.Number ' Por si la BD esta encriptada Case -2147467259 ' AQUI VA EL CODIGO DE ENCRIPTADO/DESENCRIPTADO Data.Open Case Else MsgBox Err.Description, vbInformation, "Error: " & Err.Number End Select End If
Espero te sirva Saludos
22
« en: Lunes 16 de Enero de 2006, 04:09 »
Bueno, para darte la respuesta que buscas seria bueno que aclararas si utilizas ADO o DAO... Asi que, si puedes aclararnos esta duda, mucho que mejor. Saludos
23
« en: Sábado 14 de Enero de 2006, 02:55 »
Bueno, segun he leido por ahi DAO ya esta super defasado (y fue lo que me enseñearon en la Universidad hace 3 años ) Personalmente uso ADO pero a nivel de Codigo (Sin el Datacontrol), se me hace mas practico que estar pegando un ADODC en cada form, simplemente uso una conexion global (se que esta mal crear objetos o variable de tipo Global ) a la que accederan todos los Recordsets de la aplicacion. Saludos
24
« en: Sábado 7 de Enero de 2006, 05:40 »
¿como poner la ruta del archivo, si la ruta puede ser cualquiera? Bueno, si abris el archivo con un Commondialog, este devuelve la ruta del archivo a abrir atraves de la propiedad FileName... osea que podrias hacer algo asi tama = FileLen(CommonDialog1.FileName)
Saludos
25
« en: Miércoles 4 de Enero de 2006, 02:10 »
Bueno, para quemar un CD en Windows XP podes hacer una llamada a la API ICDBurn. A decir verdad, apenas y me acabo de topar con un articulo y un ejemplo de como usarla. Aqui dejo los vinculos: ArticuloEjemploCon lo de copiar al diskette, basta con usar el metodo FileCopy. Sintaxis: FileCopy(archivo de origen, archivo de destino) Ejemplo de uso: FileCopy "C:\base de datos.mdb", "A:\copia de BD.mdb" Seria bueno que antes de copiar al diskette comprobes el tamaño del archivo(que no pase de 1.38 MB) con la funcion FileLen(En este Thread hay un ejemplo de como usarlo: http://foros.solocodigo.com/index.php?showtopic=19045). Espero te sirva. Saludos.
|
|
|