PREGUNTAS CONTESTADAS - Visual Basic

 Hay un total de 3030 Preguntas.<<  >> 

    Pregunta:  57243 - CAMBIOS EN EL MODELO DE OBJETOS OFFICE 2007 VS XP (2002) EXC
Autor:  Aduy Yoani García Duarte
Al desarrollar una macro de Excel en VBA en la versión Office XP (2002) tenía dentro de las aplicaciones la insturcción FILESEARCH, la cual me permitía funcionalidad en la ejecución de la macro, dado que al momento de buscar un archivo para luego habrirlo la macro primero hacia la consulta con la aplicación FILESEARCH si se evidencia su existencia procedía ha abrirlo si no lo encontraba pasba por alto este archivo dejando la constancia de que el archivo no se encuentra, procediendo luego con la busqueda de los demás archivos. pero actualmente estoy en el proceso de migración a la aplicación de Office 2007 y encuentro que la aplicación FILESEARCH hacido ocultada, por lo que ya no se permite su ejecución quitándole funcionalidad a la ejecución de la macro, agradezco me orienten sobre el tema para saber si esque esta aplicación tiene reemplazo o si su estrucutar cambio para poder adecuar la macro y con ello mantener su funcionalidad.
Ejemplo de la instrucción actual que me presenta inconvenientes en el Office 2007:

Set fs = Application.FileSearch
With fs
.LookIn = "C:INVENTARIOSARCHIVOS MESMventamFeb-08 ""
.Filename = "mventam.101""
If .Execute(SortBy:=msoSortByFileName) > 0 Then

Agradezco la ayuda que me puedan brindar. Muchas Gracias

Aduy García
  Respuesta:  Jaime A. Carrasquilla Cadavid
Mira a ver si esto te puede servir.

Sólo existe una colección FileTypes para todas las búsquedas; por tanto, es importante borrar la colección FileTypes antes de realizar una búsqueda, a menos que desee buscar los tipos de archivos de búsquedas anteriores. La forma más sencilla de borrar la colección es establecer la propiedad FileType en el primer tipo de archivo que desee buscar. También puede quitar tipos individuales mediante el método Remove. Para determinar el tipo de archivo de cada elemento de la colección, utilice el método Item con el fin de devolver el valor msoFileType.

Nota
La propiedad FileType del objeto FileSearch borra la colección FileTypes y establece el primer elemento de la colección en el tipo de archivo que defina la propiedad FileType.

Ejemplo:

Utilice la propiedad FileTypes con el objeto FileSearch para devolver una colección FileTypes; por ejemplo:

En Visual Basic para aplicaciones

Set ft = Application.FileSearch.FileTypes

El ejemplo siguiente busca en todos los archivos HTML y de Microsoft Excel de la unidad C:.

Sub SearchForFiles()

'Declare a variable to act as a generic counter
Dim lngCount As Long

'Use a With...End With block to reference the
'FileSearch object
With Application.FileSearch

'Clear all the parameters of the previous searches.
'This method doesn't clear the LookIn property or
'the SearchFolders collection.
.NewSearch

'Setting the FileType property clears the
'FileTypes collection and sets the first
'item in the collection to the file type
'defined by the FileType property.

.FileType = msoFileTypeWebPages

'Add a second item to the FileTypes collection
.FileTypes.Add msoFileTypeExcelWorkbooks

'Display the number of FileTypes in the collection.
MsgBox "You are about to search for " & .FileTypes.Count & _
" file types."

'Set up the search to look in all subfolders on the C: drive.
.LookIn = "C:"
.SearchSubFolders = True

'Execute the search and test to see if any files
'were found.
If .Execute > 0 Then

'Display the number of files found.
MsgBox "Files found: " & .FoundFiles.Count

'Loop through the list of found files and
'display the path of each one in a message box.
For lngCount = 1 To .FoundFiles.Count
If MsgBox(.FoundFiles.Item(lngCount), vbOKCancel, _
"Found files") = vbCancel Then

'Break out of the loop
lngCount = .FoundFiles.Count

End If
Next lngCount
Else
MsgBox "No files found."
End If
End With
End Sub

El ejemplo siguiente recorre la colección FileTypes y quita los tipos de archivo que no sean de Microsoft Word o Microsoft Excel (en general, es más sencillo borrar la colección FileTypes y empezar desde el principio).

En Visual Basic para aplicaciones

Sub RemoveFileTypeFromCollection()

'Define an integer to use as a counter
'when iterating through the FileTypes collection.
Dim intFileIndex As Integer

