Autor Tema: Conectar Visual Basic con Base en SQL Server 2005 (SOLUCIONADO)  (Leído 23328 veces)

0 Usuarios y 1 Visitante están viendo este tema.

omarinho23

  • Megabyte
  • ***
  • Mensajes: 105
  • Reputación: +0/-1
    • Ver Perfil
Buenooooo molestando de nuevo a todos =D , jijiji, bueno ice mi conex a sql server 2005 q instale en mi pc
pero me sale error :S no se q estoy aciendo mal, no se si el servidor esta en on o no se q es lo q pasa! alguien me puede guiar .gracias!

el error es
[ sql network interfaces : error locating server/instance specfied ]

Citar
Option Explicit

Public Declare Sub InitCommonControls Lib "comctl32" ()

' variables para la conexión y el recordset
''''''''''''''''''''''''''''''''''''''''''''
Public cnn As New ADODB.Connection
Public rs As New ADODB.Recordset

Public ObjItem As ListItem


Sub Main()
    On Error Resume Next
    Call InitCommonControls
    Err.Clear
    FrmPrincipalCarmen.Show
End Sub

Public Sub IniciarConexion()

    With cnn
        .CursorLocation = adUseClient
        .Open "Provider=SQLNCLI;Server=SERVIDOR\Administrador;Database=NWINDFINALSQL; Trusted_Connection=yes;"
    End With

End Sub


Public Sub CargarListView(LV As ListView, rs As ADODB.Recordset)
   
    On Error GoTo ErrorSub
   
    Dim i As Integer
    'limpia el LV
    LV.ListItems.Clear
   
    ' si hay registros
    If rs.RecordCount > 0 Then
       
        ' recorre el recordset
        While Not rs.EOF
            ' añade los datos
            Set ObjItem = LV.ListItems.Add(, , rs(0))
           ObjItem.SubItems(1) = rs!voucher
           ObjItem.SubItems(2) = rs!dia
           ObjItem.SubItems(3) = rs!contacto
           ObjItem.SubItems(4) = rs!razonsocial
           ObjItem.SubItems(5) = rs!nºderuc
           ObjItem.SubItems(6) = rs!direccion
           ObjItem.SubItems(7) = rs!inspector
           ObjItem.SubItems(8) = rs!tipodecertificado
           ObjItem.SubItems(9) = rs!cantidad
           ObjItem.SubItems(10) = rs!precio
           ObjItem.SubItems(11) = rs!total
           ObjItem.SubItems(12) = rs!codigodebarra
           ObjItem.SubItems(13) = rs!cit
           ObjItem.SubItems(14) = rs!nºdeplaca
           ObjItem.SubItems(15) = rs!nºdemotor
           ObjItem.SubItems(16) = rs!nºdeserieochasis
           ObjItem.SubItems(17) = rs!nºdecertificado
           ObjItem.SubItems(18) = rs!totalvoucher
           ObjItem.SubItems(19) = rs!boletaofactura
           ObjItem.SubItems(20) = rs!mes
           ObjItem.SubItems(21) = rs!lista
           ObjItem.SubItems(22) = rs!asignacion
           ObjItem.SubItems(23) = rs!observacion
                     
            ' siguiente registro
            rs.MoveNext
        Wend
       
    End If
    Call ForeColorColumn(&H8000&, 0, FrmPrincipalCarmen.LV)
    'Call ForeColorColumn(vbRed, 6, FrmPrincipalcarmen.LV)
   
    Exit Sub
   
ErrorSub:
   
    If Err.Number = 94 Then Resume Next
   
End Sub


' cierra
Sub Desconectar()
    On Local Error Resume Next
    rs.Close
    Set rs = Nothing
    cnn.Close
    Set cnn = Nothing
End Sub
« última modificación: Enero 23, 2010, 11:12:33 am por omarinho23 »

ssccaann43

  • Moderador
  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Conectar Visual Basic con Base en SQL Server 2005 (duda)
« Respuesta #1 en: Enero 21, 2010, 05:58:55 pm »

Hola...

Verifica en: Inicio -> Panel de Control -> Herramientas Administrativas -> Servicios este cargado el SQL Server 2005. Quizas aparezca como SQL Server EXPRESS.

Luego de estar iniciado, haces lo siguiente.

En un proyecto nuevo en visual basic, ubica el control:

Microsoft ADO Data Control 6.0

