none
problema al escribir en base de datos access 2010 desde vb2008 RRS feed

  • Pregunta

  • Hola a todos

    soy nuevo en vb y estoy realizando una aplicación en la cual debo registrar  cada determinado tiempo algunos datos, algunos de estos datos son iguales ( fecha, lugar, modo de operación, tiempo) cuando pretendo guardarlos en la BD se me crea un error OLDBExcepcion, me indica de que debo cambiar el indice del campo (ya lo hice pero no me da)

    mi pregunta es referente a si es posible escribir multiples datos iguales en la BD access o en que plataforma me recomiendan hacerlo, o si es posible en access que código debo usar (ya intente con la opción indexado (si, datos duplicados).

    Agradezco me colaboren con este tema. 


    sábado, 4 de julio de 2015 0:37

Todas las respuestas

  • Hola jhon sanchez jaso,

    ¿Podrías mostrar un poco de código donde se desencadena el error?

    sábado, 4 de julio de 2015 0:38
  • hola  

    Gracias, eje en negrilla la parte donde me sale el error

     Private Sub Timer3_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer3.Tick

            Label4.Text = TimeOfDay     '  se visualiza fecha y hora en el panel principal
            Label5.Text = DateString

            If k4 <> k5 Then

                If JASOMATRIZ3(k5, 0) = "@" Then
                    If JASOMATRIZ3(k5, 16) = "#" Then

                        a0 = JASOMATRIZ3(k5, 0) '  INICIADOR DE TRAMA
                        a1 = JASOMATRIZ3(k5, 1) '  DECENA # DE LA BUSETA 
                        a2 = JASOMATRIZ3(k5, 2) '  UNIDAD # DE LA BUSETA 
                        a3 = JASOMATRIZ3(k5, 3) '  LIBRE********************
                        a4 = JASOMATRIZ3(k5, 4) '  SITIO DEL MARCAJE 
                        a5 = JASOMATRIZ3(k5, 5) '  MODO ACTUAL DE OPERACION DE LA ESTACION DE MARCAJE ACTUAL(transmisor RESET O LOCAL)   
                        a6 = JASOMATRIZ3(k5, 6) '  DIA DEL MARCAJE 
                        a7 = JASOMATRIZ3(k5, 7) '  MES DEL MARCAJE
                        a8 = JASOMATRIZ3(k5, 8) '  AÑO DEL MARCAJE
                        a9 = JASOMATRIZ3(k5, 9) '  HORAS DEL MARCAJE
                        a10 = JASOMATRIZ3(k5, 10) 'MINUTOS DEL MARCAJE 
                        a11 = JASOMATRIZ3(k5, 11) 'SEGUNDOS DEL MARCAJE  
                        a12 = JASOMATRIZ3(k5, 12) 'ESTADO DEL MODULO (NORMAL/EMERGENTE)
                        a13 = JASOMATRIZ3(k5, 13) '% USO DE LA BATERIA 
                        a14 = JASOMATRIZ3(k5, 14) 'MODO DEL MARCAJE(1XSITIO!=,2X3MINOFF,3XRETARDOenSITIO,4X!=DIA)
                        a15 = JASOMATRIZ3(k5, 15) '# DE TRAMAS DE DATOS POR ENVIAR
                        a16 = JASOMATRIZ3(k5, 16)  'FINALIZADOR DE TRAMA

                        IN1 = Asc(a1) - 48
                        IN2 = Asc(a2) - 48
                        IN1 = (IN1 * 10) + IN2 ' numero del vehiculo en formato int
                        Label27.Text = IN1 'visualizo 

                        IN2 = Asc(a6) - 48 'dia en formato entero
                        b6 = IN2.ToString
                        IN2 = Asc(a7) - 48 'mes en formato entero
                        b7 = IN2.ToString
                        IN2 = Asc(a8) - 48 'año en formato entero
                        b8 = IN2.ToString

                        Dim totalfecha As String = b6 + "/" + b7 + "/" + b8

                        IN2 = Asc(a9) - 48 'hora en formato entero
                        b9 = IN2.ToString
                        IN3 = IN2 * 3600
                        IN2 = Asc(a10) - 48 'min en formato entero
                        b10 = IN2.ToString
                        IN4 = IN2 * 60
                        IN2 = Asc(a11) - 48 'segundo en formato entero
                        b11 = IN2.ToString
                        IN2 = IN3 + IN4 + IN2

                        Dim totalhora As String = b9 + ":" + b10 + ":" + b11

                        j2 = IN2 / 10000
                        j8 = Int(j2)         'se extrae la diezmilesima
                        b12 = j8.ToString
                        IN2 = IN2 - (j8 * 10000)
                        j2 = IN2 / 1000
                        j8 = Int(j2)         'se extrae la milesima
                        b13 = j8.ToString
                        IN2 = IN2 - (j8 * 1000)
                        j2 = IN2 / 100
                        j8 = Int(j2)         'se extrae la centesima
                        b14 = j8.ToString
                        IN2 = IN2 - (j8 * 100)
                        j2 = IN2 / 10
                        j8 = Int(j2)         'se extrae la decima
                        b15 = j8.ToString
                        j8 = IN2 - (j8 * 10) 'se extrae la unidad
                        b16 = j8.ToString

                        Dim totalsegundos As String = b12 + b13 + b14 + b15 + b16

                        IN2 = Asc(a14) - 48
                        b17 = IN2.ToString   'modo de marcaje

                        Dim totalmodomarca As String = b17

                        IN2 = Asc(a13) - 48
                        b18 = IN2.ToString   '% uso bateria

                        Dim totalbateria As String = b18 + "%"

                        IN2 = Asc(a15) - 48
                        b19 = IN2.ToString   '#  de la trama

                        Dim totaltrama As String = b19

                        Select Case a12 ' SITO DEL MARCAJE
                            Case "1"
                                ESTADO = "EMERGENTE"
                            Case "0"
                                ESTADO = "NORMAL"
                            Case Else
                                ESTADO = "NO DATA"
                        End Select

                        Select Case a4 ' SITO DEL MARCAJE
                            Case ":"
                                SITIO = "SITIO1"
                            Case ";"
                                SITIO = "ZARZALITO"
                            Case "<"
                                SITIO = "ZARZAL"
                            Case "="
                                SITIO = "SITIO2"
                            Case ">"
                                SITIO = "LA PAILA"
                            Case "?"
                                SITIO = "SITIO3"
                            Case "@"
                                SITIO = "SITIO4"
                            Case "A"
                                SITIO = "SITIO5"
                            Case "B"
                                SITIO = "SITIO6"
                            Case "C"
                                SITIO = "SITIO7"
                            Case "D"
                                SITIO = "SITIO8"
                            Case "E"
                                SITIO = "SITIO9"
                            Case "F"
                                SITIO = "SITIO10"
                            Case "G"
                                SITIO = "SITIO11"
                            Case Else
                                SITIO = "NO SITIO"
                        End Select

                        Select Case a5 ' SITO DEL MARCAJE
                            Case "/"
                                MODO = "LOCAL"
                            Case "-"
                                MODO = "REMOTO"
                            Case Else
                                MODO = "NO MODO"
                        End Select

                        Select Case IN1 ' SITO DEL MARCAJE
                            Case 1
                                cnt1 += 1
                                ct1 = cnt1.ToString 'contador de entradas
    Me.PruebaTableAdapter.vh1(ct1, SITIO, MODO, totalfecha, totalhora,totalsegundos,_                      totalmodomarca, ESTADO, totalbateria, totaltrama)
                                Me.PruebaTableAdapter.Fill(Me.Database1DataSet.prueba)
                              Case 2
                                'Me.VehiculodosTableAdapter.vh2(ct1, SITIO, MODO, b6 + "/" + b7 + "/" + b8, b9 + ":" + b10 + ":" + b11, b12 + b13 + b14 + b15 + b16, b17, ESTADO, b18 + "%", b19)
                                'Me.VehiculodosTableAdapter.Fill(Me.Database1DataSet.vehiculodos)
                            Case 3
                                'DataGridView3.Rows.Add(SITIO, MODO, b6 + "/" + b7 + "/" + b8, b9 + ":" + b10 + ":" + b11, b12 + b13 + b14 + b15 + b16, b17, ESTADO, b18 + "%", b19)
                            Case 4
                                'DataGridView4.Rows.Add(SITIO, MODO, b6 + "/" + b7 + "/" + b8, b9 + ":" + b10 + ":" + b11, b12 + b13 + b14 + b15 + b16, b17, ESTADO, b18 + "%", b19)
                            Case 5
                                'DataGridView5.Rows.Add(SITIO, MODO, b6 + "/" + b7 + "/" + b8, b9 + ":" + b10 + ":" + b11, b12 + b13 + b14 + b15 + b16, b17, ESTADO, b18 + "%", b19)
                            Case 6
                                'DataGridView6.Rows.Add(SITIO, MODO, b6 + "/" + b7 + "/" + b8, b9 + ":" + b10 + ":" + b11, b12 + b13 + b14 + b15 + b16, b17, ESTADO, b18 + "%", b19)
                            Case 7
                                'DataGridView7.Rows.Add(SITIO, MODO, b6 + "/" + b7 + "/" + b8, b9 + ":" + b10 + ":" + b11, b12 + b13 + b14 + b15 + b16, b17, ESTADO, b18 + "%", b19)
                            Case 8
                                'DataGridView8.Rows.Add(SITIO, MODO, b6 + "/" + b7 + "/" + b8, b9 + ":" + b10 + ":" + b11, b12 + b13 + b14 + b15 + b16, b17, ESTADO, b18 + "%", b19)
                            Case 9
                                'DataGridView9.Rows.Add(SITIO, MODO, b6 + "/" + b7 + "/" + b8, b9 + ":" + b10 + ":" + b11, b12 + b13 + b14 + b15 + b16, b17, ESTADO, b18 + "%", b19)
                            Case 10
                                'DataGridView10.Rows.Add(SITIO, MODO, b6 + "/" + b7 + "/" + b8, b9 + ":" + b10 + ":" + b11, b12 + b13 + b14 + b15 + b16, b17, ESTADO, b18 + "%", b19)
                            Case 11
                                'DataGridView11.Rows.Add(SITIO, MODO, b6 + "/" + b7 + "/" + b8, b9 + ":" + b10 + ":" + b11, b12 + b13 + b14 + b15 + b16, b17, ESTADO, b18 + "%", b19)
                            Case 12
                                'DataGridView12.Rows.Add(SITIO, MODO, b6 + "/" + b7 + "/" + b8, b9 + ":" + b10 + ":" + b11, b12 + b13 + b14 + b15 + b16, b17, ESTADO, b18 + "%", b19)
                            Case 13
                                'DataGridView13.Rows.Add(SITIO, MODO, b6 + "/" + b7 + "/" + b8, b9 + ":" + b10 + ":" + b11, b12 + b13 + b14 + b15 + b16, b17, ESTADO, b18 + "%", b19)
                            Case 14
                                'DataGridView14.Rows.Add(SITIO, MODO, b6 + "/" + b7 + "/" + b8, b9 + ":" + b10 + ":" + b11, b12 + b13 + b14 + b15 + b16, b17, ESTADO, b18 + "%", b19)
                            Case 15
                                'DataGridView15.Rows.Add(SITIO, MODO, b6 + "/" + b7 + "/" + b8, b9 + ":" + b10 + ":" + b11, b12 + b13 + b14 + b15 + b16, b17, ESTADO, b18 + "%", b19)
                            Case 16
                                'DataGridView16.Rows.Add(SITIO, MODO, b6 + "/" + b7 + "/" + b8, b9 + ":" + b10 + ":" + b11, b12 + b13 + b14 + b15 + b16, b17, ESTADO, b18 + "%", b19)
                            Case 17
                                'DataGridView17.Rows.Add(SITIO, MODO, b6 + "/" + b7 + "/" + b8, b9 + ":" + b10 + ":" + b11, b12 + b13 + b14 + b15 + b16, b17, ESTADO, b18 + "%", b19)
                            Case 18
                                'DataGridView18.Rows.Add(SITIO, MODO, b6 + "/" + b7 + "/" + b8, b9 + ":" + b10 + ":" + b11, b12 + b13 + b14 + b15 + b16, b17, ESTADO, b18 + "%", b19)
                            Case 19
                                'DataGridView19.Rows.Add(SITIO, MODO, b6 + "/" + b7 + "/" + b8, b9 + ":" + b10 + ":" + b11, b12 + b13 + b14 + b15 + b16, b17, ESTADO, b18 + "%", b19)
                            Case 20
                                'DataGridView20.Rows.Add(SITIO, MODO, b6 + "/" + b7 + "/" + b8, b9 + ":" + b10 + ":" + b11, b12 + b13 + b14 + b15 + b16, b17, ESTADO, b18 + "%", b19)
                            Case Else
                                MessageBox.Show("DATOS NO REGISTRADOS")
                        End Select

                        'TabControl1.SelectedIndex = IN1 ' visualizo el furmulario con la tabla de los datos entrantes

                        For i = 0 To 17
                            JASOMATRIZ(k5, i) = ""
                        Next i

                        If k5 >= 900 Then
                            k5 = 0
                        End If

                        If K10 > 38 Then ' borrar cada 38 registros los textbox de visualizacion de datos
                            K10 = 0
                            TXTSINCRO.Clear()
                        End If

                        TXTSINCRO.Text += a0 + a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10 + a11 + a12 + a13 + a14 + a15 + a16 & vbCrLf

        End Sub

                                  
    sábado, 4 de julio de 2015 17:51