FLEXGRID MYSQL
Prezados(as), boa noite
Estou precisando muito de ajuda, trabalhei com VB a uns 7 anos atras e esqueci de muita coisa. Seguinte :
Tenho um sistema que gera as Tags Rfid em um flexgrid, porem gostaria que assim que a flexgrid fosse populada automaticamente fosse gravado em uma tabela em um banco mysql e nao estou sabendo fazer.
TABELAS:
ITEM: As peças e instrumentos cirúrgicos
REGISTRO: Tabela para salvar o lote registrado
REGISTRO_ITEM: Tabela de relacionamento entre o registro e os itens a serem registrados
ACONDICIONAMENTO: Tabela de relacionamento de item com item para determinar os instrumentos (um item) que pertencem ao acondicionamento (outro item)
LOG: Tabela de logs de leitura
Os chips devem ser cadastrados na tabela ITEM. O campo descrição pode ser nulo para preenchimento posterior.
O programa do leitor deve salvar o registro de cada chip encontrado na tabela LOG.
Voces podem me ajudar?.
Grato
Estou precisando muito de ajuda, trabalhei com VB a uns 7 anos atras e esqueci de muita coisa. Seguinte :
Tenho um sistema que gera as Tags Rfid em um flexgrid, porem gostaria que assim que a flexgrid fosse populada automaticamente fosse gravado em uma tabela em um banco mysql e nao estou sabendo fazer.
TABELAS:
ITEM: As peças e instrumentos cirúrgicos
REGISTRO: Tabela para salvar o lote registrado
REGISTRO_ITEM: Tabela de relacionamento entre o registro e os itens a serem registrados
ACONDICIONAMENTO: Tabela de relacionamento de item com item para determinar os instrumentos (um item) que pertencem ao acondicionamento (outro item)
LOG: Tabela de logs de leitura
Os chips devem ser cadastrados na tabela ITEM. O campo descrição pode ser nulo para preenchimento posterior.
O programa do leitor deve salvar o registro de cada chip encontrado na tabela LOG.
Voces podem me ajudar?.
Grato
Se o Flexgrid for preenchido apartir da primeira coluna e segunda coluna fica asssim.
Private Sub Command17_Click()
Dim f As Integer
With MSFlexGrid1
For f = 1 To .Rows - 1
[ô]Primeira coluna.
sSql = [Ô]INSERT INTO Teste(Cod,Nome,Fone) Values ([ô][Ô] & .TextMatrix(f, 0) & [Ô][ô],[ô][Ô] & .TextMatrix(f, 1) & [Ô][ô],[ô][Ô] & .TextMatrix(f, 2) & [Ô][ô])[Ô]
[ô]Segunda coluna
sSql = [Ô]INSERT INTO Teste(Cod,Nome,Fone) Values ([ô][Ô] & .TextMatrix(f, 1) & [Ô][ô],[ô][Ô] & .TextMatrix(f, 2) & [Ô][ô],[ô][Ô] & .TextMatrix(f, 3) & [Ô][ô])[Ô]
cn.Execute (sSql)
Next f
End With
End Sub
Feito com Mysql.
Private Sub Command17_Click()
Dim f As Integer
With MSFlexGrid1
For f = 1 To .Rows - 1
[ô]Primeira coluna.
sSql = [Ô]INSERT INTO Teste(Cod,Nome,Fone) Values ([ô][Ô] & .TextMatrix(f, 0) & [Ô][ô],[ô][Ô] & .TextMatrix(f, 1) & [Ô][ô],[ô][Ô] & .TextMatrix(f, 2) & [Ô][ô])[Ô]
[ô]Segunda coluna
sSql = [Ô]INSERT INTO Teste(Cod,Nome,Fone) Values ([ô][Ô] & .TextMatrix(f, 1) & [Ô][ô],[ô][Ô] & .TextMatrix(f, 2) & [Ô][ô],[ô][Ô] & .TextMatrix(f, 3) & [Ô][ô])[Ô]
cn.Execute (sSql)
Next f
End With
End Sub
Feito com Mysql.
colega facilita se você postar como popula a flexgrid, pois a partir dai poderÃamos citar exemplos.
Option Explicit
[ô](AlienRFID2.tlb)
[ô]IPAddress + Command port.
Dim WithEvents Reader As clsReader
Dim Settings As ReaderInfo
Dim msTagList As String
Dim mbAuto As Boolean
Dim mbClosing As Boolean
Private Sub btnGetTags_Click()
Call GetTags
Call ParseTagList
[ô]myGrid.DataSource = conectaMysql.Recordset.Update
[ô] Set myGrid.DataSource = dg.AddNewMode = dbgAddNewCurrent
Dim i As Variant
i = 1
If myGrid.TextMatrix(1, 1) = [Ô][Ô] Then MsgBox [Ô]Nenhum dado[Ô], vbCritical
[ô]Exit Sub
[ô][ô][ô] Exportar o conteúdo da grade para um arquivo .CSV
Open [Ô]c:\Tags.csv[Ô] For Output As #1
For i = 0 To myGrid.Rows - 1
Print #1, myGrid.TextMatrix(i, 0) & [Ô];[Ô];
Print #1, myGrid.TextMatrix(i, 1) & [Ô];[Ô];
Print #1, myGrid.TextMatrix(i, 2) & [Ô];[Ô];
Print #1, myGrid.TextMatrix(i, 3)
[ô] Print #1, myGrid.TextMatrix(i, 4)
Next i
Close #1
[ô]MsgBox [Ô]A exportação foi concluÃda com êxito![Ô], , [Ô]Programação On-Line[Ô]
[ô]Shell [Ô]cmd.exe LOAD DATA LOCAL INFILE [ô]c: ags.csv[ô] REPLACE INTO TABLE 'telao'.'base' FIELDS TERMINATED BY [ô],[ô] OPTIONALLY ENCLOSED BY [ô][Ô] [ô] ESCAPED BY [ô][Ô][ô] LINES TERMINATED BY [ô]
[ô] IGNORE 1 LINES ('COD_SS', 'RESUMO', 'ESCOPO', 'MOTIVO_STATUS', 'NMCLUSTER', 'DATA_SOLICITACAO', 'LOGIN_TRIAGEM', 'RESULTADO', 'ARD', 'SHELF', 'NMREGIONAL', 'HORA_APURACAO');
End Sub
Private Sub btnParse_Click()
[ô] conectaMysql.Recordset.AddNew
Call ParseTagList
[ô]myGrid.DataSource = conectaMysql.Recordset.Update
[ô] Set myGrid.DataSource = dg.AddNewMode = dbgAddNewCurrent
Dim i As Variant
i = 1
If myGrid.TextMatrix(1, 1) = [Ô][Ô] Then Exit Sub
[ô][ô][ô] Exportar o conteúdo da grade para um arquivo .CSV
Open [Ô]d:\Tags.csv[Ô] For Output As #1
For i = 0 To myGrid.Rows - 1
Print #1, myGrid.TextMatrix(i, 0) & [Ô];[Ô];
Print #1, myGrid.TextMatrix(i, 1) & [Ô];[Ô];
Print #1, myGrid.TextMatrix(i, 2) & [Ô];[Ô];
Print #1, myGrid.TextMatrix(i, 3)
[ô] Print #1, myGrid.TextMatrix(i, 4)
Next i
Close #1
MsgBox [Ô]A exportação foi concluÃda com êxito![Ô], , [Ô]Programação On-Line[Ô]
End Sub
Private Sub Command1_Click()
conectaMysql.Recordset.Update
End Sub
Private Sub Form_Load()
If Not mbClosing Then
Set Settings = New ReaderInfo
[ô]
With Settings
[ô] Conexao da rede
.InterfaceType = ComInterface_enumTCPIP
.ipaddress = [Ô]192.168.1.100[Ô]
.TelnetPort = 23
[ô] serial
[ô] .InterfaceType = ComInterface_enumSerial
[ô] .ComPort = 1
End With
Set Reader = New clsReader
Reader.ComTimeOutInterval = 7000
Reader.WriteSettings Settings
Debug.Print Reader.Connect
If Settings.InterfaceType = ComInterface_enumTCPIP Then
Debug.Print Reader.Login([Ô]alien[Ô], [Ô]password[Ô])
End If
Me.Caption = [Ô]Conectado = [Ô] & Reader.IsConnected
If Not Reader.IsConnected Then
optAuto.Enabled = False
Else
Reader.AutoMode = [Ô]On[Ô]
Reader.TagListFormat = [Ô]Text[Ô]
End If
End If
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
optManual.Value = True
optManual_Click
If Not Reader Is Nothing Then
If Reader.IsConnected Then Reader.AutoMode = [Ô]Off[Ô]
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
mbClosing = True
If Not Reader Is Nothing Then
Reader.Disconnect
Set Reader = Nothing
End If
DoEvents
End Sub
Private Sub myGrid_Click()
[ô][ô][ô] Validar se a grade está carregada
End Sub
Private Sub optAuto_Click()
If Not Reader Is Nothing And Not mbClosing Then
mbAuto = optAuto.Value
If mbAuto Then
btnGetTags.Enabled = False
btnParse.Enabled = False
End If
While mbAuto And Not mbClosing
Call GetTags
Call ParseTagList
DoEvents
Wend
If Not mbClosing Then
btnGetTags.Enabled = True
btnParse.Enabled = True
End If
End If
End Sub
Private Sub optManual_Click()
mbAuto = Not optManual.Value
End Sub
Private Sub Reader_MessageReceived(ByVal data As String)
If Not mbClosing Then
Text1.Text = Text1.Text & data
End If
End Sub
Private Sub GetTags()
If Not mbClosing Then
Screen.MousePointer = vbHourglass
If Reader.IsConnected Then
msTagList = Reader.TagList
Text1.Text = msTagList
[ô]aqui dallas
Else
MsgBox [Ô]Não conectado[Ô]
End If
DoEvents
Screen.MousePointer = vbDefault
End If
End Sub
Private Sub ParseTagList()
Dim t() As TagInfo
Dim i As Integer
Dim bParseResult As Boolean
On Error GoTo errHandler
If Not mbClosing Then
myGrid.Rows = 1
Screen.MousePointer = vbHourglass
bParseResult = Reader.ParseTagList(msTagList, t)
If (bParseResult) Then
myGrid.FixedCols = 0
myGrid.FormatString = [Ô]^TagID |^LastSeenTime |^ReadCount |^Antenna [Ô]
For i = 0 To UBound(t)
myGrid.AddItem (t(i).TagID & vbTab & _
t(i).LastSeenTime & vbTab & _
t(i).ReadCount & vbTab & _
t(i).Antenna)
Next
myGrid.ColWidth(-1) = myGrid.Width / 4 - 30
lblStatus.Caption = i & [Ô] tags encontrado(s).[Ô]
[ô]Inserir o insert para passar os dados para a tabela aqui
Else
lblStatus.Caption = [Ô]Não foi possÃvel passar a lista.[Ô]
End If
myGrid.Refresh
Screen.MousePointer = vbDefault
End If
Exit Sub
errHandler:
Debug.Print Err.Description
Debug.Print msTagList
Debug.Print
Screen.MousePointer = vbDefault
End Sub
Obs : Tem uma parte do codigo que mandei gerar um arquivo CSV porque nao consegui enviar os dados para o mysql, pode descartar ok. Segue anexo o codigo
[ô](AlienRFID2.tlb)
[ô]IPAddress + Command port.
Dim WithEvents Reader As clsReader
Dim Settings As ReaderInfo
Dim msTagList As String
Dim mbAuto As Boolean
Dim mbClosing As Boolean
Private Sub btnGetTags_Click()
Call GetTags
Call ParseTagList
[ô]myGrid.DataSource = conectaMysql.Recordset.Update
[ô] Set myGrid.DataSource = dg.AddNewMode = dbgAddNewCurrent
Dim i As Variant
i = 1
If myGrid.TextMatrix(1, 1) = [Ô][Ô] Then MsgBox [Ô]Nenhum dado[Ô], vbCritical
[ô]Exit Sub
[ô][ô][ô] Exportar o conteúdo da grade para um arquivo .CSV
Open [Ô]c:\Tags.csv[Ô] For Output As #1
For i = 0 To myGrid.Rows - 1
Print #1, myGrid.TextMatrix(i, 0) & [Ô];[Ô];
Print #1, myGrid.TextMatrix(i, 1) & [Ô];[Ô];
Print #1, myGrid.TextMatrix(i, 2) & [Ô];[Ô];
Print #1, myGrid.TextMatrix(i, 3)
[ô] Print #1, myGrid.TextMatrix(i, 4)
Next i
Close #1
[ô]MsgBox [Ô]A exportação foi concluÃda com êxito![Ô], , [Ô]Programação On-Line[Ô]
[ô]Shell [Ô]cmd.exe LOAD DATA LOCAL INFILE [ô]c: ags.csv[ô] REPLACE INTO TABLE 'telao'.'base' FIELDS TERMINATED BY [ô],[ô] OPTIONALLY ENCLOSED BY [ô][Ô] [ô] ESCAPED BY [ô][Ô][ô] LINES TERMINATED BY [ô]
[ô] IGNORE 1 LINES ('COD_SS', 'RESUMO', 'ESCOPO', 'MOTIVO_STATUS', 'NMCLUSTER', 'DATA_SOLICITACAO', 'LOGIN_TRIAGEM', 'RESULTADO', 'ARD', 'SHELF', 'NMREGIONAL', 'HORA_APURACAO');
End Sub
Private Sub btnParse_Click()
[ô] conectaMysql.Recordset.AddNew
Call ParseTagList
[ô]myGrid.DataSource = conectaMysql.Recordset.Update
[ô] Set myGrid.DataSource = dg.AddNewMode = dbgAddNewCurrent
Dim i As Variant
i = 1
If myGrid.TextMatrix(1, 1) = [Ô][Ô] Then Exit Sub
[ô][ô][ô] Exportar o conteúdo da grade para um arquivo .CSV
Open [Ô]d:\Tags.csv[Ô] For Output As #1
For i = 0 To myGrid.Rows - 1
Print #1, myGrid.TextMatrix(i, 0) & [Ô];[Ô];
Print #1, myGrid.TextMatrix(i, 1) & [Ô];[Ô];
Print #1, myGrid.TextMatrix(i, 2) & [Ô];[Ô];
Print #1, myGrid.TextMatrix(i, 3)
[ô] Print #1, myGrid.TextMatrix(i, 4)
Next i
Close #1
MsgBox [Ô]A exportação foi concluÃda com êxito![Ô], , [Ô]Programação On-Line[Ô]
End Sub
Private Sub Command1_Click()
conectaMysql.Recordset.Update
End Sub
Private Sub Form_Load()
If Not mbClosing Then
Set Settings = New ReaderInfo
[ô]
With Settings
[ô] Conexao da rede
.InterfaceType = ComInterface_enumTCPIP
.ipaddress = [Ô]192.168.1.100[Ô]
.TelnetPort = 23
[ô] serial
[ô] .InterfaceType = ComInterface_enumSerial
[ô] .ComPort = 1
End With
Set Reader = New clsReader
Reader.ComTimeOutInterval = 7000
Reader.WriteSettings Settings
Debug.Print Reader.Connect
If Settings.InterfaceType = ComInterface_enumTCPIP Then
Debug.Print Reader.Login([Ô]alien[Ô], [Ô]password[Ô])
End If
Me.Caption = [Ô]Conectado = [Ô] & Reader.IsConnected
If Not Reader.IsConnected Then
optAuto.Enabled = False
Else
Reader.AutoMode = [Ô]On[Ô]
Reader.TagListFormat = [Ô]Text[Ô]
End If
End If
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
optManual.Value = True
optManual_Click
If Not Reader Is Nothing Then
If Reader.IsConnected Then Reader.AutoMode = [Ô]Off[Ô]
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
mbClosing = True
If Not Reader Is Nothing Then
Reader.Disconnect
Set Reader = Nothing
End If
DoEvents
End Sub
Private Sub myGrid_Click()
[ô][ô][ô] Validar se a grade está carregada
End Sub
Private Sub optAuto_Click()
If Not Reader Is Nothing And Not mbClosing Then
mbAuto = optAuto.Value
If mbAuto Then
btnGetTags.Enabled = False
btnParse.Enabled = False
End If
While mbAuto And Not mbClosing
Call GetTags
Call ParseTagList
DoEvents
Wend
If Not mbClosing Then
btnGetTags.Enabled = True
btnParse.Enabled = True
End If
End If
End Sub
Private Sub optManual_Click()
mbAuto = Not optManual.Value
End Sub
Private Sub Reader_MessageReceived(ByVal data As String)
If Not mbClosing Then
Text1.Text = Text1.Text & data
End If
End Sub
Private Sub GetTags()
If Not mbClosing Then
Screen.MousePointer = vbHourglass
If Reader.IsConnected Then
msTagList = Reader.TagList
Text1.Text = msTagList
[ô]aqui dallas
Else
MsgBox [Ô]Não conectado[Ô]
End If
DoEvents
Screen.MousePointer = vbDefault
End If
End Sub
Private Sub ParseTagList()
Dim t() As TagInfo
Dim i As Integer
Dim bParseResult As Boolean
On Error GoTo errHandler
If Not mbClosing Then
myGrid.Rows = 1
Screen.MousePointer = vbHourglass
bParseResult = Reader.ParseTagList(msTagList, t)
If (bParseResult) Then
myGrid.FixedCols = 0
myGrid.FormatString = [Ô]^TagID |^LastSeenTime |^ReadCount |^Antenna [Ô]
For i = 0 To UBound(t)
myGrid.AddItem (t(i).TagID & vbTab & _
t(i).LastSeenTime & vbTab & _
t(i).ReadCount & vbTab & _
t(i).Antenna)
Next
myGrid.ColWidth(-1) = myGrid.Width / 4 - 30
lblStatus.Caption = i & [Ô] tags encontrado(s).[Ô]
[ô]Inserir o insert para passar os dados para a tabela aqui
Else
lblStatus.Caption = [Ô]Não foi possÃvel passar a lista.[Ô]
End If
myGrid.Refresh
Screen.MousePointer = vbDefault
End If
Exit Sub
errHandler:
Debug.Print Err.Description
Debug.Print msTagList
Debug.Print
Screen.MousePointer = vbDefault
End Sub
Obs : Tem uma parte do codigo que mandei gerar um arquivo CSV porque nao consegui enviar os dados para o mysql, pode descartar ok. Segue anexo o codigo
Anexo segue o documento, preciso que o conteudo do flexgrid seja gravado na tabela log.
Segue em anexo o codigo, precisa renomear para .RAR ok.
Então colega bom dei uma olhada no seu código e percebi que você preenche o mesmo com dados do MySQL, depois gera um arquivo de log, porém não entendi o que você pretende fazer agora, pois se o flex foi prechido com dados,e me parece qiue estes dados não são atualizados, então porque enviar de volta pro mysql.
por favor tente ser mais claro, de preferência explique em que parte do código deseja fazer esta adaptação, mas somente a parte do código que interessar.
por favor tente ser mais claro, de preferência explique em que parte do código deseja fazer esta adaptação, mas somente a parte do código que interessar.
Nao, na verdade eu colei um codigo de mysql mas nao esta funcionando.
Assim :
Este programa serve para fazer a leitura das Tags RFID mas nao tinha conexao com banco de dados a parte de exportar pra um arquivo eu fiz pra quebrar um galho mas o que eu gostaria era o seguinte :
O programa le os dados tags com o leitor RFID e cai na flexgrid - Isto está ok
No mesmo botao que faz a leitura, gostaria que ele ao ler e preencher a flexgrid automaticamente inputar os dados na tabela log.
Verifique que esta comentado o codigo que preciso que leia as Tags (funcionando) e depois colocar os dados que estao na flexgrid na tabela log do mysql(nao esta funcionando)
Option Explicit
[ô](AlienRFID2.tlb)
[ô]IPAddress + Command port.
Dim WithEvents Reader As clsReader
Dim Settings As ReaderInfo
Dim msTagList As String
Dim mbAuto As Boolean
Dim mbClosing As Boolean
Private Sub btnGetTags_Click()
Call GetTags
Call ParseTagList
Dim i As Variant
i = 1
If myGrid.TextMatrix(1, 1) = [Ô][Ô] Then MsgBox [Ô]Nenhum dado[Ô], vbCritical
[ô]Exit Sub
[ô] Aqui e que vem o codigo de conexao com mysql e a gravacao dos dados que foram capturados da flexgrid para a tabela log.
End Sub
Assim :
Este programa serve para fazer a leitura das Tags RFID mas nao tinha conexao com banco de dados a parte de exportar pra um arquivo eu fiz pra quebrar um galho mas o que eu gostaria era o seguinte :
O programa le os dados tags com o leitor RFID e cai na flexgrid - Isto está ok
No mesmo botao que faz a leitura, gostaria que ele ao ler e preencher a flexgrid automaticamente inputar os dados na tabela log.
Verifique que esta comentado o codigo que preciso que leia as Tags (funcionando) e depois colocar os dados que estao na flexgrid na tabela log do mysql(nao esta funcionando)
Option Explicit
[ô](AlienRFID2.tlb)
[ô]IPAddress + Command port.
Dim WithEvents Reader As clsReader
Dim Settings As ReaderInfo
Dim msTagList As String
Dim mbAuto As Boolean
Dim mbClosing As Boolean
Private Sub btnGetTags_Click()
Call GetTags
Call ParseTagList
Dim i As Variant
i = 1
If myGrid.TextMatrix(1, 1) = [Ô][Ô] Then MsgBox [Ô]Nenhum dado[Ô], vbCritical
[ô]Exit Sub
[ô] Aqui e que vem o codigo de conexao com mysql e a gravacao dos dados que foram capturados da flexgrid para a tabela log.
End Sub
Alguem pode me ajudar???
Faça seu login para responder