Pegalo en un form, e intenta conectarte desde allí a la BD que tienes en el SQL Server 2005. Si la conexión es satisfactoria, pues seleccionas el string de conexión que el ADODC tiene y usalo en tú proyecto.

Saludos.

PD: En Recopilación de Codigo, hay varios string de conexión para SQL Server 2005. Date una vueltita por allí.
Miguel Núñez.

omarinho23

  • Megabyte
  • ***
  • Mensajes: 105
  • Reputación: +0/-1
    • Ver Perfil
Re:Conectar Visual Basic con Base en SQL Server 2005 (duda)
« Respuesta #2 en: Enero 21, 2010, 07:27:43 pm »
ola ssccaann bueno como tenia 2 proyec uno en ADODC  y otro en ADO  bueno estoy utilizando el ADODC  ahora q tngo el servidor, pero ahora :S tu crees q sea un problema usar un servidor con red inalambrica ??? y bueno... otra cosa :S estoy utlizando el programa en el servidor y la bd en sql server 2005 , bueno ahora quiero compartirla en red, y cuando comparto la carpeta y el archivo .exe me salen errores y errores diferentes :S una de ellas q esa cuenta invitada no existia :S y otra error de espera... y otra de unos cod :S no capto enserio..

como lo hago o q me recomiendas
« última modificación: Enero 21, 2010, 07:32:31 pm por omarinho23 »

seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:Conectar Visual Basic con Base en SQL Server 2005 (duda)
« Respuesta #3 en: Enero 22, 2010, 12:24:05 am »
Hola, la cadena de conexion esta mal en esta parte:

Citar
SERVIDOR\Administrador

si queres ver cadenas de conexion te recomiendo esta pagina:

http://www.connectionstrings.com/

aca te paso la que uso yo siempre con SQL Server 2005.

Citar
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=TuUsuario;Password=TuPassword;Initial Catalog=TuBase;Data Source=NOMBREDETUPC\SQLEXPRESS;Connect Timeout=60;

donde TuUsuario es el usuario con el que accedes a la base y TuPassword es el password del usuario,TuBase es el nombre de la base de datos y en NOMBREDETUPC\SQLEXPRESS va el nombre de tu pc seguido de \SQLEXPRESS, eso es necesario en las versiones SQL Express, en la versión enterprise no hace falta y solo va el nombre de la PC...o la IP como quieras...

PD:sacale esos As New en las delaraciones.

saludos.
« última modificación: Enero 22, 2010, 12:26:24 am por seba123neo »

ssccaann43

  • Moderador
  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Conectar Visual Basic con Base en SQL Server 2005 (duda)
« Respuesta #4 en: Enero 22, 2010, 10:34:37 am »
Seba el As New no es problema... Yo lo uso siempre...

omarinho23, usa el string de conex que te da seba... Por cierto es mejor usar ADO y no ADODC, te explique lo del ADODC para que sacaras el string de conexión, no para que lo usaras como tal.
Miguel Núñez.

omarinho23

  • Megabyte
  • ***
  • Mensajes: 105
  • Reputación: +0/-1
    • Ver Perfil
Re:Conectar Visual Basic con Base en SQL Server 2005 (duda)
« Respuesta #5 en: Enero 22, 2010, 12:33:36 pm »
bueno tons siguiendo tus consejos... sigo usando ADO bueno, ahora me sale el problema de transformacion de fecha :S " Conversion falied when converting datetime from character string " ... mi formato esta asi [[ Format(Date, "dd/mm/yyyy") ]]  como debo ponerlo?

y cuando trato de editar un registro a la hora de guardar tmb me sale el error con la fecha " the conversion of a char data type to a datetime data type resulted in an out-of-range datetime value "

no capto con las fechas! u.u
« última modificación: Enero 22, 2010, 12:44:36 pm por omarinho23 »

ssccaann43

  • Moderador
  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Conectar Visual Basic con Base en SQL Server 2005 (duda)
« Respuesta #6 en: Enero 22, 2010, 12:42:15 pm »
Ve si puedes usar esto...

CONVERT(DATETIME, Date, 103)

Modificacion:
Antes que nada, estas haciendo un select condicionando por fecha?
El campo fecha que tienes en la Base de Datos que tipo de campo es?

Muestrame lo que estas haciendo.
« última modificación: Enero 22, 2010, 12:47:20 pm por ssccaann43 »
Miguel Núñez.

