Okee, bedankt, dat heeft al wel geholpen. Ik kan nu in de tabel foto's toevoegen die in de database weergegeven worden. Nu wil ik alleen nog graag een knop in het formulier die een browserwindow opent waarmee je het plaatje (dus de locatie van het plaatje, niet het plaatje zelf) kunt toevoegen.
Ik heb intussen een site gevonden met code die ik heb gebruikt:
http://www.tek-tips.com/viewthread.cfm?qid=1289131&page=1
En ik heb het net werkend! Bedankt voor de tip!
Nu is er alleen nog het probleem om de labelprinter werkend te krijgen. Ik heb een database gevonden die iets dergelijks gebruikt en heb deze code gevonden en al een beetje aangepast met mijn formulieren etc:
Is er iemand die me kan helpen dit werkend te krijgen?
Het is de bedoeling om vondstkaartjes te printen met onder andere de gevonden locatie, diepte etc erop. Ook moet het mogelijk zijn vondstkaartjes meerdere keren uit te printen en om een popup box te krijgen met vanaf welk nummer er geprint moet worden t/m welk vondstnummer. Graag help!
Ik krijg nu nog de error: er zijn te weinig parameters. Het verwachte aantal is: 1
Private Sub cmdPrintKaartje_Click()
On Error GoTo Err_cmdPrintKaartje_Click
'ga eerst voor de zekerheid door de controle lussen
'is alles ingevuld ?
If IsNull(vondstnr) Or IsNull(categorie) Then
MsgBox "Not all required variables have been entered", vbInformation
KeepFocus = True
Exit Sub
End If
'If IsNull(Forms!vondst_s!put) Then
' MsgBox "This findnr is not yet added to table vondst_v", vbInformation
' Me.vondstnr.SetFocus
'Exit Sub
'End If
If IsNull(aantal) And IsNull(gewicht) Then
MsgBox "Enter the amount and/or the weight.", vbInformation
Me.aantal.SetFocus
' Exit Sub
End If
'If Me.optSE105 = True Then
'haal de projectnaam en projectcode even op uit de tabel project
'Dim dbPJ As Database 'dbFB is database fotoebstanden
'Dim rsPJ As DAO.Recordset 'rsFb is de recordset fotobestanden
Dim sqlPJ1 As String 'sql uitspraak 1
Dim sqlPJ2 As String 'sql uitspraak 2
Dim strProjectnaam As String 'de projectnaam wordt opgeslagen als string
Dim strProjectcode As String 'de projectcode wordt opgeslagen als string
Set dbPJ = CurrentDb() 'Open de huidige database
sqlPJ1 = "select PROJECT from PROJECT" 'sql: selecteer de projectnaam
sqlPJ2 = "select PROJ_CODE from PROJECT" 'sql: selecteer de project code
Set rsPJ = dbPJ.OpenRecordset(sqlPJ1) 'open nu echt de recordset
If rsPJ.EOF = False Then 'zolang er wat in de rs zit..
strProjectnaam = rsPJ("PROJECT") 'laadt de waarde in de variablele
Else 'zo niet
strProjectnaam = ""
MsgBox ("First enter the project name and project code (SIC) in the table project")
Exit Sub
End If
rsPJ.Close 'sluit de recordset
Set rsPJ = Nothing 'maak de recordset leeg
Set rsPJ = dbPJ.OpenRecordset(sqlPJ2) 'open nu echt de recordset
If rsPJ.EOF = False Then 'zolang er wat in de rs zit..
strProjectcode = rsPJ("PROJ_CODE") 'laadt de waarde in de variablele
Else 'zo niet
strProjectcode = ""
MsgBox ("First enter the project name and project code (SIC) in the table project")
Exit Sub
End If
rsPJ.Close 'sluit de recordset
Set rsPJ = Nothing 'maak de recordset leeg
'maak de combi string
Dim strProjectTitel As String
'strProjectTitel = strProjectnaam & " " & strProjectcode
'MsgBox strProjectTitel
'bepaal dan de overige variabelen
Dim strVondsnr As String
strVondstnr = Me.vondstnr
'MsgBox strVondstnr
Dim strCatdetail As String
strCatdetail = Me.categorie.Column(0)
'msgBox strCatdetail
Dim strCatABR As String
strCatABR = Me.categorie.Column(1)
'msgBox strCatABR
'Dim strPutnr As String
'If Not IsNull(Forms!vondst_s!context!put) Then
'strPutnr = Forms!vondst_s!context!put
'Else
'strPutnr = "-"
'End If
'MsgBox strPutnr
'Dim strVlaknr As String
'If Not IsNull(Forms!vondst_s!context!vlak) Then
'strVlaknr = Forms!vondst_s!context!vlak
'Else
'strVlaknr = "-"
'End If
'MsgBox strVlaknr
'Dim strVaknr As String
'If Not IsNull(Forms!vondst_s!context!vak) Then
'strVaknr = Forms!vondst_s!context!vak
'Else
'strVaknr = "-"
'End If
'MsgBox strVaknr
Dim strcoordinaatLO As String
If Not IsNull(Forms!vondst_s!coordinaatLO) Then
strcoordinaatLO = Forms!vondst_s!coordinaatLO
Else
strcoordinaatLO = "-"
End If
'MsgBox strcoordinaatLO
Dim strcoordinaatRB As String
If Not IsNull(Forms!vondst_s!coordinaatRB) Then
strcoordinaatRB = Forms!vondst_s!coordinaatRB
Else
strcoordinaatRB = "-"
End If
'MsgBox strcoordinaatRB
Dim strVullingnr As String
If Not IsNull(Forms!vondst_s!vulling) Then
strVullingnr = Forms!vondst_s!vulling
Else
strVullingnr = "-"
End If
'MsgBox strVullingnr
'Dim strSegmentnr As String
'If Not IsNull(Forms!vondst_s!context!segment) Then
'strSegmentnr = Forms!vondst_s!context!segment
'Else
'strSegmentnr = "-"
'End If
'MsgBox strSegmentnr
'msgBox strProjectnaam & "|" & strProjectcode & "|" & strVondstnr & "|" & strCatdetail & "|" & strCatABR & "|" & strPutnr & "|" & strVlaknr & "|" & strVaknr & "|" & strSpoornr & "|" & strVullingnr & "|" & strSegmentnr
'haal de comm variabelen uit de ini tabel
Dim strPCompoort As String 'weegschaal instelling
Dim strPBaudrate As String 'weegschaal instelling
Dim strPParity As String 'weegschaal instelling
Dim strPDatabits As String 'weegschaal instelling
Dim strPStopbit As String 'weegschaal instelling
Dim strPConnect As String 'weegschaal instelling
'en lees de waarden in
strPCompoort = Forms!vondst_s!wegen_printen_ini_subform!p_compoort
strPBaudrate = Forms!vondst_s!wegen_printen_ini_subform!p_baudrate
strPParity = Forms!vondst_s!wegen_printen_ini_subform!p_parity
strPDatabits = Forms!vondst_s!wegen_printen_ini_subform!p_databits
strPStopbit = Forms!vondst_s!wegen_printen_ini_subform!p_stopbit
strPConnect = strPBaudrate & "," & strPParity & "," & strPDatabits & "," & strPStopbit
'benader de commcontrol
MSComm2.CommPort = strPCompoort 'geef de compoort door aan het object MSComm2
' 19200 baud, no parity, 8 data, and 1 stop bit.
MSComm2.Settings = strPConnect 'geef de settings door aan het object MSComm2
MSComm2.InputLen = 0 ' Tell the control to read entire buffer when Input is used.
MSComm2.PortOpen = True ' Open de poort.
' verstuur het label als ZPL code naar de printer,...
MSComm2.Output = "^XA" 'zeg: dit is een label !
MSComm2.Output = "^LT-55" 'position de label top op minus 50 (vijftig omhoog)
MSComm2.Output = "^FO20,0" 'en ga naar
MSComm2.Output = "^GB900,40,40^FS" 'print een zwarte balk
MSComm2.Output = "^FO100,10" 'ga terug naar positie 100, 15
MSComm2.Output = "^AFN,20,10^FR^FD" 'print in font FN,hoogte 20, breedte 10, in wit (^FR ??) bepaalde data FD
MSComm2.Output = "Archol" 'de data
MSComm2.Output = "^FS" 'geen idee !!!
MSComm2.Output = "^FO500,10" 'verander de positie
MSComm2.Output = "^AFN,20,10^FR^FD" 'print in font FN met 20,10 in wit ^FR de volgende data:
MSComm2.Output = "Fac. Archeologie" 'de data
MSComm2.Output = "^FS" 'geen idee
MSComm2.Output = "^FO50,80" '75 naar echts, 100 naar onder
MSComm2.Output = "^AEN,10,10^FD" 'print in font AE (N)ormaal met hoogt ?? en lengte 40 de volgende data:
MSComm2.Output = strProjectnaam 'de data
MSComm2.Output = "^FS" 'geen idee
MSComm2.Output = "^FO70,300^AEN,30,10^FD" ' ga naar 80,400, font EN 30,10
MSComm2.Output = "Put"
MSComm2.Output = "^FS"
MSComm2.Output = "^FO190,300^AEN,30,10^FD" ' ga naar 80,400, font EN 30,10
MSComm2.Output = "Vlak"
MSComm2.Output = "^FS"
MSComm2.Output = "^FO310,300^AEN,30,10^FD" ' ga naar 80,400, font EN 30,10
MSComm2.Output = "Vak"
MSComm2.Output = "^FS"
MSComm2.Output = "^FO430,300^AEN,30,10^FD" ' ga naar 80,400, font EN 30,10
MSComm2.Output = "Spoor"
MSComm2.Output = "^FS"
MSComm2.Output = "^FO550,300^AEN,30,10^FD" ' ga naar 80,400, font EN 30,10
MSComm2.Output = "Vul."
MSComm2.Output = "^FS"
MSComm2.Output = "^FO670,300^AEN,30,10^FD" ' ga naar 80,400, font EN 30,10
MSComm2.Output = "Segm."
MSComm2.Output = "^FS"
MSComm2.Output = "^FO100,360^AEN,30,10^FD" ' vul het vlaknr in ga naar 80,400, font EN 30,10
MSComm2.Output = strPutnr
MSComm2.Output = "^FS"
MSComm2.Output = "^FO220,360^AEN,30,10^FD" ' vul het vlaknr in ga naar 80,400, font EN 30,10
MSComm2.Output = strVlaknr
MSComm2.Output = "^FS"
MSComm2.Output = "^FO340,360^AEN,30,10^FD" ' vul het vlaknr in ga naar 80,400, font EN 30,10
MSComm2.Output = strVaknr
MSComm2.Output = "^FS"
MSComm2.Output = "^FO430,360^AEN,30,10^FD" ' vul het spoornr in ga naar 80,400, font EN 30,10
MSComm2.Output = strSpoornr
MSComm2.Output = "^FS"
MSComm2.Output = "^FO580,360^AEN,30,10^FD" ' vul het vullingnr in ga naar 80,400, font EN 30,10
MSComm2.Output = strVullingnr
MSComm2.Output = "^FS"
MSComm2.Output = "^FO675,360^AEN,30,10^FD" ' vul het segmentnr in ga naar 80,400, font EN 30,10
MSComm2.Output = strSegmentnr
MSComm2.Output = "^FS"
MSComm2.Output = "^FO110,140" 'ga naar positie was 210
MSComm2.Output = "^AEN,10,30" 'gebruik font EN met hoogte,breedte 30
MSComm2.Output = "^BY3,3" 'verander de breedte ratio was 4,3
MSComm2.Output = "^BCN,120,Y,N,N" 'gebruik een hoogte van 130 voor het font BCN
MSComm2.Output = "^FD"
Dim strCombistring As String
Dim intTelkarakters As Integer
Dim intAftrekken As Integer
Dim intVnummer As Integer
intVnummer = Me.vondstnr
'MsgBox dblNummer
intTelkarakters = Len(Trim(intVnummer))
'MsgBox intTelkarakters
intAftrekken = (5 - intTelkarakters)
'MsgBox intAftrekken
strCombistring = "V" & Left("00000", intAftrekken) & intVnummer & strCatdetail
'MsgBox strCombistring
MSComm2.Output = strCombistring
'hierachter de abrcode printen
MSComm2.Output = "^FS"
MSComm2.Output = "^FO550,265^AEN,30,10^FD" ' ga naar 80,400, font EN 30,10
MSComm2.Output = "ABR:" & strCatABR
MSComm2.Output = "^FS"
'print sic
MSComm2.Output = "^FS"
MSComm2.Output = "^FO520,110^AEN,30,10^FD" ' ga naar 80,400, font EN 30,10
MSComm2.Output = "Sic:" & strProjectcode
MSComm2.Output = "^FS"
'putkader
MSComm2.Output = "^FO60,335" 'ga naar
MSComm2.Output = "^GB100,90,4^FS" 'print put een zwarte balk, ?? lang, ???hoog en met ?? lijndikte
'vlakkader
MSComm2.Output = "^FO180,335" 'ga naar
MSComm2.Output = "^GB100,90,4^FS" 'print vlak een zwarte balk, ?? lang, ???hoog en met ?? lijndikte
'vakkader
MSComm2.Output = "^FO300,335" 'ga naar
MSComm2.Output = "^GB100,90,4^FS" 'print vlak een zwarte balk, ?? lang, ???hoog en met ?? lijndikte
'spoorkader
MSComm2.Output = "^FO420,335" 'ga naar
MSComm2.Output = "^GB100,90,4^FS" 'print spoor een zwarte balk, ?? lang, ???hoog en met ?? lijndikte
'vullingkader
MSComm2.Output = "^FO540,335" 'ga naar
MSComm2.Output = "^GB100,90,4^FS" 'print vulling een zwarte balk, ?? lang, ???hoog en met ?? lijndikte
'segmentkader
MSComm2.Output = "^FO660,335" 'ga naar
MSComm2.Output = "^GB100,90,4^FS" 'print segment een zwarte balk, ?? lang, ???hoog en met ?? lijndikte
'zwarte lijn
MSComm2.Output = "^FO20,440"
MSComm2.Output = "^GB900,2,2^FS" 'print vulling een zwarte balk, ?? lang, ???hoog en met ?? lijndikte
MSComm2.Output = "^FO50,460"
MSComm2.Output = "^AEN,20,10^FD" ' ga naar 80,400, font EN 30,10
MSComm2.Output = "Archol, Postbus 9515, 2300 RA, Leiden"
MSComm2.Output = "^FS"
MSComm2.Output = "^XZ" 'einde label commando
MSComm2.PortOpen = False ' Sluit de seriele poort.
'Me.cmdVolgcat.SetFocus
Exit_cmdPrintKaartje_Click:
Exit Sub
Err_cmdPrintKaartje_Click:
MsgBox Err.Description
MsgBox "De printknop werk alleen indien u gebruikt maakt van de label-printer"
Resume Exit_cmdPrintKaartje_Click
End Sub