CODIGO DE BARRAS
bOM DIA A TODOS, ESTOU COM PROBLEMA ALGUEM PODE ME AJUDAR, COM ESTE CODIGO ABAIXO E GERO CODIGO DE BARRAS DE BOLETO BANCARIO EM UM RELATORIO DO ACCESS, MAS ESTOU QUERENDO MUDAR PARA UM DATAREPORT DO VB6.0 DE QUE FORMA EU POSSO USAR ESTE CODIGO ABAIXO DENTRO DO CODIGO DO DATAREPORT? ALGUEM PODE ME AJUDAR?
Function barcode(anycode)
Dim db As Database, tbllookup As Recordset
Dim nbar, wbar, ibar, startx, starty, depth, newposn As Single
Dim numero As Integer
Dim countx, countz, countr As Single
Dim getstr, exstr As String
Dim scanstr, onechr, num_scanstr As String
Dim colour As Long
Dim rpt As Report
Set db = CurrentDb()
Set rpt = Reports![boleto_Itau_C71]
[ô][ô]Stop
DoCmd.Maximize
startx = 270 [ô][ô] Coordena o Codigo na HORIZONTAL(deitado)
starty = 15180 [ô][ô] Coordena o Codigo na VERTICAL(em pe) ate 15000(para A4)
nbar = 17 [ô][ô] 14 [ô][ô] Dimensao das Barras
wbar = 41 [ô][ô] 30 [ô][ô] Largura da Barra Grossa
ibar = 35 [ô][ô] 20 [ô][ô] Largura da Barra Fina
depth = 700 [ô][ô] 450 [ô][ô] Altura da Barra
newposn = startx [ô][ô] Posiciona as Barras
colour = 16777215 [ô][ô] Define a Cor para Iniciar(esta e Branca)
Set tbllookup = db.OpenRecordset([Ô]tab_risco[Ô])
getstr = anycode
extstr = getstr
tbllookup.index = [Ô]character[Ô]
numero = 1
[ô][ô]------Aqui e Delimitador do Inicio do Codigo de Barras--------------------------
colour = 0
rpt.Line (newposn, starty)-Step(nbar, depth), colour, BF
newposn = newposn + nbar
colour = 16777215
rpt.Line (newposn, starty)-Step(nbar, depth), colour, BF
newposn = newposn + nbar
colour = 0
rpt.Line (newposn, starty)-Step(nbar, depth), colour, BF
newposn = newposn + nbar
colour = 16777215
rpt.Line (newposn, starty)-Step(nbar, depth), colour, BF
newposn = newposn + nbar
[ô][ô]------Aqui e o Final do Delimitador do Inicio do Codigo de Barras---------------
[ô][ô]------Aqui Inicia o Loop para divisao dos 44 caracteres em sequencia de 2 de 5 Intercalado
[ô][ô]------e busca a representação grafica na tabela (tab_risco)
For countx = 1 To (Len(extstr) / 2)
tbllookup.Seek [Ô]=[Ô], Mid$(extstr, numero, 2)
numero = numero + 2
If tbllookup.nomatch Then
[ô][ô] --Se a (tab_risco) estiver vazia, sa esta mensagem, mas mesmo assim continua
MsgBox ([Ô]Campo contem caracter não suportado por 2 de 5[Ô])
rpt.Line (startx, starty)-Step(depth, depth), 155, BF
Else
num_scanstr = tbllookup![character]
scanstr = tbllookup![pattern]
For countz = 1 To 10
onechr = Mid$(scanstr, countz, 1)
If colour = 16777215 Then [ô][ô]-- Esta cor e Branca
colour = 0 [ô][ô]-- Esta cor e Preta
Else
colour = 16777215
End If
Select Case onechr [ô][ô]-- Aqui Monta os Riscos
Case [Ô]L[Ô] [ô][ô]-- Este e o Risco Grosso
rpt.Line (newposn, starty)-Step(wbar, depth), colour, BF
newposn = newposn + wbar
Case [Ô]S[Ô] [ô][ô]-- Este e o Risco Fino
rpt.Line (newposn, starty)-Step(nbar, depth), colour, BF
newposn = newposn + nbar
Case Else [ô][ô]-- Aqui sai se a Tabela que representa os riscos fino/grosso
[ô][ô]-- estiver errado -- L/S
MsgBox [Ô]Erro@[Ô] & [Ô]@- Um código incorreto foi digitado na Tabela 'Barra'[Ô] & Chr(13) & Chr(13) _
& [Ô]- Verifique se o campo Pattern nao foi alterado[Ô], vbCritical
rpt.Line (startx, starty)-Step(depth, depth), 8388608, BF
End Select
Next countz
End If
Next countx
[ô][ô]------Aqui e Delimitador do Final do Codigo de Barras--------------------------
colour = 16777215
newposn = newposn - nbar
rpt.Line (newposn, starty)-Step(nbar, depth), colour, BF
newposn = newposn + nbar
colour = 0
rpt.Line (newposn, starty)-Step(wbar, depth), colour, BF
newposn = newposn + wbar
colour = 16777215
rpt.Line (newposn, starty)-Step(nbar, depth), colour, BF
newposn = newposn + nbar
colour = 0
rpt.Line (newposn, starty)-Step(nbar, depth), colour, BF
newposn = newposn + nbar
tbllookup.Close
End Function
Function barcode(anycode)
Dim db As Database, tbllookup As Recordset
Dim nbar, wbar, ibar, startx, starty, depth, newposn As Single
Dim numero As Integer
Dim countx, countz, countr As Single
Dim getstr, exstr As String
Dim scanstr, onechr, num_scanstr As String
Dim colour As Long
Dim rpt As Report
Set db = CurrentDb()
Set rpt = Reports![boleto_Itau_C71]
[ô][ô]Stop
DoCmd.Maximize
startx = 270 [ô][ô] Coordena o Codigo na HORIZONTAL(deitado)
starty = 15180 [ô][ô] Coordena o Codigo na VERTICAL(em pe) ate 15000(para A4)
nbar = 17 [ô][ô] 14 [ô][ô] Dimensao das Barras
wbar = 41 [ô][ô] 30 [ô][ô] Largura da Barra Grossa
ibar = 35 [ô][ô] 20 [ô][ô] Largura da Barra Fina
depth = 700 [ô][ô] 450 [ô][ô] Altura da Barra
newposn = startx [ô][ô] Posiciona as Barras
colour = 16777215 [ô][ô] Define a Cor para Iniciar(esta e Branca)
Set tbllookup = db.OpenRecordset([Ô]tab_risco[Ô])
getstr = anycode
extstr = getstr
tbllookup.index = [Ô]character[Ô]
numero = 1
[ô][ô]------Aqui e Delimitador do Inicio do Codigo de Barras--------------------------
colour = 0
rpt.Line (newposn, starty)-Step(nbar, depth), colour, BF
newposn = newposn + nbar
colour = 16777215
rpt.Line (newposn, starty)-Step(nbar, depth), colour, BF
newposn = newposn + nbar
colour = 0
rpt.Line (newposn, starty)-Step(nbar, depth), colour, BF
newposn = newposn + nbar
colour = 16777215
rpt.Line (newposn, starty)-Step(nbar, depth), colour, BF
newposn = newposn + nbar
[ô][ô]------Aqui e o Final do Delimitador do Inicio do Codigo de Barras---------------
[ô][ô]------Aqui Inicia o Loop para divisao dos 44 caracteres em sequencia de 2 de 5 Intercalado
[ô][ô]------e busca a representação grafica na tabela (tab_risco)
For countx = 1 To (Len(extstr) / 2)
tbllookup.Seek [Ô]=[Ô], Mid$(extstr, numero, 2)
numero = numero + 2
If tbllookup.nomatch Then
[ô][ô] --Se a (tab_risco) estiver vazia, sa esta mensagem, mas mesmo assim continua
MsgBox ([Ô]Campo contem caracter não suportado por 2 de 5[Ô])
rpt.Line (startx, starty)-Step(depth, depth), 155, BF
Else
num_scanstr = tbllookup![character]
scanstr = tbllookup![pattern]
For countz = 1 To 10
onechr = Mid$(scanstr, countz, 1)
If colour = 16777215 Then [ô][ô]-- Esta cor e Branca
colour = 0 [ô][ô]-- Esta cor e Preta
Else
colour = 16777215
End If
Select Case onechr [ô][ô]-- Aqui Monta os Riscos
Case [Ô]L[Ô] [ô][ô]-- Este e o Risco Grosso
rpt.Line (newposn, starty)-Step(wbar, depth), colour, BF
newposn = newposn + wbar
Case [Ô]S[Ô] [ô][ô]-- Este e o Risco Fino
rpt.Line (newposn, starty)-Step(nbar, depth), colour, BF
newposn = newposn + nbar
Case Else [ô][ô]-- Aqui sai se a Tabela que representa os riscos fino/grosso
[ô][ô]-- estiver errado -- L/S
MsgBox [Ô]Erro@[Ô] & [Ô]@- Um código incorreto foi digitado na Tabela 'Barra'[Ô] & Chr(13) & Chr(13) _
& [Ô]- Verifique se o campo Pattern nao foi alterado[Ô], vbCritical
rpt.Line (startx, starty)-Step(depth, depth), 8388608, BF
End Select
Next countz
End If
Next countx
[ô][ô]------Aqui e Delimitador do Final do Codigo de Barras--------------------------
colour = 16777215
newposn = newposn - nbar
rpt.Line (newposn, starty)-Step(nbar, depth), colour, BF
newposn = newposn + nbar
colour = 0
rpt.Line (newposn, starty)-Step(wbar, depth), colour, BF
newposn = newposn + wbar
colour = 16777215
rpt.Line (newposn, starty)-Step(nbar, depth), colour, BF
newposn = newposn + nbar
colour = 0
rpt.Line (newposn, starty)-Step(nbar, depth), colour, BF
newposn = newposn + nbar
tbllookup.Close
End Function
Amigo, neste site tem algo que faz exatamente o que você está querendo:
http://cursoexcelvba.com.br/produto/Gerar-Codigo-de-Barras---K-Lux-Curso-de-Excel/70/
http://cursoexcelvba.com.br/produto/Gerar-Codigo-de-Barras---K-Lux-Curso-de-Excel/70/
Tópico encerrado , respostas não são mais permitidas