'Use a With...End With block to reference the FileSearch object.
With Application.FileSearch

'Loop through all of the items in the FileTypes collection.
intFileIndex = 1
Do While intFileIndex = .FileTypes.Count
Select Case .FileTypes.Item(intFileIndex)
Case msoFileTypeWordDocuments, msoFileTypeExcelWorkbooks
Case Else

'If the file type isn't a Microsoft Word or
'Microsoft Excel file, remove it.
.FileTypes.Remove intFileIndex

'Decrement the counter so that no file types are missed.
intFileIndex = intFileIndex - 1
End Select

'Increment the counter to test the next file type.
intFileIndex = intFileIndex + 1
Loop

End With
End Sub

    Pregunta:  57250 - AGILIZAR UN REPORTE DE CRYSTAL REPORT 10
Autor:  jacqueline saavedra
Quisiera saber si es que existe alguna intruccion para ejecutar mas rapido un reporte hecho en crystal report 10 con una base de datos en sql server desde visual

mi problema es que diariamente la tabla donde hice mi reporte se le estan agregando gran cantidad de registros y al pasarle mis parametros se demora mucho en mostrar el informe que llega hasta aburrir, todo incluso pense que si hacia mi reporte con un procedimiento almacenado se demoraria menos pero es lo mismo

el codigo es el siguiente:

Dim appReporte As New CRAXDRT.Application

Set rptReporte = appReporte.OpenReport("aqui pongo la ruta de mi reporte y como se llama")

rptReporte.Database.Tables(1).ConnectionProperties("Provider") = "SQLOLEDB.1"

rptReporte.Database.Tables(1).ConnectionProperties("Data Source") = "Persist Security Info=False;User ID=sa;Initial Catalog=ZonaFranca;Data Source=SERVIDOR"

'Aqui le paso mis parametros'

rptReporte.RecordSelectionFormula = "DATEVALUE({Boleta.sFecha})>=#" & Format(frm_ImprimirDocxCliente.DTFecDesde.Value, "dd/mm/yyyy") & "# and DATEVALUE({Boleta.sFecha})<=#" & Format(frm_ImprimirDocxCliente.DTFecHasta.Value, "dd/mm/yyyy") & "#" & " and {Boleta.IdCliente}=" & IdCli & " and {Boleta.IdTipoDoc}=" & TipDocum

creo que estoy bien al pasarle mis parametros ya que me muestra el informe claro que en blanco y con el cursor del reloj de arena que me dice que esta procesando lo que yo le pase en mis parametros

Es por eso que pregunto si es que hay alguna forma de agilizarlo o es que difinitamente no la hay
si es que alguien me quiere contestar se lo agradeceria
  Respuesta:  Laubrisa Orellana
Los reportes se demoran porque para mostrar tiene que ejecutarse completamente y depende de la cantidad de informacion (de hecho si la informacion es n puedes superar la memoria disponible de imagen y el informe se cae por ello), quizas si no utilizas una vista previa lo envias directamente diminuya ya que windows no necesitaria dibujar el informe que en realidad ese es el tiempo mayor.
Lo otro que podrias hacer es tener una tabla intermedia con el resultado del informe y no pasarle a crystal los parametros sino que resolverlo antes y crystal solo se encargaria de leer y dibujar y no tendria que esperar la resolucion de la consulta osea los pasos a seguir serian
1.- limpiar tabla temporal de informe
2.- llenar tabla intermedia con parametros (lo ideal que sea en un procedimiento)
3.- ejecutar informe de crystal

suerte!!!!!!!!!!

    Pregunta:  57271 - ERROR DE CLASE NO REGISTRADA
Autor:  CRISTIAN ALVARO HADJEZ CONEJEROS
Hola, ayuda por favor, tengo un programa en visual basic (solo el ejecutable), y la base de datos en access, el problema es que cuando trato de abrir los informes que alli hay, envia un recuadro con el mensaje de error.
Error '2147221164 (0x80040154) en tiempo de ejecuacion : Clase no registrada

Les recalco que no tengo los archivos fuente del programa, por lo que no podria modificar el programa.
Favor ayudenme
  Respuesta:  Master Ini
Pues desafortunadamente tienes que formatear tu maquina ya que tu antivirus borro los archivos que hacen a que se puedan ejecutar ese tipo de componentes. Saludos

    Pregunta:  57329 - NO CURRENT RECORD