omarinho23

  • Megabyte
  • ***
  • Mensajes: 105
  • Reputación: +0/-1
    • Ver Perfil
Re:Conectar Visual Basic con Base en SQL Server 2005 (duda)
« Respuesta #7 en: Enero 22, 2010, 12:45:47 pm »
donde pongo ese convert(datetime, date, 103)  ... lo remplazo con mi format(date, "dd/mm/yyyy")

ssccaann43

  • Moderador
  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Conectar Visual Basic con Base en SQL Server 2005 (duda)
« Respuesta #8 en: Enero 22, 2010, 12:47:48 pm »
donde pongo ese convert(datetime, date, 103)  ... lo remplazo con mi format(date, "dd/mm/yyyy")

Antes que nada, estas haciendo un select condicionando por fecha?
El campo fecha que tienes en la Base de Datos que tipo de campo es?

Muestrame lo que estas haciendo.
Miguel Núñez.

omarinho23

  • Megabyte
  • ***
  • Mensajes: 105
  • Reputación: +0/-1
    • Ver Perfil
Re:Conectar Visual Basic con Base en SQL Server 2005 (duda)
« Respuesta #9 en: Enero 22, 2010, 12:53:26 pm »
aer! en la base de datos de sql esta en el formato "datetime"
y bueno mi conex es esta
Citar
Option Explicit

Public Declare Sub InitCommonControls Lib "comctl32" ()

' variables para la conexión y el recordset
''''''''''''''''''''''''''''''''''''''''''''
Public cnn As New ADODB.Connection
Public rs As New ADODB.Recordset

Public ObjItem As ListItem


Sub Main()
    On Error Resume Next
    Call InitCommonControls
    Err.Clear
    FrmPrincipalCarmen.Show
End Sub

Public Sub IniciarConexion()

    With cnn
        .CursorLocation = adUseClient
        .Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=BASEFINAL;Data Source=SERVIDOR"
    End With

End Sub


Public Sub CargarListView(LV As ListView, rs As ADODB.Recordset)
   
    On Error GoTo ErrorSub
   
    Dim i As Integer
    'limpia el LV
    LV.ListItems.Clear
   
    ' si hay registros
    If rs.RecordCount > 0 Then
       
        ' recorre el recordset
        While Not rs.EOF
            ' añade los datos
            Set ObjItem = LV.ListItems.Add(, , rs(0))
           ObjItem.SubItems(1) = rs!voucher
           ObjItem.SubItems(2) = rs!dia
           ObjItem.SubItems(3) = rs!contacto
           ObjItem.SubItems(4) = rs!razonsocial
           ObjItem.SubItems(5) = rs!nºderuc
           ObjItem.SubItems(6) = rs!direccion
           ObjItem.SubItems(7) = rs!inspector
           ObjItem.SubItems(8) = rs!tipodecertificado
           ObjItem.SubItems(9) = rs!cantidad
           ObjItem.SubItems(10) = rs!precio
           ObjItem.SubItems(11) = rs!total
           ObjItem.SubItems(12) = rs!codigodebarra
           ObjItem.SubItems(13) = rs!cit
           ObjItem.SubItems(14) = rs!nºdeplaca
           ObjItem.SubItems(15) = rs!nºdemotor
           ObjItem.SubItems(16) = rs!nºdeserieochasis
           ObjItem.SubItems(17) = rs!nºdecertificado
           ObjItem.SubItems(18) = rs!totalvoucher
           ObjItem.SubItems(19) = rs!boletaofactura
           ObjItem.SubItems(20) = rs!mes
           ObjItem.SubItems(21) = rs!lista
           ObjItem.SubItems(22) = rs!asignacion
           ObjItem.SubItems(23) = rs!observacion
                     
            ' siguiente registro
            rs.MoveNext
        Wend
       
    End If
    Call ForeColorColumn(&H8000&, 0, FrmPrincipalCarmen.LV)
    'Call ForeColorColumn(vbRed, 6, FrmPrincipalcarmen.LV)
   
    Exit Sub
   
ErrorSub:
   
    If Err.Number = 94 Then Resume Next
   
End Sub


' cierra
Sub Desconectar()
    On Local Error Resume Next
    rs.Close
    Set rs = Nothing
    cnn.Close
    Set cnn = Nothing
End Sub


