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 - suarex

#1
Windows / Solo usuarios con windows 7
25 Mayo 2011, 19:19 PM
Quisiera saber que valor tiene la clave "SHELL" en esta ruta, creo que es de el HKEY LOCAL MACHINE

SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
#2
Cita de: seba123neo en 19 Mayo 2011, 05:02 AM
es que asi no va a funcionar, esto:
ahi no se que haces, estas asignando la variable de la conexion de la base de datos a un string...eso no va.

la consulta que te pase debes pasarsela a la propiedad .Open de un recordset..y asi obtenes el codigo.

saludos.

>:( es cierto

'Declaraciones
Dim nuevoCodigo As ADODB.Recordset


nuevoCodigo.Open = "SELECT MAX (codigo)+1 AS nuevoCodigo FROM BDCancionero"

Aun asi me dice que esperaba una funcion o una variable.
#3
Cita de: seba123neo en 19 Mayo 2011, 03:58 AM
antes de guardar, haces esta consulta:

Código (sql) [Seleccionar]
SELECT MAX(codigo)+1 AS nuevoCodigo FROM BDCancionero

guarda el valor de "nuevoCodigo" en una variable e inserta esa misma en el codigo.

saludos.
Gracias por responder.
He hecho estas 3 modificaciones. Pero me dice que no coinciden los tipos, me extraña porque las almaceno como un  Dim Integer.


Citar'Declaraciones
Dim nuevocodigo As Integer
CitarPrivate Sub Command1_Click()

Set db = New ADODB.Connection
   Set rs = New ADODB.Recordset
   
   With db
.Provider = "Microsoft.jet.oledb.4.0" '(Access 2000)
.ConnectionString = "datos.mdb"
.Open
End With

Set db = "SELECT MAX (codigo)+1 AS nuevoCodigo FROM BDCancionero"

'Aki tomo el index de k.
Dim k As Long
Dim archivo() As String
Dim Modificar As String
Screen.MousePointer = 11
For k = 0 To Text1.ListCount - 1
   If InStr(Text1.List(k), "'") Then
       Modificar = Modificar & "Original: " & Text1.List(k) & (Chr(13) & Chr(10))
       Text1.List(k) = Replace(Text1.List(k), "'", "")
       Modificar = Modificar & " Final: " & Text1.List(k) & (Chr(13) & Chr(10))
   End If
   archivo = Split(Text1.List(k), "\", -1, vbTextCompare)
   Call Grabar_BDCancionero(nuevocodigo + 1, Mid(archivo(4), 1, Len(archivo(4)) - 4), Text1.List(k), 0, Right(archivo(4), 4))
Next k

Screen.MousePointer = 0
MsgBox "Se ha actualizado la base de canciones", vbInformation
MsgBox "Modificaciones Pendientes " & (Chr(13) & Chr(10)) & Modificar
'Set rs = db.Execute("select top 10 * from BDCancionero")
End Sub
#4
Buenos dias  ;D

Tengo un problema, miren tengo un programa que se encarga de agregar los directorios de los archivos a una base de datos. lo hago seleccionando un directorio con un dirlistbox. El agrega en la base de datos los siguiente campos: codigo, nombre, ruta, tipo. El campo codigo cuenta cuantos archivos hay en la base de datos, pero el problema es que luego de agregar. cuando vuelvo a agregar mas archivos en la base de datos me da un error que no me permite duplicados. (obviamente yo lo bloque porque no quiero duplicados) quisiera saber como puedo obtener el ultimo valor del campo codigo e ir sumando desde alli. CODIGO ES UN NUMERO


Option Explicit
Dim rs As ADODB.Recordset
Dim db As ADODB.Connection




Private Sub Command1_Click()
    Set db = New ADODB.Connection
    Set rs = New ADODB.Recordset
   
    With db
.Provider = "Microsoft.jet.oledb.4.0" '(Access 2000)
.ConnectionString = "datos.mdb"
.Open
End With


'Aki tomo el index de k.
Dim k As Long
Dim archivo() As String
Dim Modificar As String
Screen.MousePointer = 11
For k = 0 To Text1.ListCount - 1
    If InStr(Text1.List(k), "'") Then
        Modificar = Modificar & "Original: " & Text1.List(k) & (Chr(13) & Chr(10))
        Text1.List(k) = Replace(Text1.List(k), "'", "")
        Modificar = Modificar & " Final: " & Text1.List(k) & (Chr(13) & Chr(10))
    End If
    archivo = Split(Text1.List(k), "\", -1, vbTextCompare)
    Call Grabar_BDCancionero(k + 1, Mid(archivo(4), 1, Len(archivo(4)) - 4), Text1.List(k), 0, Right(archivo(4), 4))
Next k

Screen.MousePointer = 0
MsgBox "Se ha actualizado la base de canciones", vbInformation
MsgBox "Modificaciones Pendientes " & (Chr(13) & Chr(10)) & Modificar
'Set rs = db.Execute("select top 10 * from BDCancionero")
Command1.Visible = False
Command2.Visible = True
End Sub

Private Sub Command2_Click()
'recorremos todos los archivos de musica y guardamos cada uno en la DB.
Dim Carpeta_Genero As Long
Dim Carpeta_Artista As Long
Dim i As Integer
Dim j As Integer
Dim k As Integer
Text1.Clear
Carpeta_Genero = Dir1.ListCount
For i = 0 To Dir1.ListCount - 1
    Dir2 = Dir1.List(i)
    For j = 0 To Dir2.ListCount - 1
        'Dir1 = Dir1.List(i)
        'If i = 0 Then
        '    Dir2.Path = Dir1.List(i)
        'Else
        '    Dir2.Path = Dir1
        '    Dir1 = Dir1.List(-2)
        'End If
        File1 = Dir2.List(j)
        For k = 0 To File1.ListCount - 1
            File1.ListIndex = k
            Text1.AddItem (File1.Path & "\" & File1.FileName)
        Next k
    Next j
Next i
Label2.Caption = Text1.ListCount
End Sub

Public Function Grabar_BDCancionero(Codigo As Long, Nombre As String, Ruta As String, Cantidad As Integer, Tipo As String)
    Dim sSql As String
   
   
    sSql = "INSERT INTO BDCancionero VALUES("
    sSql = sSql & Codigo & ", '" & Nombre & "', '" & Ruta & "', " & Cantidad & ", '" & Tipo & "')"
   
    Set rs = db.Execute(sSql)
   
End Function
Private Sub Dir1_Change()
    Dir1.Path = Dir1
End Sub

Private Sub Dir2_Change()
    File1.Path = Dir2.Path
End Sub

Private Sub Drive1_Change()
    Dir1.Path = Drive1.Drive
End Sub

Private Sub Form_Load()
    File1.Pattern = "*.mpg;*.wmv;*.avi;*.mp4;*.m2v;*.vob;*.mov;*.asf;*.mp3;*.mp2;*.swa;*.wma;*.wav;*.mid;*.ogg;*.mkv;*.mpa;*.ac3;*.aac;*.kar;*.flv"
End Sub

Private Sub Image1_Click()
End
End Sub

#5
El programa no es para un cyber, es un reproductor de audio y video y todas las pcs tienen xp sp3.
Implementaré sus recomendaciones. Muchas Gracias, Buen foro.
#6
Cita de: seba123neo en 10 Mayo 2011, 06:20 AM
Hola, mira manera facil para sber donde esta el error, enumerar las lineas y usar Erl() que te dice la linea exacta del error. abria que ver que hay en esas funciones a las que apunta los 2 AdressOf que tenes ahi. pero proba lo que te digo, en unos minutos sabes que es lo que esta pasando.

saludos.

interesante, pero tendria que enumerar todas las lineas???
#7
Miren tengo un problema. Tengo 10 computadores y instale mi programa varias veces(mientras le hacia cambios) en los 10, me dio error en 2 computadores y  primero abrio bien el programa lo cerre y cuando lo volvi a abrir me salio el error Run-time error '5': Invalid procedure call or argument El error solo aparece en 2 computadores de los 10



Alguna teoria de la causa de este error???

Aqui el codigo del formload

Código (vb) [Seleccionar]
If Command$ <> "" Then
LabelProt.Visible = True
LabelProt0.Visible = True
Timer13.Enabled = True
Label10.Visible = True
LabelProt.Caption = "CODIGO DE ERROR " & Command$
End If

'cargamos imagenes para la publicidad
   FLBImagenes.Path = App.Path & "\data\publicidad\"
   FLBImagenes.Pattern = "*.jpg;*.png;*.gif;*.jpeg;*.bmp;*.ico"
   Randomize
'Cargamos la imagen de fondo de el listbox en el image1
Image1.Picture = LoadPicture(App.Path & "\data\fnd\fndlb.jpg")
'Fondo para el listbox
Image1.Visible = False
gBGBrush = CreatePatternBrush(Image1.Picture.Handle)
'Subclass the window
oldWindowProc = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf NewWindowProc)
oldLbx1Proc = SetWindowLong(lstTitulos.hwnd, GWL_WNDPROC, AddressOf NewLbxProc)
'Version del programa'
lblVersion.Caption = "Versión " & App.Major & "." & App.Minor & "." & App.Revision
'Imagen de fondo
Dim Ruta As String
'la ruta de la imagen en el disco
Ruta = App.Path & "\data\fnd\fnd.jpg"
'Le pasamos al método LoadPicture la variable Ruta
frmPpal.Picture = LoadPicture(Ruta)
'Mostramos a quien esta registrada la licencia
crlf$ = Chr(13) & Chr(10)
licencia.Caption = ""
Open App.Path & "\data.rockola" For Input As #1
While Not EOF(1)
Line Input #1, file_data$
licencia.Caption = licencia.Caption & file_data$ & crlf$
Wend
Close #1
'Establece las tipografias
lblmin.Font = "Digital-7"
lblsec.Font = "Digital-7"
lbldospuntos.Font = "Digital-7"
txtSeleccion.Font = "Digital-7"
'Elimina los bordes del listbox
Call Establecer_Borde(lstTitulos, Me, &HC0C0C0, vbBSDot, 1)