Autor:  Jorge Gil
Holas! estoy creando un sistemita de carga y control de datos, cree los sgtes botones: Guardar y Nuevo.
Los escribi asi:

Para GUARDAR
Private Sub Command1_Click()
Data2.UpdateRecord
Data2.Refresh
End Sub

Para NUEVO
Private Sub Command2_Click()
Data2.Recordset.AddNew
End Sub

Mi problema es que cuando ejecuto el programa, cargo los datos y le doy en el boton GUARDAR y me tira el sgte error:

Run-Time Error `524´:
No current record.

Lo mismo me pasa cuando pongo en nuevo, en ambos casos de las opciones que me da seleccion debug y me marca la segunda linea(Data2.UpdateRecord)

En las opciones del DATA esta configurado como:

Name: Data2
Databasename: C:Documents and SettingsUSUARIOMis documentosBase de Datos Partes Diarios de Trabajod4.mdb
Recordsource: Tabla1

Todos los TextBox estan de la sgte manera:

Datasource: Data2
Datafield: (aca pongo el que corresponde)

¿¿Porque me sale ese error??
¿¿Cuales serian las posibles soluciones??
  Respuesta:  lalalal adad
yo tengo el codigo de esto es
+

a) Opción Nuevo, el cual servirá para crear un nuevo registro en la tabla, el código es el siguiente:
Private Sub nuevo_Click ()
Data1.Recordset.AddNew
End Sub
P.D. Esta opción debe presionarse antes de dar de alta un nuevo registro en la base de datos.

b) Opción Guardar, el cual servirá para guardar un nuevo registro en la tabla, el código es el siguiente:
Private Sub guardar_Click()
Data1.UpdateRecord
Data1.Refresh
MsgBox "El Registro ha sido Guardado en la Base de Datos", vbExclamation, "Aviso Importante"
End Sub

P.D. Esta opción debe presionarse una vez que se haya completado la información del registro.

c) Opción Buscar, el cual servirá para buscar un registro en la tabla, el código es el siguiente:
Private Sub buscar_Click()
Dim m As Long
m = Val(InputBox("Introduce la Matrícula que Buscas"))
Data1.Recordset.FindFirst "matricula=" & m
If Data1.Recordset.NoMatch Then
MsgBox "La Matrícula Número: " & m & " No está en la Base de Datos", vbExclamation, "Búsquedas de Matrícula"
End If
End Sub


Nota: aquí declaramos una variable (m) que representará el número del registro (matricula) que estemos buscando. Es de vital importancia de que te asegures de que en la línea subrayada la palabra “Matrícula” esté escrita exactamente como llamaste el campo “matricula” al crear la tabla.

d) Opción Eliminar, el cual servirá para eliminar un registro de la tabla, el código es el siguiente:
Private Sub Eliminar_Click()
If MsgBox("¿Quieres Eliminar la Matrícula Número: " & Text1 & "?", 16 + 4) = 6 Then
Data1.Recordset.Delete
Data1.Refresh
Text1.SetFocus
MsgBox "Se Eliminó la Matrícula", vbCritical, "Aviso Importante"
Else
MsgBox "No se Eliminó la Matrícula Número: " & Text1, vbExclamation, "Aviso Importante"
End If
End Sub

    Pregunta:  57400 - COMO ACCESAR UNA DBF Y LA MUESTRO EN VISUAL
Autor:  Beto Molina
Hola a todos: tengo un program en clipper desde hace muchos años...y nunca un problema, sin embargo me gustaria poder accesar algunos campos de un archivo .dbf para poder hacer una consulta por visual desde internet..., y no se como hacer eso..., el colegas de ustedes que me hizo este sistema no esta ubicable y lamentablemente se dedico a otro rubro.necesito sus consejos
gracias
  Respuesta:  Boluart Bedoya
Como ya debes de saber los archivos DBF son archivos de bases de datos de Fox, alguna vez me tope con algunos archivos que estaban protegidos (no se podian abrir desde cualquier editor como: Excel Block de notas , etc) , sin embargo hay otros archivos que si son legibles,
Si tu caso es el primero, necesitas tener FOX para abrir el archivo y leerlo a tarvez de codigo FOX aqui un ejemplo:

CLOSE DATABASES
USE cliente
COPY NEXT 3 TO temp TYPE DELIMITED
WAIT WINDOW 'Este es el archivo de texto delimitado' NOWAIT
MODIFY FILE temp.txt
el archivo se llama Cliente.DBF yel archivo al que vas a extraer se llama temp.txt

Pero si ese no es tu problema
puedes usar Excel (las macros de VBA) para abrir el archivo y guardarlo como txt

una vez hecho esto acceder al archivo txt es lo mas simple (desde cualquier lenguaje incluyendo Clipper)

    Pregunta:  57484 - BLOQUEO PUERTO USB
Autor:  ronaldino
holas necesito configurar desde visual Basic el bloqueo de los puertos para k no entren en las computadoras los usb... alguna sugerencia¿
  Respuesta:  JORGE O
Porque no los deshabilitas desde el bios ?

    Pregunta:  57556 - EJECUCION DE PROCEDIMIENTOS DESDE TOOLBAR
Autor:  Juan Moreno
Aunque el titulo es un poco generico, la consulta es la sigiente, estoy realizando un sistema integrado con varios modulos y cada modulo deseo que levante un toolbar, pero con sus propias opciones osea cada modulo tendra una configuración para el toolbar, para no tener tantos toolbar como modulos exista en el ERP, tengo la configuracion en una tabla (SQL) y lleno el toolbar con las opciones correspondientes, y lo hace perfecto, pero el problema es el siguiente, en la misma tabla configuro el procedimiento a ejecutar pero no se como hacer que se ejecute. ejm:
normalmente para ejecutar un procedimeinto del formulario activo se usa el screen.activeform e invoco el procedimiento por ejemplo screen.activeform.salir con esto ejecuto el procedimiento salir del formulario, pero en la forma que lo tengo me es dificil, pero me parece interesante tener un solo toolbar y configurarlo para cada modulo que uno levante, si algun tigre entendio esta consulta, favor de contestarme se lo agradecere.
Gracias
Juan Moreno A.
  Respuesta:  Ariel
por ahi te sirve esto

Private Declare Function EbExecuteLine Lib "vba6.dll" _
(ByVal pStringToExec As Long, ByVal Foo1 As Long, _
ByVal Foo2 As Long, ByVal fCheckOnly As Long) As Long

lo que hace es ejecutar un comando vb desde un texto, texto que bien podrias levantar desde un campo de la base de datos.

    Pregunta:  57601 - ERROR CREAR PAQUETE: EL VALOR DE LA PROPIEDAD NO ES VALIDO
Autor:  gabriel cury
Gente haber si alguien me puede hechar una mano, estoy intentando crear el paquete de instalacion con el wizard del visual basic 5, el tema es que apenas abro el asistente para instalar aplicaciones me da un error "el valor de la propiedad no es valido" "error inesperado" y no me deja continuar, probe desinstalar los ultimos programas cargados pero sigue igual. Alguien sabe como solucionar este inconveniente ya que no puedo instalar las aplicaciones creadas. Mil gracias
  Respuesta:  Costanza DClemente
Hola, encontré información aquí también:

http://support.microsoft.com/kb/170372/es

sobre el error del Asistente para Instalar Aplicaciones de Visual Basic

cuando sale "valor de la propiedad no válido" y se cierra.

_creo que se trata de que en la computadora(s) con error
no hay una unida de 3 1/2 " o floppy

comenté la primera línea quedando

;Drive1=1.44 MB,1457664,512

con esto ya funcionó el asistente :)
  Respuesta:  gabriel cury
Ante todo gracias a aquellos que han leido el problema planteado aunque no hayan podido encontrar una solución, rompiendome un poco la cabeza logré solucionarlo, igualmente me interesaria saber porque sucede esto, mas abajo les detallo las lineas que tuve que renombrar en un archivo (vb5dep.ini) que esta ubicado en C:Archivos de programaDevStudioVBsetupkitkitfil32, donde radica el ejecutable wizard creador de aplicaciones (Setupwiz.exe), las lineas renombradas estan en el primer apartado "setupwiz", copio todo el apartado para que vean de que se trata, no obstante en otra pc el mismo archivo no me genera ningun error(las lineas renombradas comienzan con punto y coma).
Desde ya muchisimas gracias a todos los que se interesaron en mi problema

[SetupWiz]
Uses1=c:Archivos de programaDevStudioVBsetupkitkitfil32VB5StKit.dll
BootStrap=C:Archivos de programaDevStudioVBSETUPKITKITFIL32SETUP.EXE
VBExe=C:Archivos de programaDevStudioVBVB5.EXE
RemoveInstallEXE=C:Archivos de programaDevStudioVBSETUPKITKITFIL32ST5UNST.EXE
;Drive1=1.44 MB,1457664,512
;Drive2=2.88 MB,2915328,1024
;Drive3=1.2 MB,1213952,512
;Drive4=720 KB,730112,1024
;Drive5=360 KB,362496,1024
BootStrap=C:Archivos de programaDevStudioVBSETUPKITKITFIL32SETUP.EXE
VBExe=C:Archivos de programaDevStudioVBVB5.EXE
RemoveInstallEXE=C:Archivos de programaDevStudioVBSETUPKITKITFIL32ST5UNST.EXE
Last Project=C:SUELDOSNueva carpetasueldos.vbp
Setup1Proj=C:Archivos de programaDevStudioVBSETUPKITSETUP1SETUP1.VBP
Setup1Exe=C:Archivos de programaDevStudioVBSETUPKITSETUP1setup1.exe

    Pregunta:  57634 - ERROR EN VB 6 Y CRVIEWER XI
Autor:  Victor Gutierrez
Hola, lo que sucede es q uso VB y CR XI, (crviewer), ya hice el enlace del componente (crviewer.dll) y las referencias (Crystal Reports ActiveX Designer Run Time Library 11; Crystal ActiveX Report Viewer 11; Crystal Reports Designer Library 11). Funcionan, sin embargo al ejecutar las 2 o 3 primeras veces me muestra el reporte como debe ser, pero a la siguiente me vota el Error: Y para q me vuelva a funcionar tengo q cerrar el VB.

" Error '-2147189563(80047cc5) en tiempo de Ejecución
Basic Sintaxis is not supported en group or record selection formula "

Tengo el sgte codigo:

Private Sub Mostrar_Report()
'On Error Resume Next
Dim Crystal As CRAXDRT.Application
Dim Report As CRAXDRT.Report

Set Crystal = New CRAXDRT.Application
Set Report = New CRAXDRT.Report
Screen.MousePointer = vbHourglass
Crystal.LogOnServerEx "P2SODBC.dll", "Conecc", "PLANEAMIENTO", "sa", "clave"
Set Report = Crystal.OpenReport(App.Path & "RptPrograma08.rpt", 1)

Report.RecordSelectionFormula = "{@PeriodoSec} = '" & Right(CboANIO, 2) & "." & Left(CboMES, 2) & "." & Left(CboSECCION, 2) & "'"

Report.DiscardSavedData
CrysReportV.ReportSource = Report
CrysReportV.ViewReport

Do While CrysReportV.IsBusy
DoEvents
Loop
CrysReportV.Zoom 100
Set Crystal = Nothing
Screen.MousePointer = vbDefault

End Sub

Alguien podria ayudarme?? Gracias
  Respuesta:  BPA
mmmmmmm no se que tan antiguo sea esto, pero solo veo que mandan parametros para filtrar.... cuando pues a mi me ha funcionado lo siguiente, espero te sirva, el reporte ya tiene su liga a la BD, y el reporte tiene Formula Fields y SQL Expressions Fields, lo cual me hace tener consultas mas faciles segun yo jojojo!

Public Sub ReporteImprime(CodePO As String)

Set crystal = New CRAXDRT.Application

Set report = crystal.OpenReport(App.Path & "ReportsREPORTE.rpt")

report.SQLQueryString = "SELECT * FROM WarehouseStockCodeBars WHERE (POId = '" & CodePO & "') AND (OperId = '6')"
report.DiscardSavedData
report.PrintOut (False)

End Sub

    Pregunta:  57728 - PROBLEMA DE DESCONEXIÓN CON EL CONTROL WINSOCK
Autor:  Roberto Gonzalez Hernandez
Hola estoy creando 2 aplicaciones, cliente servidor y el problema es que si en la pc donde esta la app cliente falla la conexión de red, en la app servidor que esta en otra pc no me ocurre ningún cambio. El control winsock no cambia de estado, ni entra a ningún evento que me permita saber cuando fallo la conexión en el cliente, y necesito esto para poder actualizar la lista de equipos conectados. y otros datos.

Le estaré muy agradecido a quienes me puedan ayudar.

Saludos...
  Respuesta:  Jairo Lopez
Cuando el Cliente falla envía una señal al Servidor
El Winsock del Servidor que estaba conectado con ese Winscok del Cliente pasa con el estado Close
Puede programar en el evento Winsock_Close (Index by Integer) y allí actualizar la lista de equipos conectados

Con mucho gusto cualquier duda

Yo tengo trabajando una aplicacion Cliente Servidor para café internet

|<  <<  286 287 288 289 290 291 292 293 294 295 296  >>  >|