Código: [Seleccionar]
        cnn.Execute "UPDATE Clientes set voucher = '" & Text1(1) & _
                                         "', dia = '" & Text1(2) & _
                                         "', contacto = '" & Text1(3) & _
                                         "', razonsocial = '" & Text1(4) & _
                                         "', nºderuc = '" & Text1(5) & _
                                         "', direccion = '" & Text1(6) & _
                                         "', inspector = '" & Text1(7) & _
                                         "', tipodecertificado = '" & Text1(8) & _
                                         "', cantidad = '" & Text1(9) & _
                                         "', precio = '" & Text1(10) & _
                                         "', total= '" & Text1(11) & _
                                         "', codigodebarra = '" & Text1(12) & _
                                         "', cit = '" & Text1(13) & _
                                         "', nºdeplaca = '" & Text1(14) & _
                                         "', nºdemotor = '" & Text1(15) & _
                                         "', nºdeserieochasis = '" & Text1(16) & _
                                         "', nºdecertificado = '" & Text1(17) & _
                                         "', totalvoucher = '" & Text1(18) & _
                                         "', boletaofactura = '" & Text1(19) & _
                                         "', mes = '" & Text1(20) & _
                                         "', lista = '" & Text1(21) & _
                                         "', asignacion = '" & Text1(22) & _
                                         "', observacion = '" & Text1(23) & _
                                         "' where Cod = " & IdRegistro & ""

« última modificación: Enero 22, 2010, 12:58:34 pm por omarinho23 »

ssccaann43

  • Moderador
  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Conectar Visual Basic con Base en SQL Server 2005 (duda)
« Respuesta #10 en: Enero 22, 2010, 12:59:26 pm »
Esperaba que al menos me reflejaras donde muestra el error... Donde haces el select? Quiero ver el Select * from............
Miguel Núñez.

omarinho23

  • Megabyte
  • ***
  • Mensajes: 105
  • Reputación: +0/-1
    • Ver Perfil
Re:Conectar Visual Basic con Base en SQL Server 2005 (duda)
« Respuesta #11 en: Enero 22, 2010, 01:16:09 pm »
bueno el selec es este
[note]
Option Explicit

Enum EACCION
    AGREGAR_REGISTRO = 0
    EDITAR_REGISTRO = 1
End Enum

Public IdRegistro
Public ACCION As EACCION



Private Sub cmdGuardar_Click()
Text1(11).Text = ((Val(Text1(9).Text) * Val(Text1(10).Text)))
Text1(22).Text = ((Val(Text1(11).Text * 0.3) / 1.19))


    'Agrega el registro
    '''''''''''''''''''''''''''''''
   
    Select Case ACCION
    Case EDITAR_REGISTRO
        cnn.Execute "UPDATE Clientes set voucher = '" & Text1(1) & _
                                         "', dia = '" & Text1(2) & _
                                         "', contacto = '" & Text1(3) & _
                                         "', razonsocial = '" & Text1(4) & _
                                         "', nºderuc = '" & Text1(5) & _
                                         "', direccion = '" & Text1(6) & _
                                         "', inspector = '" & Text1(7) & _
                                         "', tipodecertificado = '" & Text1(8) & _
                                         "', cantidad = '" & Text1(9) & _
                                         "', precio = '" & Text1(10) & _
                                         "', total= '" & Text1(11) & _
                                         "', codigodebarra = '" & Text1(12) & _
                                         "', cit = '" & Text1(13) & _
                                         "', nºdeplaca = '" & Text1(14) & _
                                         "', nºdemotor = '" & Text1(15) & _
                                         "', nºdeserieochasis = '" & Text1(16) & _
                                         "', nºdecertificado = '" & Text1(17) & _
                                         "', totalvoucher = '" & Text1(18) & _
                                         "', boletaofactura = '" & Text1(19) & _
                                         "', mes = '" & Text1(20) & _
                                         "', lista = '" & Text1(21) & _
                                         "', asignacion = '" & Text1(22) & _
                                         "', observacion = '" & Text1(23) & _
                                         "' where Cod = " & IdRegistro & ""

    Case AGREGAR_REGISTRO
       
        cnn.Execute "INSERT INTO Clientes " & "(voucher,dia,contacto,razonsocial,nºderuc,direccion,inspector,tipodecertificado,cantidad,precio,total,codigodebarra,cit,nºdeplaca,nºdemotor,nºdeserieochasis,nºdecertificado,totalvoucher,boletaofactura,mes,lista,asignacion,observacion) VALUES('" & _
                                 Text1(1) & "','" & _
                                 Format(Date, "dd/mm/yyyy") & _
                                 Text1(3) & "','" & _
                                 Text1(4) & "','" & _
                                 Text1(5) & "','" & _
                                 Text1(6) & "','" & _
                                 Text1(7) & "','" & _
                                 Text1(8) & "','" & _
                                 Text1(9) & "','" & _
                                 Text1(10) & "','" & _
                                 Text1(11) & "','" & _
                                 Text1(12) & "','" & _
                                 Text1(13) & "','" & _
                                 Text1(14) & "','" & _
                                 Text1(15) & "','" & _
                                 Text1(16) & "','" & _
                                 Text1(17) & "','" & _
                                 Text1(18) & "','" & _
                                 Text1(19) & "','" & _
                                 Text1(20) & "','" & _
                                 Text1(21) & "','" & _
                                 Text1(22) & "','" & _
                                 Text1(23) & "','" & "')"
                                 
                                 
                                 


    End Select
   
    rs.Requery 1
   
    Call CargarListView(FrmPrincipalCarmen.LV, rs)

    DoEvents
    Unload Me
    Set FrmEditCarmen = Nothing
