2012-02-20 3 views
1

Я хотел бы знать, можно ли объединить результаты двух разных баз данных, MS Access и SQL Server.Объединить результаты MS Access и SQL Server

Вот что я пытаюсь сделать:

ВЫБЕРИТЕ EVERYTHNIG между двумя датами ОТ SQL Server 2008 R2 Express) ТАБЛИЦА НАЗВАЛ НАГРУЗКИ

'//THIS WOULD BE THE SQL Server DATABASE 

    strQueryMSSQL = "Select * FROM LOADS WHERE PUP_DATE >= '" & strPUPDate & "' and DEL_DATE <= '" & strDELDate & "'" ORDER BY PUP_DATE DESC" 
    objMSSQL.Open strQueryMSSQL 

    '//THIS WILL LOOP AND SHOW THE DATE/TIME IN THE SQL Server DB 
    while not objMSSQL.EOF 
    Response.write objMSSQL("PUDATETIMEFLD") 
    objMSSQL.MoveNext 
    wend 

    Example Result(s): 
    DATE/TIME: 
    02/01/2012 1:00pm 
    02/02/2012 7:00am 
    02/03/2012 9:00pm 
    02/04/2012 6:00am 
    02/06/2012 8:28am 

Теперь, выберите все между двумя датами от (MS Access DB) ТАБЛИЦА НАЗВАЛ FuelDetail

'//THIS WOULD BE THE MS ACCESS DATABASE 

strQueryMSAccess = "Select * FROM FuelDetail WHERE PICK_UP_DATE >= #" & strPickupDate & "# and TransactionDate <= #" & TransactionDate & "#" ORDER BY TransactionDate,TransactionTime DESC" 
objMSACCESS.Open strQueryMSAccess 

'//THIS WILL LOOP AND SHOW THE DATE/TIME IN THE MS ACCESS DB 
while not objMSACCESS.EOF 
Response.write objMSACCESS("PICKUPDATE_FLD") 
objMSACCESS.MoveNext 
wend 

Example Result(s): 
DATE/TIME: 
02/02/2012 7:30am 
02/03/2012 11:50pm 
02/05/2012 7:00pm 
02/05/2012 7:05pm 
02/07/2012 6:57am 

Но я хотел бы объединить их (по дате/времени) и показать результаты вместе, как будто они где в одной базе данных.

Когда вы зацикливаете, это будет выглядеть примерно так.

Example Result(s): 
DATE/TIME: 
02/01/2012 1:00pm <-- This is from the MS SQL DB 
02/02/2012 7:00am <-- This is from the MS SQL DB 
02/02/2012 7:30am <-- This is from the MS ACCESS DB 
02/03/2012 9:00pm <-- This is from the MS SQL DB 
02/03/2012 11:50pm  <-- This is from the MS ACCESS DB 
02/04/2012 6:00am <-- This is from the MS SQL DB 
02/05/2012 7:00pm <-- This is from the MS ACCESS DB 
02/05/2012 7:05pm <-- This is from the MS ACCESS DB 
02/06/2012 8:28am <-- This is from the MS SQL DB 
02/07/2012 6:57am <-- This is from the MS ACCESS DB 

Большое спасибо за помощь в решении моей проблемы/вопроса.

(Edit) Добавлено: ...

Может быть что-то вроде этого:

dim strAccess 
dim strSQL 
dim strDateNTimes 
strAccess=CDate(objMSACCESS("PICKUPDATE_FLD")) 
strSQL=CDate(objMSSQL("PUDATETIMEFLD")) 

'//THIS WILL LOOP AND SHOW THE DATE/TIME IN THE MS ACCESS DB 
while not objMSACCESS.EOF 
strDateNTimes=strDateNTimes & "," & objMSACCESS("PICKUPDATE_FLD") & "," 
objMSACCESS.MoveNext 
wend 

'//THIS WILL LOOP AND SHOW THE DATE/TIME IN THE SQL Server DB 
while not objMSSQL.EOF 
strDateNTimes=strDateNTimes & "," & objMSACCESS("PUDATETIMEFLD") & "," 
objMSSQL.MoveNext 
wend 

'// Now just split the commas and do what you will with the date 

ArrayOfValues = Split(strDateNTimes, ", ") 

For i = 0 To UBound(ArrayOfValues) 
Response.Write "Value " & i & " is " & ArrayOfValues(i) & "<br>" 
Next 
+2

Я мало знаю ASP, только Access и SQL Server, но для меня самым простым способом является либо привязка таблиц SQL Server в вас .MDB, и относиться к ним так же, как к любой таблице Access или к ссылке таблицы доступа в SQL Server и все это через SS. –

+1

Почему бы не создать представление в SQL с данными MSAccess и SQL вместе, а затем записать их обратно в одном запросе? Я никогда не создавал SQL-запрос в Access из MSSQL, поэтому я не уверен, что это возможно, но это ODBC, поэтому я предполагаю, что это возможно. Я бы так хотел. – RogueSpear00

+0

Вернее - наоборот. Свяжите свои SQL-данные с вашей БД доступа и отнесите их оттуда. - Как заявил @iDevlop. – RogueSpear00

ответ

2

Я хотел бы предложить связать свой SQL таблицу в MS Access, как кажется, "быстрый" способ получить один набор данных.

Вы можете увидеть, как связать данные SQL в MS Access here

Оттуда зделать VIEW, который соединяет обе данные из MS Access и SQL в один VIEW, и вывод результатов из этой таблицы в моде твой выбор.

Смежные вопросы