13. april 2005 - 11:01Der er
33 kommentarer og 1 løsning
søge i flere databaser
Hvordan får jeg noget bygget ind i min kode herunder, der gør at den søger i mere end tabellen ved 6? Hvordan laver man så den også søger i eks. 2, 3, 5, osv. ?
'Opbygger en dynamisk SQL streng strSQL = "SELECT * FROM 6 WHERE" strSQL = strSQL & " (VareNr LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (Tekst LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (Pris LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (Beskrivelse LIKE '%" & strKeyword & "%')"
jeg har bare en database ved navn database.mdb og der hedder taballerne i den numre, som, 2, 3, 5, og 6 osv. Ved godt det er en join forbindelse, men kan ikke finde ud af det :)
måske kan du bruge union når alle felter er ens og af samme type http://www.w3schools.com/sql/sql_union.asp altså: ------- strSQL = "SELECT * FROM 6 WHERE" strSQL = strSQL & " (VareNr LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (Tekst LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (Pris LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (Beskrivelse LIKE '%" & strKeyword & "%')" ------- strSQL1 = "SELECT * FROM 5 WHERE" strSQL1 = strSQL1 & " (VareNr LIKE '%" & strKeyword & "%')" strSQL1 = strSQL1 & " OR (Tekst LIKE '%" & strKeyword & "%')" strSQL1 = strSQL1 & " OR (Pris LIKE '%" & strKeyword & "%')" strSQL1 = strSQL1 & " OR (Beskrivelse LIKE '%" & strKeyword & "%')" ------- osv Bliver til nySql = strSQL UNION strSQL1
hmm det lyder fint, men får bare følgende fejl: Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.
/sog/search.asp, line 155
Efter jeg har skrevet den her kode: strSQL = "SELECT * FROM 5 WHERE" strSQL = strSQL1 & " (VareNr LIKE '%" & strKeyword & "%')" strSQL = strSQL1 & " OR (Tekst LIKE '%" & strKeyword & "%')" strSQL = strSQL1 & " OR (Pris LIKE '%" & strKeyword & "%')" strSQL = strSQL1 & " OR (Beskrivelse LIKE '%" & strKeyword & "%')"
strSQL1 = "SELECT * FROM 6 WHERE" strSQL1 = strSQL & " (VareNr LIKE '%" & strKeyword & "%')" strSQL1 = strSQL & " OR (Tekst LIKE '%" & strKeyword & "%')" strSQL1 = strSQL & " OR (Pris LIKE '%" & strKeyword & "%')" strSQL1 = strSQL & " OR (Beskrivelse LIKE '%" & strKeyword & "%')"
jeg kender ikke mere til det end jeg kan se på w3schools Så jeg ved desværre ikke umiddelbart hvad der sker hvis nogle felter er ens I deres eksempel henter de jo kun eet felt ud og skriver at hvis der er ens kommer det kun med een gang Men hvad der sker når du hiver fire felter ud må vi så se - med mindre en anden kommer og siger det. Ved ikke om de alle fire skal være ens eller om de skal være ens hver for sig Hvis det giver problemer kan du så benytte union all så tager den det hele
SELECT VareNr,Tekst,Pris,Beskrivelse FROM 3 WHERE (VareNr LIKE '%2227%') OR (Tekst LIKE '%2227%') OR (Pris LIKE '%2227%') OR (Beskrivelse LIKE '%2227%') UNION SELECT VareNr,Tekst,Pris,Beskrivelse FROM 6 WHERE (VareNr LIKE '%2227%') OR (Tekst LIKE '%2227%') OR (Pris LIKE '%2227%') OR (Beskrivelse LIKE '%2227%') Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
(SELECT VareNr,Tekst,Pris,Beskrivelse FROM 3 WHERE (VareNr LIKE '%2227%') OR (Tekst LIKE '%2227%') OR (Pris LIKE '%2227%') OR (Beskrivelse LIKE '%2227%')) UNION (SELECT VareNr,Tekst,Pris,Beskrivelse FROM 6 WHERE (VareNr LIKE '%2227%') OR (Tekst LIKE '%2227%') OR (Pris LIKE '%2227%') OR (Beskrivelse LIKE '%2227%')) Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
ifølge microsoft så siger de: -- This error occurs only with Microsoft Access when one of the column names specified in a select statement does not exist in the table being queried. --
Så vidt jeg ved kommer den fejl enten når man har givet et felt et forkert navn eller når man sammenligner med noget forkert Fx hvis man sammenligner et felt som er et tal med en streng Jeg er i tvivl om VareNr LIKE '%2227%' skal være VareNr LIKE %2227% Normalt skal der jo ikke plinger om tal
det var en latterlig fejl!! Ved ikke om det er godt og skrive det her :) ej oki, jeg den kolonne der SKULLE hedde pris, hen den i nogen af dem, men i den tabel heddder 3 vejl_pris - så var de ikke ens... Men det lære man jo af :D
okay godt stavet der alligevel... nå men du forstår det sikkert godt :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.