Exit Sub
ErrorSub:
MsgBox Err.Description

End Sub

Private Sub cmdCancelar_Click()
    Unload Me
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyEscape Then
       Unload Me
    End If
End Sub


Private Sub Text1_Change(Index As Integer)
Text1(22) = Format(Text1(22), "#0.00")
Text1(11) = Format(Text1(11), "#0.00")
Text1(18) = Format(Text1(18), "#0.00")
End Sub
[/note]

y el error se me origina en esta parte [[        cnn.Execute "UPDATE Clientes set voucher = '" & Text1(1) & _  ]] y todo lo q viene abajo hasta terminar el update

ssccaann43

  • Moderador
  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Conectar Visual Basic con Base en SQL Server 2005 (duda)
« Respuesta #12 en: Enero 22, 2010, 01:27:06 pm »
Ok, alli solo coloca DATE y debería guardar. Quita el format!
Miguel Núñez.

omarinho23

  • Megabyte
  • ***
  • Mensajes: 105
  • Reputación: +0/-1
    • Ver Perfil
Re:Conectar Visual Basic con Base en SQL Server 2005 (duda)
« Respuesta #13 en: Enero 22, 2010, 01:32:47 pm »
kite el format y me salio otro error :S  [[ unclosed quotation mark after the character string '22/01/2010' ]]

y me sale el error en
[note]
    Case AGREGAR_REGISTRO
       
        cnn.Execute "INSERT INTO Clientes " & "(voucher,dia,contacto,razonsocial,nºderuc,direccion,inspector,tipodecertificado,cantidad,precio,total,codigodebarra,cit,nºdeplaca,nºdemotor,nºdeserieochasis,nºdecertificado,totalvoucher,boletaofactura,mes,lista,asignacion,observacion) VALUES('" & _
                                 Text1(1) & "','" & _
                                 Date, "dd/mm/yyyy" & _
                                 Text1(3) & "','" & _
                                 Text1(4) & "','" & _
                                 Text1(5) & "','" & _
                                 Text1(6) & "','" & _
                                 Text1(7) & "','" & _
                                 Text1(8) & "','" & _
                                 Text1(9) & "','" & _
                                 Text1(10) & "','" & _
                                 Text1(11) & "','" & _
                                 Text1(12) & "','" & _
                                 Text1(13) & "','" & _
                                 Text1(14) & "','" & _
                                 Text1(15) & "','" & _
                                 Text1(16) & "','" & _
                                 Text1(17) & "','" & _
                                 Text1(18) & "','" & _
                                 Text1(19) & "','" & _
                                 Text1(20) & "','" & _
                                 Text1(21) & "','" & _
                                 Text1(22) & "','" & _
                                 Text1(23) & "','" & "')"
                                 

[/note]

ssccaann43

  • Moderador
  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Conectar Visual Basic con Base en SQL Server 2005 (duda)
« Respuesta #14 en: Enero 22, 2010, 01:37:34 pm »
Caramba, lee mi post anterior te dije que solo dejaras DATE

Al quitar el format, debes quitar tambien "dd/mm/yyyy".

Y queda Date & _
Miguel Núñez.